From 94685481162a93666fc2f39b66223833a6bcb418 Mon Sep 17 00:00:00 2001 From: Rob Winch Date: Mon, 13 May 2013 16:47:34 -0500 Subject: [PATCH] Add @Override to remaining source files 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 | 30 +++++ .../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 ++ .../aop/framework/MethodInvocationTests.java | 1 + ...elegatingIntroductionInterceptorTests.java | 1 + .../tests/aop/advice/MethodCounter.java | 2 + .../tests/aop/interceptor/NopInterceptor.java | 1 + .../sample/beans/SerializablePerson.java | 1 + .../aspectj/AbstractBeanConfigurerTests.java | 7 ++ .../cache/aspectj/AspectJAnnotationTests.java | 1 + .../AnnotatedClassCacheableService.java | 23 ++++ .../aspectj/TransactionAspectTests.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 | 10 ++ .../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 | 2 + .../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 | 20 ++++ .../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 + .../beans/ExtendedBeanInfoTests.java | 7 ++ .../DefaultListableBeanFactoryTests.java | 2 + .../security/CallbacksSecurityTests.java | 2 + .../beans/support/PagedListHolderTests.java | 2 + .../tests/sample/beans/CustomEnum.java | 1 + .../tests/sample/beans/NestedTestBean.java | 3 + .../tests/sample/beans/Pet.java | 3 + .../tests/sample/beans/TestBean.java | 5 + .../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 | 7 ++ .../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 + .../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 + .../ConditionalAnnotationHelper.java | 5 + ...onfigurationClassBeanDefinitionReader.java | 1 + .../ConfigurationClassEnhancer.java | 7 ++ .../annotation/ConfigurationClassParser.java | 3 + .../ConfigurationClassPostProcessor.java | 9 ++ .../Jsr330ScopeMetadataResolver.java | 1 + .../LoadTimeWeavingConfiguration.java | 2 + .../annotation/MBeanExportConfiguration.java | 2 + .../context/annotation/ProfileCondition.java | 1 + .../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 + .../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 | 11 ++ .../joda/JodaTimeFormatterRegistrar.java | 1 + .../joda/MillisecondInstantPrinter.java | 1 + .../datetime/joda/ReadableInstantPrinter.java | 1 + .../datetime/joda/ReadablePartialPrinter.java | 1 + .../DateTimeFormatterFactoryBean.java | 4 + .../standard/DateTimeFormatterRegistrar.java | 1 + .../datetime/standard/InstantFormatter.java | 2 + ...eTimeFormatAnnotationFormatterFactory.java | 4 + .../standard/TemporalAccessorParser.java | 1 + .../standard/TemporalAccessorPrinter.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 | 21 ++++ ...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 + .../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 ++ .../concurrent/ConcurrentTaskExecutor.java | 5 + .../concurrent/ConcurrentTaskScheduler.java | 8 ++ .../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 + ...ontextLifecycleScheduledTaskRegistrar.java | 2 + .../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 + .../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 | 9 ++ .../LocaleContextMessageInterpolator.java | 2 + .../MessageSourceResourceBundleLocator.java | 1 + .../MethodValidationInterceptor.java | 1 + .../MethodValidationPostProcessor.java | 1 + .../SpringConstraintValidatorFactory.java | 1 + .../SpringValidatorAdapter.java | 8 ++ .../aop/framework/AbstractAopProxyTests.java | 2 + .../aop/framework/CglibProxyTests.java | 1 + .../aop/framework/JdkDynamicProxyTests.java | 4 + .../ConfigurationClassWithConditionTests.java | 3 + .../jmx/export/TestDynamicMBean.java | 2 + .../org/springframework/ui/ModelMapTests.java | 1 + .../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 + ...dardReflectionParameterNameDiscoverer.java | 2 + .../core/annotation/AnnotationAttributes.java | 1 + .../core/convert/TypeDescriptor.java | 3 + .../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 | 24 ++++ .../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 + .../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 | 5 + .../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/AnnotatedElementUtils.java | 5 + .../core/type/StandardAnnotationMetadata.java | 11 ++ .../core/type/StandardClassMetadata.java | 12 ++ .../core/type/StandardMethodMetadata.java | 10 ++ .../AnnotationAttributesReadingVisitor.java | 6 + .../AnnotationMetadataReadingVisitor.java | 11 ++ .../ClassMetadataReadingVisitor.java | 21 ++++ .../MethodMetadataReadingVisitor.java | 10 ++ .../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 ++++ .../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 ++++++ .../support/DefaultConversionTests.java | 6 + .../core/env/DummyEnvironment.java | 13 +++ .../core/style/ToStringCreatorTests.java | 4 + .../tests/sample/objects/TestObject.java | 6 + .../util/CollectionUtilsTests.java | 2 + .../xml/AbstractStaxXMLReaderTestCase.java | 6 + .../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 ++++ .../expression/spel/standard/Token.java | 1 + .../expression/spel/standard/TokenKind.java | 1 + .../spel/support/ReflectionHelper.java | 1 + .../ReflectiveConstructorExecutor.java | 1 + .../ReflectiveConstructorResolver.java | 2 + .../support/ReflectiveMethodExecutor.java | 1 + .../support/ReflectiveMethodResolver.java | 2 + .../support/ReflectivePropertyAccessor.java | 11 ++ .../support/StandardEvaluationContext.java | 11 ++ .../support/StandardOperatorOverloader.java | 2 + .../spel/support/StandardTypeComparator.java | 2 + .../spel/support/StandardTypeConverter.java | 2 + .../spel/support/StandardTypeLocator.java | 1 + .../expression/spel/SpelReproTests.java | 4 +- .../expression/spel/testresources/Fruit.java | 1 + .../spel/testresources/PlaceOfBirth.java | 2 + .../jdbc/config/JdbcNamespaceHandler.java | 1 + .../config/SortedResourcesFactoryBean.java | 2 + .../core/ArgumentPreparedStatementSetter.java | 2 + .../ArgumentTypePreparedStatementSetter.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/EmptySqlParameterSource.java | 4 + .../namedparam/MapSqlParameterSource.java | 2 + .../NamedParameterBatchUpdateUtils.java | 2 + .../NamedParameterJdbcTemplate.java | 35 ++++++ .../jdbc/core/simple/AbstractJdbcInsert.java | 4 + .../jdbc/core/simple/SimpleJdbcCall.java | 18 +++ .../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 +++ .../jdbc/support/lob/TemporaryLobCreator.java | 6 + .../NativeJdbcExtractorAdapter.java | 9 ++ .../rowset/ResultSetWrappingSqlRowSet.java | 50 +++++++++ .../ResultSetWrappingSqlRowSetMetaData.java | 16 +++ .../jdbc/support/xml/Jdbc4SqlXmlHandler.java | 15 +++ .../org/springframework/jdbc/Customer.java | 1 + .../jdbc/core/RowMapperTests.java | 1 + .../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 | 11 ++ .../jms/connection/CachedMessageProducer.java | 26 +++++ .../connection/CachingConnectionFactory.java | 6 + .../connection/ChainedExceptionListener.java | 1 + .../connection/ConnectionFactoryUtils.java | 18 +++ .../DelegatingConnectionFactory.java | 8 ++ .../jms/connection/JmsTransactionManager.java | 13 +++ .../connection/SingleConnectionFactory.java | 10 ++ ...ransactionAwareConnectionFactoryProxy.java | 8 ++ ...erCredentialsConnectionFactoryAdapter.java | 8 ++ .../springframework/jms/core/JmsTemplate.java | 48 ++++++++ .../jms/core/support/JmsGatewaySupport.java | 1 + .../AbstractJmsListeningContainer.java | 8 ++ ...stractPollingMessageListenerContainer.java | 5 + .../DefaultMessageListenerContainer.java | 2 + .../SimpleMessageListenerContainer.java | 4 + .../adapter/MessageListenerAdapter.java | 3 + .../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 + .../MappingJackson2MessageConverter.java | 3 + .../MappingJacksonMessageConverter.java | 3 + .../MarshallingMessageConverter.java | 3 + .../converter/SimpleMessageConverter.java | 2 + .../BeanFactoryDestinationResolver.java | 2 + .../DynamicDestinationResolver.java | 1 + .../destination/JndiDestinationResolver.java | 3 + .../HibernateExceptionTranslator.java | 1 + .../HibernateTransactionManager.java | 4 + .../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 | 105 ++++++++++++++++++ .../HibernateTransactionManager.java | 4 + .../LocalDataSourceConnectionProvider.java | 5 + .../hibernate3/LocalRegionFactoryProxy.java | 9 ++ .../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/jdo/DefaultJdoDialect.java | 8 ++ .../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 | 6 + .../orm/jpa/EntityManagerFactoryAccessor.java | 1 + .../orm/jpa/EntityManagerFactoryUtils.java | 2 + .../orm/jpa/ExtendedEntityManagerCreator.java | 2 + .../orm/jpa/JpaTransactionManager.java | 5 + ...ocalContainerEntityManagerFactoryBean.java | 2 + .../orm/jpa/SharedEntityManagerCreator.java | 2 + .../ClassFileTransformerAdapter.java | 1 + .../DefaultPersistenceUnitManager.java | 5 + .../MutablePersistenceUnitInfo.java | 18 +++ .../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 + .../oxm/castor/CastorMarshaller.java | 3 + .../oxm/config/OxmNamespaceHandler.java | 1 + .../oxm/jaxb/Jaxb2Marshaller.java | 12 ++ .../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 + .../MockMvcClientHttpRequestFactory.java | 1 + .../web/client/MockRestServiceServer.java | 1 + .../RequestMatcherClientHttpRequest.java | 3 + .../client/match/ContentRequestMatchers.java | 6 + .../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 | 11 ++ ...rvlet3MockMultipartHttpServletRequest.java | 11 ++ .../servlet/result/ContentResultMatchers.java | 9 ++ .../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 | 49 ++++++++ .../web/servlet/DefaultMvcResultTests.java | 1 + .../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/MockAsyncContext.java | 13 +++ .../mock/web/MockBodyContent.java | 28 +++++ .../mock/web/MockExpressionEvaluator.java | 3 + .../mock/web/MockFilterChain.java | 4 + .../mock/web/MockFilterConfig.java | 4 + .../mock/web/MockHttpServletRequest.java | 66 +++++++++++ .../mock/web/MockHttpServletResponse.java | 42 +++++++ .../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 | 51 +++++++++ .../mock/web/MockSessionCookieConfig.java | 14 +++ .../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 | 6 + .../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 | 4 + .../web/portlet/MockStateAwareResponse.java | 11 ++ .../ServletWrappingPortletContext.java | 20 ++++ .../annotation/SystemProfileValueSource.java | 1 + .../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 + .../ContextHierarchyDirtiesContextTests.java | 1 + .../test/util/subpackage/LegacyEntity.java | 2 + .../test/util/subpackage/Person.java | 1 + ...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 + .../JtaTransactionAnnotationParser.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 | 3 + .../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 + .../springframework/http/DefaultCookie.java | 2 + .../org/springframework/http/HttpHeaders.java | 17 +++ .../org/springframework/http/MediaType.java | 3 + .../client/AbstractClientHttpRequest.java | 4 + ...stractClientHttpRequestFactoryWrapper.java | 1 + .../client/AbstractClientHttpResponse.java | 2 + .../BufferingClientHttpRequestWrapper.java | 2 + .../BufferingClientHttpResponseWrapper.java | 7 ++ .../http/client/ClientHttpResponse.java | 1 + .../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 | 4 + .../http/client/support/ProxyFactoryBean.java | 4 + .../AbstractHttpMessageConverter.java | 5 + .../BufferedImageHttpMessageConverter.java | 5 + .../converter/FormHttpMessageConverter.java | 8 ++ .../json/Jackson2ObjectMapperFactoryBean.java | 4 + .../json/JacksonObjectMapperFactoryBean.java | 4 + .../MappingJackson2HttpMessageConverter.java | 2 + .../MappingJacksonHttpMessageConverter.java | 2 + .../Jaxb2CollectionHttpMessageConverter.java | 2 + .../server/AsyncServletServerHttpRequest.java | 5 + .../http/server/ServerHttpResponse.java | 1 + .../http/server/ServletServerHttpRequest.java | 6 + .../server/ServletServerHttpResponse.java | 5 + .../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 + .../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 + .../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 + .../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 + .../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/ServletContextPropertyUtils.java | 3 +- .../web/util/UriComponents.java | 2 + .../web/util/UriComponentsBuilder.java | 3 + .../web/util/WebAppRootListener.java | 2 + .../mock/web/test/MockAsyncContext.java | 6 + .../web/test/MockSessionCookieConfig.java | 14 +++ .../ByteArrayMultipartFileEditorTests.java | 1 + .../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 +++ .../web/portlet/MockPortletPreferences.java | 9 ++ .../mock/web/portlet/MockPortletURL.java | 1 + .../mock/web/portlet/MockResourceURL.java | 1 + .../tiles3/AbstractSpringPreparerFactory.java | 1 + .../servlet/view/tiles3/TilesConfigurer.java | 3 + .../web/servlet/DispatcherServlet.java | 2 + .../springframework/web/servlet/FlashMap.java | 1 + .../web/servlet/FrameworkServlet.java | 2 + .../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 + .../ResponseStatusExceptionResolver.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/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 | 3 + .../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 + .../RequestMappingHandlerMappingTests.java | 1 + .../web/servlet/tags/form/Country.java | 1 + .../web/servlet/tags/form/ItemPet.java | 2 + .../web/servlet/tags/form/OptionTagTests.java | 2 + .../web/servlet/tags/form/TestTypes.java | 1 + .../StandardWebSocketSessionAdapter.java | 1 + .../client/ConnectionManagerSupport.java | 6 + .../sockjs/AbstractServerSockJsSession.java | 2 + .../socket/sockjs/AbstractSockJsService.java | 7 ++ .../socket/sockjs/AbstractSockJsSession.java | 10 ++ .../web/socket/sockjs/SockJsFrame.java | 2 + .../sockjs/support/DefaultSockJsService.java | 1 + .../AbstractHttpServerSockJsSession.java | 3 + .../StreamingServerSockJsSession.java | 1 + .../transport/XhrPollingTransportHandler.java | 1 + .../sockjs/AbstractSockJsServiceTests.java | 1 + .../web/socket/sockjs/StubSockJsConfig.java | 3 + .../support/DefaultSockJsServiceTests.java | 1 + 1279 files changed, 5825 insertions(+), 2 deletions(-) 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 9633b4b33b1..8e5ccc1fa6c 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 248e2f64167..1d622196f7a 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 a8bf94dcae4..b4722cdf00d 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 553b0e9d6dd..1a44c2ac268 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 515358c3e32..3a6436c7f89 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 42a2c6f729f..0fbeed07b84 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 fd5b0d64c4a..c6669af2511 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 56adc943c15..6ae24d5d7bb 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 dbdec73fbd6..a7bef4b2136 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 64059d88a90..b9c546342b5 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 e14f2546121..fa9cc2f523e 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 70b6575076b..5354360cd4e 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 a9c5556d9e5..6f7ce26b395 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 ea320552480..14ad6c67a91 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 678c87baebf..58d3958ec84 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJWeaverMessageHandler.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/AspectJWeaverMessageHandler.java @@ -48,6 +48,7 @@ public class AspectJWeaverMessageHandler implements IMessageHandler { private static final Log LOGGER = LogFactory.getLog("AspectJ Weaver"); + @Override public boolean handleMessage(IMessage message) throws AbortException { Kind messageKind = message.getKind(); @@ -89,15 +90,18 @@ 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 27618c9b466..0d1a84247ba 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 fbdcf093131..a681815fa25 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,27 +136,33 @@ 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() + ")"; } + @Override public String toString() { return "execution(" + getSignature().toString() + ")"; } @@ -161,34 +175,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,18 +218,22 @@ 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); } + @Override public String toString() { return toString(false, true, false, true); } @@ -267,6 +293,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 +301,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 fa470759cdd..7d52c036154 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 40049e978e0..dfb36d6a72e 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 7f550a333d1..1e8f723efb1 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 adb8c4db372..f2893fc5832 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 5b3f48bce87..add6c5fac2a 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 81a6c2a3ad1..855af772168 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 65e296f594c..e2dc0893da6 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 d4f0709b618..36bb4eeb42e 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 f8d684bc3b1..35ed1e28478 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 bb623b372b7..70ff5e65321 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 ef9014a1445..31f1e18f27e 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 271d961088b..f25f2d1811b 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJAwareAdvisorAutoProxyCreator.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJAwareAdvisorAutoProxyCreator.java @@ -126,11 +126,13 @@ public 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 31fdb83f7d8..25d84db560d 100644 --- a/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparator.java +++ b/spring-aop/src/main/java/org/springframework/aop/aspectj/autoproxy/AspectJPrecedenceComparator.java @@ -75,6 +75,7 @@ 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 6e58344f80f..65169d1a8d0 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 374e40290a6..bd86b2ea2e9 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 611376efb92..459c394219e 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 aa3d70d11e7..95371f59b79 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 9f75cba9be9..c7cb6735d67 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 2db62fc3b58..abb26930cb8 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 1c26f378109..3cbf472e588 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 0d2daf364f5..0acf968b519 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 cd6dd5a2932..64cc673bab7 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 21bf0edd5be..59aed08e0ed 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 01b0fe856c3..1ef225f22fe 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/AbstractAdvisingBeanPostProcessor.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/AbstractAdvisingBeanPostProcessor.java @@ -65,6 +65,7 @@ public abstract class AbstractAdvisingBeanPostProcessor extends ProxyConfig this.beforeExistingAdvisors = beforeExistingAdvisors; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -73,15 +74,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 8617107350e..261d1cab604 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 460c75ff411..da1d2c1690a 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"); @@ -378,6 +392,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { } + @Override public void addAdvice(Advice advice) throws AopConfigException { int pos = this.advisors.size(); addAdvice(pos, advice); @@ -386,6 +401,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) { @@ -402,6 +418,7 @@ public class AdvisedSupport extends ProxyConfig implements Advised { } } + @Override public boolean removeAdvice(Advice advice) throws AopConfigException { int index = indexOf(advice); if (index == -1) { @@ -413,6 +430,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++) { @@ -544,6 +562,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 5801458ff0f..6ee9f6d450f 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 90eeef7b48c..3eef11bd9ba 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 8b95e3303b3..5d3640677af 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 7e10c4c2283..ad36cd8934c 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 a369f56c824..7e626783405 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 c9ac099b484..8556823d924 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 76b1d7c2d3e..4ef00db86c0 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 a921e6e5095..de562f4fbed 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 9f8f698faf5..5e0bd1d23d0 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 136f004586b..0925b818afb 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 6fc3cdef5ed..57e0e16af7a 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 83d7b8e851a..8b3fd0ce20e 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 687a6d5f8ba..822b789b540 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 69b0bd1cc57..de2767be2cb 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 d21944041d0..806b34b5269 100644 --- a/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/AbstractAutoProxyCreator.java +++ b/spring-aop/src/main/java/org/springframework/aop/framework/autoproxy/AbstractAutoProxyCreator.java @@ -157,6 +157,7 @@ public abstract class AbstractAutoProxyCreator extends ProxyConfig this.order = order; } + @Override public final int getOrder() { return this.order; } @@ -234,12 +235,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; } @@ -253,21 +256,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.add(cacheKey); return wrapIfNecessary(bean, beanName, cacheKey); } + @Override public Object postProcessBeforeInstantiation(Class beanClass, String beanName) throws BeansException { Object cacheKey = getCacheKey(beanClass, beanName); @@ -298,16 +305,19 @@ public 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; } @@ -317,6 +327,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 953a751d320..044c7bbc116 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 c1ef00cbe28..3735ba06e7e 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 7c29c775bce..1ba6dca904d 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 7fbfbf56044..ae9cfa91794 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 daa23a32936..08e38d650e4 100644 --- a/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionInterceptor.java +++ b/spring-aop/src/main/java/org/springframework/aop/interceptor/AsyncExecutionInterceptor.java @@ -77,6 +77,7 @@ public 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 { Class targetClass = (invocation.getThis() != null ? AopUtils.getTargetClass(invocation.getThis()) : null); Method specificMethod = ClassUtils.getMostSpecificMethod(invocation.getMethod(), targetClass); @@ -84,6 +85,7 @@ public class AsyncExecutionInterceptor extends AsyncExecutionAspectSupport Future result = determineAsyncExecutor(specificMethod).submit( new Callable() { + @Override public Object call() throws Exception { try { Object result = invocation.proceed(); @@ -119,6 +121,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 8f6f3ee479a..ad57e4c6359 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 a4ce58d5282..78479765ca6 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 c5443e7dc31..9f9d887e7a9 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 95009495ba3..337c660022c 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 34bc7b9b740..a0c6fee7b67 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 35d765c2977..df3963dc853 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 c8807f76393..e10c0c9921b 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 be8b5bca7f8..160496c0747 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 69389d0bf57..26ffedaf5a6 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 c2f85b58811..375ecdeac7b 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 2bfbcb1c323..957f5d319ea 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 1edb2d746b2..177fe9b277b 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 461252e6179..c232b2826b2 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 6efebf1106b..8bb1d74d736 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 5d8e0c6576d..1c2f1106cb5 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 5ff78837c56..9dbe10dbf4f 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 e12438c447f..aacf645c3fc 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 acdbbeff881..46c6f69e3e8 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 4f4dd6c391a..9b557473ff9 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 3192fab5fe9..0928b54b894 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 6fdd24ef92e..97f3ae8732d 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 91e1b72ee7a..c0bef77145a 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 47a35f756e8..08f16258a17 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 193259ba8db..826917a5615 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 50c87780428..9f7e5fc2639 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 dcb6108e871..bad59acf1b0 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 81642f6b2e4..a404a932349 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 14560404c47..805f1a0562d 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 cd2dfb0c0c0..439e59509a8 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 7b100fe0daa..af22df411d0 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 7aba951ee57..c96c21e1931 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-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java b/spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java index 139ef6c415e..4cf3c22239d 100644 --- a/spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java +++ b/spring-aop/src/test/java/org/springframework/aop/framework/MethodInvocationTests.java @@ -60,6 +60,7 @@ public final class MethodInvocationTests { @Test public void testToStringDoesntHitTarget() throws Throwable { Object target = new TestBean() { + @Override public String toString() { throw new UnsupportedOperationException("toString"); } diff --git a/spring-aop/src/test/java/org/springframework/aop/support/DelegatingIntroductionInterceptorTests.java b/spring-aop/src/test/java/org/springframework/aop/support/DelegatingIntroductionInterceptorTests.java index cf959b324ca..e6f96cf0f22 100644 --- a/spring-aop/src/test/java/org/springframework/aop/support/DelegatingIntroductionInterceptorTests.java +++ b/spring-aop/src/test/java/org/springframework/aop/support/DelegatingIntroductionInterceptorTests.java @@ -184,6 +184,7 @@ public final class DelegatingIntroductionInterceptorTests { TimeStamped ts = new SerializableTimeStamped(0); factory.addAdvisor(0, new DefaultIntroductionAdvisor(new DelegatingIntroductionInterceptor(ts) { + @Override public String toString() { throw new UnsupportedOperationException("Shouldn't be invoked"); } diff --git a/spring-aop/src/test/java/org/springframework/tests/aop/advice/MethodCounter.java b/spring-aop/src/test/java/org/springframework/tests/aop/advice/MethodCounter.java index 931b0ec6681..ce7ac5da4a2 100644 --- a/spring-aop/src/test/java/org/springframework/tests/aop/advice/MethodCounter.java +++ b/spring-aop/src/test/java/org/springframework/tests/aop/advice/MethodCounter.java @@ -59,10 +59,12 @@ public class MethodCounter implements Serializable { * Doesn't worry about counts. * @see java.lang.Object#equals(java.lang.Object) */ + @Override public boolean equals(Object other) { return (other != null && other.getClass() == this.getClass()); } + @Override public int hashCode() { return getClass().hashCode(); } diff --git a/spring-aop/src/test/java/org/springframework/tests/aop/interceptor/NopInterceptor.java b/spring-aop/src/test/java/org/springframework/tests/aop/interceptor/NopInterceptor.java index d152719261c..9d4cbf82a9c 100644 --- a/spring-aop/src/test/java/org/springframework/tests/aop/interceptor/NopInterceptor.java +++ b/spring-aop/src/test/java/org/springframework/tests/aop/interceptor/NopInterceptor.java @@ -46,6 +46,7 @@ public class NopInterceptor implements MethodInterceptor { ++count; } + @Override public boolean equals(Object other) { if (!(other instanceof NopInterceptor)) { return false; diff --git a/spring-aop/src/test/java/org/springframework/tests/sample/beans/SerializablePerson.java b/spring-aop/src/test/java/org/springframework/tests/sample/beans/SerializablePerson.java index 2730d50c8ec..eb2dddef971 100644 --- a/spring-aop/src/test/java/org/springframework/tests/sample/beans/SerializablePerson.java +++ b/spring-aop/src/test/java/org/springframework/tests/sample/beans/SerializablePerson.java @@ -59,6 +59,7 @@ public class SerializablePerson implements Person, Serializable { return o; } + @Override public boolean equals(Object other) { if (!(other instanceof SerializablePerson)) { return false; diff --git a/spring-aspects/src/test/java/org/springframework/beans/factory/aspectj/AbstractBeanConfigurerTests.java b/spring-aspects/src/test/java/org/springframework/beans/factory/aspectj/AbstractBeanConfigurerTests.java index 71a10afcaf1..14ec00c0129 100644 --- a/spring-aspects/src/test/java/org/springframework/beans/factory/aspectj/AbstractBeanConfigurerTests.java +++ b/spring-aspects/src/test/java/org/springframework/beans/factory/aspectj/AbstractBeanConfigurerTests.java @@ -416,14 +416,17 @@ public abstract class AbstractBeanConfigurerTests extends TestCase { assertNull(autowired.getRamnivas()); } + @Override public Object getObject() throws Exception { return new TestBean(); } + @Override public Class getObjectType() { return TestBean.class; } + @Override public boolean isSingleton() { return false; } @@ -559,6 +562,7 @@ public abstract class AbstractBeanConfigurerTests extends TestCase { public static class LineItem implements PricingStrategyClient { private PricingStrategy pricingStrategy; + @Override public void setPricingStrategy(PricingStrategy pricingStrategy) { this.pricingStrategy = pricingStrategy; } @@ -568,6 +572,7 @@ public abstract class AbstractBeanConfigurerTests extends TestCase { public static class Order implements MailSenderClient, Serializable { private transient MailSender mailSender; + @Override public void setMailSender(MailSender mailSender) { this.mailSender = mailSender; } @@ -577,10 +582,12 @@ public abstract class AbstractBeanConfigurerTests extends TestCase { private transient MailSender mailSender; private transient PaymentProcessor paymentProcessor; + @Override public void setMailSender(MailSender mailSender) { this.mailSender = mailSender; } + @Override public void setPaymentProcessor(PaymentProcessor paymentProcessor) { this.paymentProcessor = paymentProcessor; } diff --git a/spring-aspects/src/test/java/org/springframework/cache/aspectj/AspectJAnnotationTests.java b/spring-aspects/src/test/java/org/springframework/cache/aspectj/AspectJAnnotationTests.java index c85d84d0833..9dece28ea67 100644 --- a/spring-aspects/src/test/java/org/springframework/cache/aspectj/AspectJAnnotationTests.java +++ b/spring-aspects/src/test/java/org/springframework/cache/aspectj/AspectJAnnotationTests.java @@ -46,6 +46,7 @@ public class AspectJAnnotationTests extends AbstractAnnotationTests { Assert.assertSame(ctx.getBean("keyGenerator"), aspect.getKeyGenerator()); } + @Override public void testMultiEvict(CacheableService service) { Object o1 = new Object(); diff --git a/spring-aspects/src/test/java/org/springframework/cache/config/AnnotatedClassCacheableService.java b/spring-aspects/src/test/java/org/springframework/cache/config/AnnotatedClassCacheableService.java index b8108051798..8c7d3a522b4 100644 --- a/spring-aspects/src/test/java/org/springframework/cache/config/AnnotatedClassCacheableService.java +++ b/spring-aspects/src/test/java/org/springframework/cache/config/AnnotatedClassCacheableService.java @@ -33,109 +33,132 @@ public class AnnotatedClassCacheableService implements CacheableService private final AtomicLong counter = new AtomicLong(); public static final AtomicLong nullInvocations = new AtomicLong(); + @Override public Object cache(Object arg1) { return counter.getAndIncrement(); } + @Override public Object conditional(int field) { return null; } + @Override public Object unless(int arg) { return arg; } + @Override @CacheEvict("default") public void invalidate(Object arg1) { } + @Override @CacheEvict("default") public void evictWithException(Object arg1) { throw new RuntimeException("exception thrown - evict should NOT occur"); } + @Override @CacheEvict(value = "default", allEntries = true) public void evictAll(Object arg1) { } + @Override @CacheEvict(value = "default", beforeInvocation = true) public void evictEarly(Object arg1) { throw new RuntimeException("exception thrown - evict should still occur"); } + @Override @CacheEvict(value = "default", key = "#p0") public void evict(Object arg1, Object arg2) { } + @Override @CacheEvict(value = "default", key = "#p0", beforeInvocation = true) public void invalidateEarly(Object arg1, Object arg2) { throw new RuntimeException("exception thrown - evict should still occur"); } + @Override @Cacheable(value = "default", key = "#p0") public Object key(Object arg1, Object arg2) { return counter.getAndIncrement(); } + @Override @Cacheable(value = "default", key = "#root.methodName + #root.caches[0].name") public Object name(Object arg1) { return counter.getAndIncrement(); } + @Override @Cacheable(value = "default", key = "#root.methodName + #root.method.name + #root.targetClass + #root.target") public Object rootVars(Object arg1) { return counter.getAndIncrement(); } + @Override @CachePut("default") public Object update(Object arg1) { return counter.getAndIncrement(); } + @Override @CachePut(value = "default", condition = "#arg.equals(3)") public Object conditionalUpdate(Object arg) { return arg; } + @Override public Object nullValue(Object arg1) { nullInvocations.incrementAndGet(); return null; } + @Override public Number nullInvocations() { return nullInvocations.get(); } + @Override public Long throwChecked(Object arg1) throws Exception { throw new UnsupportedOperationException(arg1.toString()); } + @Override public Long throwUnchecked(Object arg1) { throw new UnsupportedOperationException(); } // multi annotations + @Override @Caching(cacheable = { @Cacheable("primary"), @Cacheable("secondary") }) public Object multiCache(Object arg1) { return counter.getAndIncrement(); } + @Override @Caching(evict = { @CacheEvict("primary"), @CacheEvict(value = "secondary", key = "#p0") }) public Object multiEvict(Object arg1) { return counter.getAndIncrement(); } + @Override @Caching(cacheable = { @Cacheable(value = "primary", key = "#root.methodName") }, evict = { @CacheEvict("secondary") }) public Object multiCacheAndEvict(Object arg1) { return counter.getAndIncrement(); } + @Override @Caching(cacheable = { @Cacheable(value = "primary", condition = "#p0 == 3") }, evict = { @CacheEvict("secondary") }) public Object multiConditionalCacheAndEvict(Object arg1) { return counter.getAndIncrement(); } + @Override @Caching(put = { @CachePut("primary"), @CachePut("secondary") }) public Object multiUpdate(Object arg1) { return arg1; diff --git a/spring-aspects/src/test/java/org/springframework/transaction/aspectj/TransactionAspectTests.java b/spring-aspects/src/test/java/org/springframework/transaction/aspectj/TransactionAspectTests.java index b69e861933a..166baebcca2 100644 --- a/spring-aspects/src/test/java/org/springframework/transaction/aspectj/TransactionAspectTests.java +++ b/spring-aspects/src/test/java/org/springframework/transaction/aspectj/TransactionAspectTests.java @@ -125,6 +125,7 @@ public class TransactionAspectTests extends AbstractDependencyInjectionSpringCon final Exception ex = new Exception(); try { testRollback(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return annotationOnlyOnClassWithNoInterface.echo(ex); } @@ -140,6 +141,7 @@ public class TransactionAspectTests extends AbstractDependencyInjectionSpringCon final RuntimeException ex = new RuntimeException(); try { testRollback(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return annotationOnlyOnClassWithNoInterface.echo(ex); } @@ -156,6 +158,7 @@ public class TransactionAspectTests extends AbstractDependencyInjectionSpringCon final Exception ex = new Exception(); try { testRollback(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return new SubclassOfClassWithTransactionalAnnotation().echo(ex); } @@ -171,6 +174,7 @@ public class TransactionAspectTests extends AbstractDependencyInjectionSpringCon final Exception ex = new Exception(); try { testRollback(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return new SubclassOfClassWithTransactionalMethodAnnotation().echo(ex); } @@ -191,6 +195,7 @@ public class TransactionAspectTests extends AbstractDependencyInjectionSpringCon final Exception ex = new Exception(); testNotTransactional(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return new ImplementsAnnotatedInterface().echo(ex); } @@ -221,6 +226,7 @@ public class TransactionAspectTests extends AbstractDependencyInjectionSpringCon final Exception rollbackProvokingException = new RuntimeException(); testNotTransactional(new TransactionOperationCallback() { + @Override public Object performTransactionalOperation() throws Throwable { return new ImplementsAnnotatedInterface().echo(rollbackProvokingException); } @@ -275,6 +281,7 @@ public class TransactionAspectTests extends AbstractDependencyInjectionSpringCon public static class ImplementsAnnotatedInterface implements ITransactional { + @Override public Object echo(Throwable t) throws Throwable { if (t != null) { throw t; diff --git a/spring-beans/src/main/java/org/springframework/beans/AbstractPropertyAccessor.java b/spring-beans/src/main/java/org/springframework/beans/AbstractPropertyAccessor.java index 258313c90f3..8be616c7dd8 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 f806b9f6a5e..366256452c3 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 c683f50ab8a..d08a8fa3413 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 df5def12a8d..464323cbb92 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 d7913aa9069..9e6c67703c3 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 f89350cfe49..8ad4876c1b6 100644 --- a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java +++ b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java @@ -121,6 +121,7 @@ class ExtendedBeanInfo implements BeanInfo { // non-deterministic sorting of methods returned from Class#getDeclaredMethods // under JDK 7. See http://bugs.sun.com/view_bug.do?bug_id=7023180 Collections.sort(matches, new Comparator() { + @Override public int compare(Method m1, Method m2) { return m2.toString().compareTo(m1.toString()); } @@ -220,35 +221,43 @@ 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(); } @@ -658,6 +667,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 183ffe4e2a3..20444d2f3c3 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 e079bb0f56e..e82daabbcb1 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 390b3f8a12f..56bf9bb374c 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 ce3b595737c..1281e903288 100644 --- a/spring-beans/src/main/java/org/springframework/beans/PropertyEditorRegistrySupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/PropertyEditorRegistrySupport.java @@ -266,10 +266,12 @@ 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"); @@ -289,6 +291,7 @@ public class PropertyEditorRegistrySupport implements PropertyEditorRegistry { } } + @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 61fb062afe5..ec1f5a2b4cf 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 d1b7c48130c..83883a31a15 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 1dc32578192..c9536c77294 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 53c1011b8ca..a5afead3183 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotatedGenericBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/AnnotatedGenericBeanDefinition.java @@ -75,6 +75,7 @@ public 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 75a00b70cd4..78fe8fe86af 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 6775dd78edc..3ce408c9928 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 51489330841..2d6934de0ca 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 62f62dccd9e..222a2ccd514 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 657ee22666b..2a7f122f9d0 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 6876beda486..3f8aeb6a42c 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.java @@ -117,6 +117,7 @@ public class RequiredAnnotationBeanPostProcessor extends InstantiationAwareBeanP return this.requiredAnnotationType; } + @Override public void setBeanFactory(BeanFactory beanFactory) { if (beanFactory instanceof ConfigurableListableBeanFactory) { this.beanFactory = (ConfigurableListableBeanFactory) beanFactory; @@ -127,11 +128,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 5c1ad4b751b..2dda2ca735a 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 c9d442c3355..0f8148f0607 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 bbe7ddf804d..f637b891e1e 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 d0e93c8b0c8..c49cb6db32a 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 1e59e7d134c..795ef04a5c2 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 914046954c4..f11795d22ef 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomEditorConfigurer.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomEditorConfigurer.java @@ -109,6 +109,7 @@ public class CustomEditorConfigurer implements BeanFactoryPostProcessor, Ordered this.order = order; } + @Override public int getOrder() { return this.order; } @@ -138,6 +139,7 @@ public class CustomEditorConfigurer implements BeanFactoryPostProcessor, Ordered } + @Override @SuppressWarnings("unchecked") public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { if (this.propertyEditorRegistrars != null) { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomScopeConfigurer.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/CustomScopeConfigurer.java index 8d820ac04d1..0d5a281925e 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 815173b6bea..893e4c20161 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 31edfa91449..b5471cb4e17 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 7846d91bdd5..3e02846fcb5 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 1615a8125f6..0e6ad68f07b 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 710eeddae68..5c3ed772575 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 b9b822e2e2e..4b8703abf0b 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 bf9474138f1..c9d39f3bf5f 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 b2ac3170333..a84bdc067a2 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 b64f38ffe2b..c0d25370422 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 b23c93e97fd..e6f4a2f9d27 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 e9e5e60a7a5..15904919920 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 e6b143a1ef0..7800a4d346a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/ServiceLocatorFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/ServiceLocatorFactoryBean.java @@ -245,6 +245,7 @@ public class ServiceLocatorFactoryBean implements FactoryBean, BeanFacto this.serviceMappings = serviceMappings; } + @Override public void setBeanFactory(BeanFactory beanFactory) throws BeansException { if (!(beanFactory instanceof ListableBeanFactory)) { throw new FatalBeanException( @@ -253,6 +254,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"); @@ -322,14 +324,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; } @@ -340,6 +345,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 e4f27fec8b2..a9ff4fdbfba 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 0b47dba2f84..08d4aa43c12 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 828cdc8257c..06d037c5d7f 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 d281d86cd44..2b88d827657 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 70e9ba209ce..550ae761c22 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 26cc3c0c404..f27831a63fd 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 76f3a2fd8a7..859d611f145 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 ffc1cb2a1e1..85eea69610e 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 66dfae23d90..3e3fa625244 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 4611365c077..a9f56dbfbb6 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 b589b1a6c6b..4e5e6da511d 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 { @@ -417,6 +429,7 @@ public abstract class AbstractAutowireCapableBeanFactory extends AbstractBeanFac return result; } + @Override public void destroyBean(Object existingBean) { new DisposableBeanAdapter(existingBean, getBeanPostProcessors(), getAccessControlContext()).destroy(); } @@ -514,6 +527,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); } @@ -701,6 +715,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())) { @@ -1001,6 +1016,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); } @@ -1470,6 +1486,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; @@ -1537,6 +1554,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; @@ -1594,6 +1612,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; @@ -1601,6 +1620,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 021941271ce..2ed4d28570a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/AbstractBeanDefinition.java @@ -360,10 +360,12 @@ public 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) { @@ -403,6 +405,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * @see #SCOPE_SINGLETON * @see #SCOPE_PROTOTYPE */ + @Override public void setScope(String scope) { this.scope = scope; } @@ -410,6 +413,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return the name of the target scope for the bean. */ + @Override public String getScope() { return this.scope; } @@ -419,6 +423,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * returned from all calls. * @see #SCOPE_SINGLETON */ + @Override public boolean isSingleton() { return SCOPE_SINGLETON.equals(scope) || SCOPE_DEFAULT.equals(scope); } @@ -428,6 +433,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess * returned for each call. * @see #SCOPE_PROTOTYPE */ + @Override public boolean isPrototype() { return SCOPE_PROTOTYPE.equals(scope); } @@ -446,6 +452,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; } @@ -455,6 +462,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; } @@ -463,6 +471,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; } @@ -543,6 +552,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; } @@ -550,6 +560,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return the bean names that this bean depends on. */ + @Override public String[] getDependsOn() { return this.dependsOn; } @@ -557,6 +568,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; } @@ -564,6 +576,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; } @@ -573,6 +586,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; } @@ -582,6 +596,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; } @@ -676,6 +691,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return constructor argument values for this bean (never {@code null}). */ + @Override public ConstructorArgumentValues getConstructorArgumentValues() { return this.constructorArgumentValues; } @@ -697,6 +713,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return property values for this bean (never {@code null}). */ + @Override public MutablePropertyValues getPropertyValues() { return this.propertyValues; } @@ -718,18 +735,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; } @@ -826,6 +847,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess /** * Return the role hint for this {@code BeanDefinition}. */ + @Override public int getRole() { return this.role; } @@ -838,6 +860,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess this.description = description; } + @Override public String getDescription() { return this.description; } @@ -865,6 +888,7 @@ public abstract class AbstractBeanDefinition extends BeanMetadataAttributeAccess this.resource = new DescriptiveResource(resourceDescription); } + @Override public String getResourceDescription() { return (this.resource != null ? this.resource.getDescription() : null); } @@ -876,6 +900,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 b07e211d163..3f81a2a2b06 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 6e23d449a9a..0c422557927 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); @@ -534,6 +544,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -624,10 +635,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)) && @@ -639,6 +652,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); @@ -646,46 +660,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); @@ -698,12 +723,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); } @@ -715,6 +742,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return this.customEditors; } + @Override public void setTypeConverter(TypeConverter typeConverter) { this.typeConverter = typeConverter; } @@ -727,6 +755,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return this.typeConverter; } + @Override public TypeConverter getTypeConverter() { TypeConverter customConverter = getCustomTypeConverter(); if (customConverter != null) { @@ -741,11 +770,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) { @@ -757,6 +788,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); @@ -769,6 +801,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @Override public int getBeanPostProcessorCount() { return this.beanPostProcessors.size(); } @@ -801,6 +834,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"); @@ -810,10 +844,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); @@ -839,6 +875,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()); @@ -872,6 +909,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); @@ -883,6 +921,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp return getMergedLocalBeanDefinition(beanName); } + @Override public boolean isFactoryBean(String name) throws NoSuchBeanDefinitionException { String beanName = transformedBeanName(name); @@ -965,6 +1004,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp } } + @Override public void destroyBean(String beanName, Object beanInstance) { destroyBean(beanName, beanInstance, getMergedLocalBeanDefinition(beanName)); } @@ -980,6 +1020,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()) { @@ -1252,6 +1293,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 f8ffd5798b5..140e11569cc 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 330b699096b..7de75a1be60 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 dc601c3bd4b..8c802f09d2b 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 b03ca67dcd5..cbc43acfbe1 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 384866ffdd7..6bc665b03e2 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 d2ed06dd66b..ebd7a7022d4 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 e88e04f4690..840e4b816fc 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java @@ -217,6 +217,7 @@ public 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; @@ -255,6 +256,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); @@ -303,10 +305,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) { @@ -318,10 +322,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); @@ -425,10 +431,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 { @@ -459,6 +467,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto return result; } + @Override public Map getBeansWithAnnotation(Class annotationType) { Set beanNames = new LinkedHashSet(getBeanDefinitionCount()); beanNames.addAll(Arrays.asList(getBeanDefinitionNames())); @@ -478,6 +487,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); @@ -501,6 +511,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) { @@ -510,6 +521,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto } } + @Override public boolean isAutowireCandidate(String beanName, DependencyDescriptor descriptor) throws NoSuchBeanDefinitionException { @@ -570,6 +582,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto return bd; } + @Override public void freezeConfiguration() { this.configurationFrozen = true; synchronized (this.beanDefinitionMap) { @@ -577,6 +590,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto } } + @Override public boolean isConfigurationFrozen() { return this.configurationFrozen; } @@ -591,6 +605,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); @@ -609,6 +624,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(); } @@ -634,6 +650,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto // Implementation of BeanDefinitionRegistry interface //--------------------------------------------------------------------- + @Override public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition) throws BeanDefinitionStoreException { @@ -675,6 +692,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto resetBeanDefinition(beanName); } + @Override public void removeBeanDefinition(String beanName) throws NoSuchBeanDefinitionException { Assert.hasText(beanName, "'beanName' must not be empty"); @@ -754,6 +772,7 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto // Dependency resolution functionality //--------------------------------------------------------------------- + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName, Set autowiredBeanNames, TypeConverter typeConverter) throws BeansException { @@ -1068,6 +1087,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); } @@ -1083,6 +1103,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 71d2ac891ff..450f11a5ce6 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultSingletonBeanRegistry.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultSingletonBeanRegistry.java @@ -120,6 +120,7 @@ public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements private final Map> dependenciesForBeanMap = new ConcurrentHashMap>(64); + @Override public void registerSingleton(String beanName, Object singletonObject) throws IllegalStateException { Assert.notNull(beanName, "'beanName' must not be null"); synchronized (this.singletonObjects) { @@ -166,6 +167,7 @@ public class DefaultSingletonBeanRegistry extends SimpleAliasRegistry implements } } + @Override public Object getSingleton(String beanName) { return getSingleton(beanName, true); } @@ -273,16 +275,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 672c8924311..65b5bfc3515 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/DisposableBeanAdapter.java @@ -226,10 +226,12 @@ 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) { @@ -244,6 +246,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; @@ -281,6 +284,7 @@ class DisposableBeanAdapter implements DisposableBean, Runnable, Serializable { try { if (System.getSecurityManager() != null) { return AccessController.doPrivileged(new PrivilegedAction() { + @Override public Method run() { return findDestroyMethod(); } @@ -321,6 +325,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; @@ -328,6 +333,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 71a22243f77..286765a80df 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 82fddd21066..5953236d6c1 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 5c9aa550113..d01b649bca2 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 4529b714417..46467665965 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 95b444721b8..dadaac3e0cc 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 654cadc9fc6..570963c17a6 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 ecc984a7cec..96f41279f23 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 d51dc55fa72..bbdc65d4371 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 2034d5aa7ad..7bfb84bc1be 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/RootBeanDefinition.java @@ -191,10 +191,12 @@ public 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 4a7a1604e1d..3570305d9df 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 8a42fc233e1..b792c6cda89 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 b06904221f1..4dd5a1a1ca6 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 edb954ae7f8..15aed4c50d0 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 4eef1b4751f..f61b87e1af8 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/support/StaticListableBeanFactory.java @@ -76,6 +76,7 @@ public 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); @@ -104,6 +105,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { } } + @Override @SuppressWarnings("unchecked") public T getBean(String name, Class requiredType) throws BeansException { Object bean = getBean(name); @@ -113,6 +115,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) { @@ -126,6 +129,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { } } + @Override public Object getBean(String name, Object... args) throws BeansException { if (args != null) { throw new UnsupportedOperationException( @@ -134,16 +138,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. @@ -151,11 +158,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); @@ -172,6 +181,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { return bean.getClass(); } + @Override public String[] getAliases(String name) { return new String[0]; } @@ -181,22 +191,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(); @@ -219,10 +234,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 { @@ -259,6 +276,7 @@ public class StaticListableBeanFactory implements ListableBeanFactory { return matches; } + @Override public Map getBeansWithAnnotation(Class annotationType) throws BeansException { @@ -271,6 +289,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 81fa4242b2f..ccfd90f96a9 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/wiring/BeanConfigurerSupport.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/wiring/BeanConfigurerSupport.java @@ -71,6 +71,7 @@ public 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( @@ -95,6 +96,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"); } @@ -103,6 +105,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 3ddfbe5a0cf..b458dfe84ab 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 91c94990ccf..38dba2c10e3 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 d7fcfc9e4d9..6f3386cb862 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 a422d5b4fcd..456c614f55a 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultBeanDefinitionDocumentReader.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultBeanDefinitionDocumentReader.java @@ -90,6 +90,7 @@ public class DefaultBeanDefinitionDocumentReader implements BeanDefinitionDocume * {@code } element with a {@code profile} attribute present. * @see #doRegisterBeanDefinitions */ + @Override public void setEnvironment(Environment environment) { this.environment = environment; } @@ -101,6 +102,7 @@ public 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; logger.debug("Loading bean definitions"); diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultDocumentLoader.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/DefaultDocumentLoader.java index f800eba8b11..f86765cb620 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 6699253594d..fd7d64cc8cd 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 3bd9e1d85e9..019b9c16a2d 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 874eeaf0348..ba31c92aaab 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 ae992c27b2c..b9f89b2369f 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 8c0d2e77a00..6cfefe7559b 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 4110ed0a220..e9f4b1c22eb 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 27d861bcb83..e6716d2900b 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 39676dc24d8..4d33f236ce9 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 16b58500bc1..0021ed45b09 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 2c64bf5252f..4f59e4d30e8 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 afe74eac66e..bbea12861ac 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 3f4abc65685..2db246e47da 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-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java b/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java index 30b2013d072..653d5a13895 100644 --- a/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java @@ -193,6 +193,7 @@ public class ExtendedBeanInfoTests { } } class Child extends Parent { + @Override public Integer getProperty1() { return 2; } @@ -214,6 +215,7 @@ public class ExtendedBeanInfoTests { @Test public void cornerSpr9453() throws IntrospectionException { final class Bean implements Spr9453> { + @Override public Class getProp() { return null; } @@ -603,7 +605,9 @@ public class ExtendedBeanInfoTests { public Number setFoo(String foo) { return null; } } class C extends B { + @Override public String getFoo() { return null; } + @Override public Integer setFoo(String foo) { return null; } } @@ -875,6 +879,7 @@ public class ExtendedBeanInfoTests { } interface TextBookOperations extends BookOperations { + @Override TextBook getBook(); } @@ -884,6 +889,7 @@ public class ExtendedBeanInfoTests { } class LawLibrary extends Library implements TextBookOperations { + @Override public LawBook getBook() { return null; } } @@ -898,6 +904,7 @@ public class ExtendedBeanInfoTests { } class B extends A { + @Override public boolean isTargetMethod() { return false; } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java index 9197e0083e5..97c069bb76f 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java @@ -2632,6 +2632,7 @@ public class DefaultListableBeanFactoryTests { return this.name; } + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -2643,6 +2644,7 @@ public class DefaultListableBeanFactoryTests { return this.name.equals(p.name); } + @Override public int hashCode() { return this.name.hashCode(); } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java index d0439fa93ef..687b3d17ead 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java @@ -262,6 +262,7 @@ public class CallbacksSecurityTests { return this.name; } + @Override public boolean equals(Object obj) { if (obj == this) { return true; @@ -273,6 +274,7 @@ public class CallbacksSecurityTests { return this.name.equals(p.name); } + @Override public int hashCode() { return this.name.hashCode(); } diff --git a/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java b/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java index 7e7694767c6..3e22df61f95 100644 --- a/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/support/PagedListHolderTests.java @@ -197,6 +197,7 @@ public class PagedListHolderTests { this.extendedInfo = extendedInfo; } + @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof MockFilter)) return false; @@ -210,6 +211,7 @@ public class PagedListHolderTests { return true; } + @Override public int hashCode() { int result; result = name.hashCode(); diff --git a/spring-beans/src/test/java/org/springframework/tests/sample/beans/CustomEnum.java b/spring-beans/src/test/java/org/springframework/tests/sample/beans/CustomEnum.java index 66a863772ff..2ded8f9bae1 100644 --- a/spring-beans/src/test/java/org/springframework/tests/sample/beans/CustomEnum.java +++ b/spring-beans/src/test/java/org/springframework/tests/sample/beans/CustomEnum.java @@ -23,6 +23,7 @@ public enum CustomEnum { VALUE_1, VALUE_2; + @Override public String toString() { return "CustomEnum: " + name(); } diff --git a/spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java b/spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java index 844c5ea6921..9b4a07c87a6 100644 --- a/spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java +++ b/spring-beans/src/test/java/org/springframework/tests/sample/beans/NestedTestBean.java @@ -42,6 +42,7 @@ public class NestedTestBean implements INestedTestBean { return company; } + @Override public boolean equals(Object obj) { if (!(obj instanceof NestedTestBean)) { return false; @@ -50,10 +51,12 @@ public class NestedTestBean implements INestedTestBean { return this.company.equals(ntb.company); } + @Override public int hashCode() { return this.company.hashCode(); } + @Override public String toString() { return "NestedTestBean: " + this.company; } diff --git a/spring-beans/src/test/java/org/springframework/tests/sample/beans/Pet.java b/spring-beans/src/test/java/org/springframework/tests/sample/beans/Pet.java index 61563f0dd8a..f280ed25bc9 100644 --- a/spring-beans/src/test/java/org/springframework/tests/sample/beans/Pet.java +++ b/spring-beans/src/test/java/org/springframework/tests/sample/beans/Pet.java @@ -32,10 +32,12 @@ public class Pet { return name; } + @Override public String toString() { return getName(); } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -47,6 +49,7 @@ public class Pet { return true; } + @Override public int hashCode() { return (name != null ? name.hashCode() : 0); } diff --git a/spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java b/spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java index cb276da9cbd..eb18ea6a9f5 100644 --- a/spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java +++ b/spring-beans/src/test/java/org/springframework/tests/sample/beans/TestBean.java @@ -255,10 +255,12 @@ public class TestBean implements BeanNameAware, BeanFactoryAware, ITestBean, IOt this.stringArray = stringArray; } + @Override public Integer[] getSomeIntegerArray() { return someIntegerArray; } + @Override public void setSomeIntegerArray(Integer[] someIntegerArray) { this.someIntegerArray = someIntegerArray; } @@ -461,6 +463,7 @@ public class TestBean implements BeanNameAware, BeanFactoryAware, ITestBean, IOt } + @Override public boolean equals(Object other) { if (this == other) { return true; @@ -472,6 +475,7 @@ public class TestBean implements BeanNameAware, BeanFactoryAware, ITestBean, IOt return (ObjectUtils.nullSafeEquals(this.name, tb2.name) && this.age == tb2.age); } + @Override public int hashCode() { return this.age; } @@ -486,6 +490,7 @@ public class TestBean implements BeanNameAware, BeanFactoryAware, ITestBean, IOt } } + @Override public String toString() { return this.name; } diff --git a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheCache.java b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheCache.java index eb02a84e2a7..fa28b2913c7 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 435e780e938..665e9731765 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheFactoryBean.java @@ -206,11 +206,13 @@ public class EhCacheFactoryBean extends CacheConfiguration implements FactoryBea this.disabled = disabled; } + @Override public void setBeanName(String name) { this.beanName = name; } + @Override public void afterPropertiesSet() throws CacheException, IOException { // If no cache name given, use bean name as cache name. String cacheName = getName(); @@ -295,6 +297,7 @@ public class EhCacheFactoryBean extends CacheConfiguration implements FactoryBea } + @Override public Ehcache getObject() { return this.cache; } @@ -304,6 +307,7 @@ public class EhCacheFactoryBean extends CacheConfiguration implements FactoryBea * {@link #getObject()} based on logic in {@link #createCache()} and * {@link #decorateCache(Ehcache)} as orchestrated by {@link #afterPropertiesSet()}. */ + @Override public Class getObjectType() { if (this.cache != null) { return this.cache.getClass(); @@ -322,6 +326,7 @@ public class EhCacheFactoryBean extends CacheConfiguration implements FactoryBea 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 ea134b57aa7..f6663b48a89 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/cache/ehcache/EhCacheManagerFactoryBean.java @@ -98,6 +98,7 @@ public class EhCacheManagerFactoryBean implements FactoryBean, Ini } + @Override public void afterPropertiesSet() throws IOException, CacheException { logger.info("Initializing EhCache CacheManager"); InputStream is = (this.configLocation != null ? this.configLocation.getInputStream() : null); @@ -117,19 +118,23 @@ public 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 d47e3dcb927..8b0a731c4e8 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 b43c1d75b84..0bf1c5cb6c2 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 7b7ac52f972..abda2b7caf8 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 efcfd8f54c3..2813c0d334a 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 7cc61122bb5..65dc4d08ee1 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 a5f40628102..29bf3f096c3 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 257b15b78e7..3993d28ee07 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 01c6df2dc76..6a483168ebb 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 4184b2f3b41..9b755e843e3 100644 --- a/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMessageHelper.java +++ b/spring-context-support/src/main/java/org/springframework/mail/javamail/MimeMessageHelper.java @@ -1088,15 +1088,19 @@ 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 54f3534e40a..5d0e444715b 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 80a0b556ea0..d748203698e 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 8167f6a709c..728350db8e2 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 99a848366d1..3b67a93f95a 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 76714ce5f23..3801e703c08 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 4d1518dfa9a..2c9ce17a49b 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 c84641f5023..71f52a91eac 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 c5e1c070b83..00988a77494 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 101c3fdf045..66741456fda 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 f75e95951ef..7536e0aa3a9 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 0a534065777..43998ffcdba 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 81d370646af..8f177da433f 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 c9664b28f8e..1c0939a0066 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 6e5189e3b09..ec3ccac53fd 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalTaskExecutorThreadPool.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/LocalTaskExecutorThreadPool.java @@ -40,13 +40,16 @@ public class LocalTaskExecutorThreadPool implements ThreadPool { private Executor taskExecutor; + @Override public void setInstanceId(String schedInstId) { } + @Override public void setInstanceName(String schedName) { } + @Override public void initialize() throws SchedulerConfigException { // Absolutely needs thread-bound TaskExecutor to initialize. this.taskExecutor = SchedulerFactoryBean.getConfigTimeTaskExecutor(); @@ -57,14 +60,17 @@ public 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 +85,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 47c1e95a333..9a42566bc25 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 57095247df1..6eebbd337da 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/QuartzJobBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/QuartzJobBean.java @@ -92,6 +92,7 @@ public abstract class QuartzJobBean implements Job { * values, and delegates to {@code executeInternal} afterwards. * @see #executeInternal */ + @Override public final void execute(JobExecutionContext context) throws JobExecutionException { try { // Reflectively adapting to differences between Quartz 1.x and Quartz 2.0... diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/ResourceLoaderClassLoadHelper.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/ResourceLoaderClassLoadHelper.java index 5eba86a1055..54dd55760b8 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 0912399c825..47661672c47 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/SchedulerAccessor.java @@ -239,6 +239,7 @@ public 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 c5adb0a68aa..fb258125ff4 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 cde54d65546..2b96a9a1294 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 b8d5f0bfa94..6f5374ab21b 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 b35bb59ad93..37f480e3e48 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 15d1e901abb..31896c7ff46 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 8a67bb5d49f..79784aea0f9 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 32895bee90b..4e295bbb538 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 b3d1a3e2761..6f1c22a62d8 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/VelocityEngineFactoryBean.java b/spring-context-support/src/main/java/org/springframework/ui/velocity/VelocityEngineFactoryBean.java index a66f75bf349..7c45782625f 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 4937eeb5e38..222d3308f4d 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 33c4a120a76..b4fb7e5c83a 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 54b9b6ef142..7780357153d 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 25c9f354b22..0e0b5a8adfa 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 7a0067a329b..35371d92d46 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 0b15856df32..6ed83c40267 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 ad51ad0dce7..238a3d28054 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 978dbd8c364..11dc537f03c 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 a8d4a51e7b7..55a746f44fb 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 8e0b36889d1..8f8fc76fd2c 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheAspectSupport.java @@ -129,6 +129,7 @@ public 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 1673165c3c2..ad4ab9721bd 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 8210297a23e..58548bb799f 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 e8b215285a8..8c01c66417a 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 619bd51ca73..a37218804a8 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 986f8d05cdd..c1cbdc0e9b2 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 29a5a98973b..364472409b4 100644 --- a/spring-context/src/main/java/org/springframework/cache/support/AbstractCacheManager.java +++ b/spring-context/src/main/java/org/springframework/cache/support/AbstractCacheManager.java @@ -42,6 +42,7 @@ public abstract class AbstractCacheManager implements CacheManager, Initializing private Set cacheNames = new LinkedHashSet(16); + @Override public void afterPropertiesSet() { Collection caches = loadCaches(); @@ -70,10 +71,12 @@ 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 b9d81ae15f5..3d64b770e0c 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 dc3203e6cf8..f8ffe0e7298 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 3b687a86dea..b248902038b 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 9d0bdc4b7cb..09048cbe1fb 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 b39ae885901..f978a3db425 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 54b66347ade..fe9493824b5 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 eae51ec2516..826214448b4 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 c09600998c0..00d2f9810d9 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 7d8feebd6fc..de52f2e6d32 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 6a7db8bd313..788f8043c6a 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/AnnotationScopeMetadataResolver.java @@ -74,6 +74,7 @@ public 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 aedbbbe28e2..5b3c522d8fb 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 5fcd8a572d0..e0fde7df8fd 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 6dacb49d604..5e1dd4b18ab 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 686424815eb..3fa88f5328a 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java @@ -266,6 +266,7 @@ public 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; @@ -284,14 +285,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 a35bd818b5a..2ef0ad17afd 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ComponentScanBeanDefinitionParser.java @@ -75,6 +75,7 @@ public class ComponentScanBeanDefinitionParser implements BeanDefinitionParser { private static final String FILTER_EXPRESSION_ATTRIBUTE = "expression"; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { String[] basePackages = StringUtils.tokenizeToStringArray(element.getAttribute(BASE_PACKAGE_ATTRIBUTE), ConfigurableApplicationContext.CONFIG_LOCATION_DELIMITERS); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConditionalAnnotationHelper.java b/spring-context/src/main/java/org/springframework/context/annotation/ConditionalAnnotationHelper.java index acd766ea48b..0eba1976723 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConditionalAnnotationHelper.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConditionalAnnotationHelper.java @@ -183,19 +183,23 @@ abstract class ConditionalAnnotationHelper { return null; } + @Override public BeanDefinitionRegistry getRegistry() { return this.registry; } + @Override public Environment getEnvironment() { return this.environment; } + @Override public ConfigurableListableBeanFactory getBeanFactory() { Assert.state(this.beanFactory != null, "Unable to locate the BeanFactory"); return this.beanFactory; } + @Override public ResourceLoader getResourceLoader() { if (registry instanceof ResourceLoader) { return (ResourceLoader) registry; @@ -203,6 +207,7 @@ abstract class ConditionalAnnotationHelper { return null; } + @Override public ClassLoader getClassLoader() { ResourceLoader resourceLoader = getResourceLoader(); return (resourceLoader == null ? null : resourceLoader.getClassLoader()); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java index eab2b0bd26b..27f417f6559 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassBeanDefinitionReader.java @@ -326,6 +326,7 @@ 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 1b22b43db14..967f8f231eb 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassEnhancer.java @@ -206,12 +206,14 @@ class ConfigurationClassEnhancer { private static class DisposableBeanMethodInterceptor implements MethodInterceptor, ConditionalCallback { + @Override public boolean isMatch(Method candidateMethod) { return candidateMethod.getName().equals("destroy") && candidateMethod.getParameterTypes().length == 0 && DisposableBean.class.isAssignableFrom(candidateMethod.getDeclaringClass()); } + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { Enhancer.registerStaticCallbacks(obj.getClass(), null); // does the actual (non-CGLIB) superclass actually implement DisposableBean? @@ -235,6 +237,7 @@ class ConfigurationClassEnhancer { private static class BeanFactoryAwareMethodInterceptor implements MethodInterceptor, ConditionalCallback { + @Override public boolean isMatch(Method candidateMethod) { return candidateMethod.getName().equals("setBeanFactory") && candidateMethod.getParameterTypes().length == 1 @@ -242,6 +245,7 @@ class ConfigurationClassEnhancer { && BeanFactoryAware.class.isAssignableFrom(candidateMethod.getDeclaringClass()); } + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { Field field = obj.getClass().getDeclaredField(BEAN_FACTORY_FIELD); @@ -266,6 +270,7 @@ class ConfigurationClassEnhancer { */ private static class BeanMethodInterceptor implements MethodInterceptor, ConditionalCallback { + @Override public boolean isMatch(Method candidateMethod) { return BeanAnnotationHelper.isBeanAnnotated(candidateMethod); } @@ -277,6 +282,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 { @@ -389,6 +395,7 @@ class ConfigurationClassEnhancer { enhancer.setSuperclass(fbClass); enhancer.setUseFactory(false); enhancer.setCallback(new MethodInterceptor() { + @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { if (method.getName().equals("getObject") && args.length == 0) { diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java index 5b1736fd6f2..5633a76f26c 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassParser.java @@ -90,6 +90,7 @@ class ConfigurationClassParser { private static final Comparator DEFERRED_IMPORT_COMPARATOR = new Comparator() { + @Override public int compare(DeferredImportSelectorHolder o1, DeferredImportSelectorHolder o2) { return AnnotationAwareOrderComparator.INSTANCE.compare( @@ -535,6 +536,7 @@ class ConfigurationClassParser { this.imports.put(importedClass, importingClass); } + @Override public String getImportingClassFor(String importedClass) { return this.imports.get(importedClass); } @@ -548,6 +550,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 ae3645c10ec..944fd051f28 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ConfigurationClassPostProcessor.java @@ -184,16 +184,19 @@ public 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) { @@ -205,6 +208,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); @@ -228,6 +232,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)) { @@ -366,10 +371,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); @@ -392,10 +399,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 649f1acc42d..47b6395fbd1 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 b590da4c185..efc2a0e30e4 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 f9d38ecefde..d2f0bb2b5be 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/ProfileCondition.java b/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java index 424e20ae098..df1095c15dd 100644 --- a/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java +++ b/spring-context/src/main/java/org/springframework/context/annotation/ProfileCondition.java @@ -29,6 +29,7 @@ import org.springframework.core.type.AnnotatedTypeMetadata; */ class ProfileCondition implements Condition { + @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { if (context.getEnvironment() != null && metadata.isAnnotated(Profile.class.getName())) { AnnotationAttributes profile = AnnotationAttributes.fromMap(metadata.getAnnotationAttributes(Profile.class.getName())); diff --git a/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java b/spring-context/src/main/java/org/springframework/context/annotation/ScannedGenericBeanDefinition.java index b5afe9f6de6..7ed9bed6fe6 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 1a758b60a94..f85d09d0ab9 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 c7198a28378..3d61447fc3c 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 055b5e59db8..35a3ed3288e 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 ef32c7b6f7c..0ff440e34c7 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 fa31558fcaa..8c7f6e6d575 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 71e4ec53694..964b1875164 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 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 a9326c5b168..ff1f4bb2d1a 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 ff577e3a225..0f1a1619483 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 764af2bfce4..15d3d7a6225 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 7cec68cfc49..94ecbe74a06 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 f7b1d0d303a..86893f3daa9 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 155fefbbc1b..7f4de09daf9 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 fff09d2da44..b2cecd883e2 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 d3848ebe0a9..de1246bf0b3 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 40bf4e9ea14..fc2032f905e 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. @@ -957,6 +971,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @see #close() * @see #doClose() */ + @Override public void registerShutdownHook() { if (this.shutdownHook == null) { // No shutdown hook registered yet. @@ -980,6 +995,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @see #close() * @see org.springframework.beans.factory.access.SingletonBeanFactoryLocator */ + @Override public void destroy() { close(); } @@ -991,6 +1007,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @see #doClose() * @see #registerShutdownHook() */ + @Override public void close() { synchronized (this.startupShutdownMonitor) { doClose(); @@ -1088,6 +1105,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // For subclasses: do nothing by default. } + @Override public boolean isActive() { synchronized (this.activeMonitor) { return this.active; @@ -1121,50 +1139,60 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // Implementation of BeanFactory interface //--------------------------------------------------------------------- + @Override public Object getBean(String name) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBean(name); } + @Override public T getBean(String name, Class requiredType) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBean(name, requiredType); } + @Override public T getBean(Class requiredType) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBean(requiredType); } + @Override public Object getBean(String name, Object... args) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBean(name, args); } + @Override public boolean containsBean(String name) { return getBeanFactory().containsBean(name); } + @Override public boolean isSingleton(String name) throws NoSuchBeanDefinitionException { assertBeanFactoryActive(); return getBeanFactory().isSingleton(name); } + @Override public boolean isPrototype(String name) throws NoSuchBeanDefinitionException { assertBeanFactoryActive(); return getBeanFactory().isPrototype(name); } + @Override public boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException { assertBeanFactoryActive(); return getBeanFactory().isTypeMatch(name, targetType); } + @Override public Class getType(String name) throws NoSuchBeanDefinitionException { assertBeanFactoryActive(); return getBeanFactory().getType(name); } + @Override public String[] getAliases(String name) { return getBeanFactory().getAliases(name); } @@ -1174,33 +1202,40 @@ public 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) { assertBeanFactoryActive(); return getBeanFactory().getBeanNamesForType(type); } + @Override public String[] getBeanNamesForType(Class type, boolean includeNonSingletons, boolean allowEagerInit) { assertBeanFactoryActive(); return getBeanFactory().getBeanNamesForType(type, includeNonSingletons, allowEagerInit); } + @Override public Map getBeansOfType(Class type) throws BeansException { assertBeanFactoryActive(); return getBeanFactory().getBeansOfType(type); } + @Override public Map getBeansOfType(Class type, boolean includeNonSingletons, boolean allowEagerInit) throws BeansException { @@ -1208,6 +1243,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader return getBeanFactory().getBeansOfType(type, includeNonSingletons, allowEagerInit); } + @Override public Map getBeansWithAnnotation(Class annotationType) throws BeansException { @@ -1215,6 +1251,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader return getBeanFactory().getBeansWithAnnotation(annotationType); } + @Override public A findAnnotationOnBean(String beanName, Class annotationType) { assertBeanFactoryActive(); return getBeanFactory().findAnnotationOnBean(beanName, annotationType); @@ -1225,10 +1262,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); } @@ -1248,14 +1287,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); } @@ -1287,6 +1329,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader // Implementation of ResourcePatternResolver interface //--------------------------------------------------------------------- + @Override public Resource[] getResources(String locationPattern) throws IOException { return this.resourcePatternResolver.getResources(locationPattern); } @@ -1296,16 +1339,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(); } @@ -1347,6 +1393,7 @@ public abstract class AbstractApplicationContext extends DefaultResourceLoader * @see #refreshBeanFactory() * @see #closeBeanFactory() */ + @Override public abstract ConfigurableListableBeanFactory getBeanFactory() throws IllegalStateException; @@ -1385,10 +1432,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) { @@ -1411,16 +1460,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 ddf87c93324..62fe2cc829c 100644 --- a/spring-context/src/main/java/org/springframework/context/support/AbstractMessageSource.java +++ b/spring-context/src/main/java/org/springframework/context/support/AbstractMessageSource.java @@ -70,10 +70,12 @@ public abstract class AbstractMessageSource extends MessageSourceSupport impleme private boolean useCodeAsDefaultMessage = false; + @Override public void setParentMessageSource(MessageSource parent) { this.parentMessageSource = parent; } + @Override public MessageSource getParentMessageSource() { return this.parentMessageSource; } @@ -129,6 +131,7 @@ 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) { @@ -143,6 +146,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) { @@ -155,6 +159,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 66aff5979be..5e4d17426eb 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 e88b26799cf..2a521b3b64a 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 ebee90cc033..e3bb18e49c8 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 f81020673de..9cdff9d621b 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 95b40263edc..5cf2e817463 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 c41b5dc0213..9419e14b4c5 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 e668c4e7368..e688b5009dc 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 620225d000c..6526cc957a6 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 8c1efa7bece..43887d8bf9a 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 7cdfb8d4922..bf20ae10176 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 f5ede2006cb..c2c6cc8cced 100644 --- a/spring-context/src/main/java/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.java +++ b/spring-context/src/main/java/org/springframework/context/support/PropertySourcesPlaceholderConfigurer.java @@ -101,6 +101,7 @@ public class PropertySourcesPlaceholderConfigurer extends PlaceholderConfigurerS * @see #setPropertySources * @see #postProcessBeanFactory */ + @Override public void setEnvironment(Environment environment) { this.environment = environment; } @@ -167,6 +168,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 e428c760b94..14b831c0989 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 db51395e8ad..8f2300c6c91 100644 --- a/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java +++ b/spring-context/src/main/java/org/springframework/context/support/ResourceBundleMessageSource.java @@ -214,6 +214,7 @@ 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()); } @@ -402,6 +403,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 30aad8a078b..0feb05443e8 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 4cb6567faf3..ab78f5c35b3 100644 --- a/spring-context/src/main/java/org/springframework/context/weaving/AspectJWeavingEnabler.java +++ b/spring-context/src/main/java/org/springframework/context/weaving/AspectJWeavingEnabler.java @@ -51,18 +51,22 @@ public class AspectJWeavingEnabler public static final String ASPECTJ_AOP_XML_RESOURCE = "META-INF/aop.xml"; + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) { this.loadTimeWeaver = loadTimeWeaver; } + @Override public int getOrder() { return HIGHEST_PRECEDENCE; } + @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { enableAspectJWeaving(this.loadTimeWeaver, this.beanClassLoader); } @@ -94,6 +98,7 @@ public 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 1cc0ab6b4f2..ec69b4862e0 100644 --- a/spring-context/src/main/java/org/springframework/context/weaving/DefaultContextLoadTimeWeaver.java +++ b/spring-context/src/main/java/org/springframework/context/weaving/DefaultContextLoadTimeWeaver.java @@ -69,6 +69,7 @@ public class DefaultContextLoadTimeWeaver implements LoadTimeWeaver, BeanClassLo setBeanClassLoader(beanClassLoader); } + @Override public void setBeanClassLoader(ClassLoader classLoader) { LoadTimeWeaver serverSpecificLoadTimeWeaver = createServerSpecificLoadTimeWeaver(classLoader); if (serverSpecificLoadTimeWeaver != null) { @@ -126,6 +127,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: " + @@ -135,14 +137,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 d2c704f1a50..7509b8beffa 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 8a12977c8a4..77e88a8c42f 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 c824d4c9171..ca4d245ff48 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 29de41bc3ed..3c3e1a80903 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 de6a45b1fef..ff40f71ba45 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 2e106d8ed0f..0cbdc2ff8d0 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/format/datetime/DateFormatter.java b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java index b5c660f0236..c08c80c432f 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatter.java @@ -146,10 +146,12 @@ public 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 cc9bf6265fc..8dfb7365aec 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/DateFormatterRegistrar.java @@ -53,6 +53,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { } + @Override public void registerFormatters(FormatterRegistry registry) { addDateConverters(registry); registry.addFormatterForFieldAnnotation(new DateTimeFormatAnnotationFormatterFactory()); @@ -81,6 +82,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class DateToLongConverter implements Converter { + @Override public Long convert(Date source) { return source.getTime(); } @@ -89,6 +91,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); @@ -99,6 +102,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class CalendarToDateConverter implements Converter { + @Override public Date convert(Calendar source) { return source.getTime(); } @@ -107,6 +111,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class CalendarToLongConverter implements Converter { + @Override public Long convert(Calendar source) { return source.getTime().getTime(); } @@ -115,6 +120,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private static class LongToDateConverter implements Converter { + @Override public Date convert(Long source) { return new Date(source); } @@ -125,6 +131,7 @@ public class DateFormatterRegistrar implements FormatterRegistrar { private final DateToCalendarConverter dateToCalendarConverter = new DateToCalendarConverter(); + @Override public Calendar convert(Long source) { return this.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 e4a8d8bf6d1..eecad277ad0 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 20aceca9e12..b6aa7ef63ad 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 2918201dbd4..eb76359697b 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeParser.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/DateTimeParser.java @@ -44,6 +44,7 @@ public final class DateTimeParser implements Parser { } + @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 3e18d374c64..5239fc04e90 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaDateTimeFormatAnnotationFormatterFactory.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaDateTimeFormatAnnotationFormatterFactory.java @@ -71,6 +71,7 @@ public class JodaDateTimeFormatAnnotationFormatterFactory private StringValueResolver embeddedValueResolver; + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } @@ -80,10 +81,12 @@ public class JodaDateTimeFormatAnnotationFormatterFactory } + @Override public final Set> getFieldTypes() { return FIELD_TYPES; } + @Override public Printer getPrinter(DateTimeFormat annotation, Class fieldType) { DateTimeFormatter formatter = getFormatter(annotation, fieldType); if (ReadablePartial.class.isAssignableFrom(fieldType)) { @@ -99,6 +102,7 @@ public class JodaDateTimeFormatAnnotationFormatterFactory } } + @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 9c966e43468..02ba64b6133 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeConverters.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeConverters.java @@ -64,6 +64,7 @@ final class JodaTimeConverters { private static class DateTimeToLocalDateConverter implements Converter { + @Override public LocalDate convert(DateTime source) { return source.toLocalDate(); } @@ -72,6 +73,7 @@ final class JodaTimeConverters { private static class DateTimeToLocalTimeConverter implements Converter { + @Override public LocalTime convert(DateTime source) { return source.toLocalTime(); } @@ -80,6 +82,7 @@ final class JodaTimeConverters { private static class DateTimeToLocalDateTimeConverter implements Converter { + @Override public LocalDateTime convert(DateTime source) { return source.toLocalDateTime(); } @@ -88,6 +91,7 @@ final class JodaTimeConverters { private static class DateTimeToDateMidnightConverter implements Converter { + @Override public DateMidnight convert(DateTime source) { return source.toDateMidnight(); } @@ -96,6 +100,7 @@ final class JodaTimeConverters { private static class DateTimeToMutableDateTimeConverter implements Converter { + @Override public MutableDateTime convert(DateTime source) { return source.toMutableDateTime(); } @@ -104,6 +109,7 @@ final class JodaTimeConverters { private static class DateTimeToInstantConverter implements Converter { + @Override public Instant convert(DateTime source) { return source.toInstant(); } @@ -112,6 +118,7 @@ final class JodaTimeConverters { private static class DateTimeToDateConverter implements Converter { + @Override public Date convert(DateTime source) { return source.toDate(); } @@ -120,6 +127,7 @@ final class JodaTimeConverters { private static class DateTimeToCalendarConverter implements Converter { + @Override public Calendar convert(DateTime source) { return source.toGregorianCalendar(); } @@ -128,6 +136,7 @@ final class JodaTimeConverters { private static class DateTimeToLongConverter implements Converter { + @Override public Long convert(DateTime source) { return source.getMillis(); } @@ -141,6 +150,7 @@ final class JodaTimeConverters { */ private static class DateToReadableInstantConverter implements Converter { + @Override public ReadableInstant convert(Date source) { return new DateTime(source); } @@ -154,6 +164,7 @@ final class JodaTimeConverters { */ 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 f780f91ee8f..afb7769f4db 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeFormatterRegistrar.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/JodaTimeFormatterRegistrar.java @@ -155,6 +155,7 @@ public class JodaTimeFormatterRegistrar implements FormatterRegistrar { } + @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 5c18317c0eb..4ad2e3ce648 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/MillisecondInstantPrinter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/MillisecondInstantPrinter.java @@ -42,6 +42,7 @@ public final class MillisecondInstantPrinter implements Printer { } + @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 a5ad563c586..b7e59dbfb4f 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadableInstantPrinter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadableInstantPrinter.java @@ -43,6 +43,7 @@ public final class ReadableInstantPrinter implements Printer { } + @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 b0e84c672f2..abd18acd2d2 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadablePartialPrinter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/joda/ReadablePartialPrinter.java @@ -43,6 +43,7 @@ public final class ReadablePartialPrinter implements Printer { } + @Override public String print(ReadablePartial partial, Locale locale) { return JodaTimeContextHolder.getFormatter(this.formatter, locale).print(partial); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterFactoryBean.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterFactoryBean.java index aa64799b685..f2d98d750f9 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterFactoryBean.java @@ -39,18 +39,22 @@ public class DateTimeFormatterFactoryBean extends DateTimeFormatterFactory private DateTimeFormatter dateTimeFormatter; + @Override public void afterPropertiesSet() { this.dateTimeFormatter = createDateTimeFormatter(); } + @Override public DateTimeFormatter getObject() { return this.dateTimeFormatter; } + @Override public Class getObjectType() { return DateTimeFormatter.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterRegistrar.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterRegistrar.java index e40be834795..c3ba262173e 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterRegistrar.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/DateTimeFormatterRegistrar.java @@ -147,6 +147,7 @@ public class DateTimeFormatterRegistrar implements FormatterRegistrar { } + @Override public void registerFormatters(FormatterRegistry registry) { DateTimeFormatter dateFormatter = getFormatter(Type.DATE); DateTimeFormatter timeFormatter = getFormatter(Type.TIME); diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java index a60e5e78ebc..c968f9e46b6 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/InstantFormatter.java @@ -33,10 +33,12 @@ import org.springframework.format.Formatter; */ public class InstantFormatter implements Formatter { + @Override public Instant parse(String text, Locale locale) throws ParseException { return Instant.parse(text); } + @Override public String print(Instant object, Locale locale) { return object.toString(); } diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/Jsr310DateTimeFormatAnnotationFormatterFactory.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/Jsr310DateTimeFormatAnnotationFormatterFactory.java index f16ee4f574d..42f91475fc7 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/Jsr310DateTimeFormatAnnotationFormatterFactory.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/Jsr310DateTimeFormatAnnotationFormatterFactory.java @@ -63,6 +63,7 @@ public class Jsr310DateTimeFormatAnnotationFormatterFactory private StringValueResolver embeddedValueResolver; + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; } @@ -72,15 +73,18 @@ public class Jsr310DateTimeFormatAnnotationFormatterFactory } + @Override public final Set> getFieldTypes() { return FIELD_TYPES; } + @Override public Printer getPrinter(DateTimeFormat annotation, Class fieldType) { DateTimeFormatter formatter = getFormatter(annotation, fieldType); return new TemporalAccessorPrinter(formatter); } + @Override @SuppressWarnings("unchecked") public Parser getParser(DateTimeFormat annotation, Class fieldType) { DateTimeFormatter formatter = getFormatter(annotation, fieldType); diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorParser.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorParser.java index 6e742b01c47..dda2029ff31 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorParser.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorParser.java @@ -62,6 +62,7 @@ public final class TemporalAccessorParser implements Parser { } + @Override public TemporalAccessor parse(String text, Locale locale) throws ParseException { DateTimeFormatter formatterToUse = DateTimeContextHolder.getFormatter(this.formatter, locale); if (LocalDate.class.equals(this.temporalAccessorType)) { diff --git a/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorPrinter.java b/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorPrinter.java index c6c1fed5936..92dceabec7f 100644 --- a/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorPrinter.java +++ b/spring-context/src/main/java/org/springframework/format/datetime/standard/TemporalAccessorPrinter.java @@ -45,6 +45,7 @@ public final class TemporalAccessorPrinter implements Printer } + @Override public String print(TemporalAccessor partial, Locale locale) { return DateTimeContextHolder.getFormatter(this.formatter, locale).format(partial); } diff --git a/spring-context/src/main/java/org/springframework/format/number/AbstractNumberFormatter.java b/spring-context/src/main/java/org/springframework/format/number/AbstractNumberFormatter.java index da34f935bc2..aa9e85177a6 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 4d2bf8e9f5d..739f9c4343b 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 2108d9f5ae8..a20cf4120a1 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 dbec6ba2a77..5111c17bab7 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 9e70fd76df0..8058b020eb2 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 7c5fceaed58..ccad09d7476 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) { @@ -139,6 +146,7 @@ public class FormattingConversionService extends GenericConversionService return GenericTypeResolver.resolveTypeArgument(printer.getClass(), Printer.class); } + @Override public String toString() { return this.fieldType.getName() + " -> " + String.class.getName() + " : " + this.printer; } @@ -159,10 +167,12 @@ public 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)) { @@ -185,6 +195,7 @@ public class FormattingConversionService extends GenericConversionService return result; } + @Override public String toString() { return String.class.getName() + " -> " + this.fieldType.getName() + ": " + this.parser; } @@ -206,14 +217,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 = @@ -228,6 +242,7 @@ public class FormattingConversionService extends GenericConversionService return converter.convert(source, sourceType, targetType); } + @Override public String toString() { return "@" + annotationType.getName() + " " + fieldType.getName() + " -> " + String.class.getName() + ": " + annotationFormatterFactory; @@ -250,14 +265,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 = @@ -272,6 +290,7 @@ public class FormattingConversionService extends GenericConversionService return converter.convert(source, sourceType, targetType); } + @Override public String toString() { return String.class.getName() + " -> @" + annotationType.getName() + " " + fieldType.getName() + ": " + annotationFormatterFactory; @@ -298,6 +317,7 @@ public class FormattingConversionService extends GenericConversionService return fieldType; } + @Override public boolean equals(Object o) { if (!(o instanceof AnnotationConverterKey)) { return false; @@ -306,6 +326,7 @@ public class FormattingConversionService extends GenericConversionService return this.annotation.equals(key.annotation) && this.fieldType.equals(key.fieldType); } + @Override public int hashCode() { return this.annotation.hashCode() + 29 * this.fieldType.hashCode(); } diff --git a/spring-context/src/main/java/org/springframework/format/support/FormattingConversionServiceFactoryBean.java b/spring-context/src/main/java/org/springframework/format/support/FormattingConversionServiceFactoryBean.java index 25d20688dde..e7ee267b84f 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 94316c8f6d8..54a3571064c 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 14d1beeb8a6..47c37445753 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 3d15f1035ce..47bb8dc30b4 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 a421f0418e0..d95b3d98217 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 2adca687e1b..67e33d6902c 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 eb28f67ddf9..205ed59c2a2 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 6d4d4bce0b9..b8125405dfa 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 8ae2481ea52..fb834375d8f 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 2ba16e0f8e7..ebb3ded5519 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 a0a911e8bda..7319ec74f3f 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/weblogic/WebLogicClassPreProcessorAdapter.java b/spring-context/src/main/java/org/springframework/instrument/classloading/weblogic/WebLogicClassPreProcessorAdapter.java index 5967740664e..fe35f3f15a1 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 a4e38db93d3..466221730a7 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 c95684c4d69..5662febce0e 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 3312c377783..55c6f863ef7 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 36894535ed3..86c95431c17 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 466a4ff8fbc..022a3a01f63 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 bb0b2021de8..913136578bc 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 9e94a66df39..e9a73da2ffa 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 32627c2c0ba..53339d84e4f 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 741932841d2..fece173a26e 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 ce2c24a1850..244e6a5966c 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 e464fa234bf..3f91e7fdfa4 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 b75e956dab9..c9925bc19ab 100644 --- a/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java +++ b/spring-context/src/main/java/org/springframework/jmx/export/assembler/MetadataMBeanInfoAssembler.java @@ -89,6 +89,7 @@ public class MetadataMBeanInfoAssembler extends AbstractReflectiveMBeanInfoAssem this.attributeSource = attributeSource; } + @Override public void afterPropertiesSet() { if (this.attributeSource == null) { throw new IllegalArgumentException("Property 'attributeSource' is required"); @@ -115,6 +116,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 1e9e4ff4328..ea29cc1737d 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 07b459910d6..fd0f36cbbab 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 f1d138d38bd..f574256ef04 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 1c94273bbb2..3d4e11ff7d0 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 a717b8a1abd..5a4d05a7fb0 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 3d9b82bc34e..5c923b19034 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 61b1086a4ca..9bbfe08c85f 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 5cd37f3d659..1cd564b193b 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 92315a9248d..7c8d2f5b9ce 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 8c2750da2a8..123dcee53c4 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 25f742de17b..e9514693692 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 441a113d88e..35f964fde8a 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 f565f37edf6..555e1f4b91f 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 caa7f51452a..6e193fe9969 100644 --- a/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiClientInterceptor.java +++ b/spring-context/src/main/java/org/springframework/remoting/rmi/JndiRmiClientInterceptor.java @@ -281,6 +281,7 @@ 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; 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 b4e884e2606..645251429cd 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 180ba0f5633..d3e50819f19 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 d4673dbff6f..6e0c08466a1 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 fb8e9032755..b9e5330a176 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 22cac7f71f0..b5d2da61599 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 a635a1fa599..ef88378589e 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 fee68ce8d73..0a6ded9114f 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 81bf07e825c..6f05da086d6 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 a4969dc42f8..d6647301254 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 e98a226510a..83d0e712650 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 f7a1599c81a..f629dc6b7dd 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 832d4899629..02f31ba803b 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 69f4ebe8214..1cc5669e6cf 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 6e15b0941ca..9e00b592f8c 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 57fd7b69452..2f8703dc69f 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 35e57c59d20..fcbbcfa63b0 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationAdvisor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationAdvisor.java @@ -111,6 +111,7 @@ public 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) { if (this.advice instanceof BeanFactoryAware) { ((BeanFactoryAware) this.advice).setBeanFactory(beanFactory); @@ -118,10 +119,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 0ac2f757f03..202f2ae47d5 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/annotation/AsyncAnnotationBeanPostProcessor.java @@ -82,6 +82,7 @@ public 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 49b01a8e765..ea6afa94b85 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 754afc5bd67..f9abb41c56e 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 @@ -88,25 +88,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) { @@ -225,6 +231,7 @@ public class ScheduledAnnotationBeanPostProcessor return bean; } + @Override public void onApplicationEvent(ContextRefreshedEvent event) { if (event.getApplicationContext() != this.applicationContext) { return; @@ -259,6 +266,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/concurrent/ConcurrentTaskExecutor.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java index b0e244e7b47..9518a677397 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskExecutor.java @@ -126,18 +126,22 @@ public 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); } @@ -145,6 +149,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 ef4285d58e4..96320a5df4b 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskScheduler.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ConcurrentTaskScheduler.java @@ -157,6 +157,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } + @Override public ScheduledFuture schedule(Runnable task, Trigger trigger) { try { if (this.enterpriseConcurrentScheduler) { @@ -172,6 +173,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture schedule(Runnable task, Date startTime) { long initialDelay = startTime.getTime() - System.currentTimeMillis(); try { @@ -182,6 +184,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 { @@ -192,6 +195,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture scheduleAtFixedRate(Runnable task, long period) { try { return this.scheduledExecutor.scheduleAtFixedRate(decorateTask(task, true), 0, period, TimeUnit.MILLISECONDS); @@ -201,6 +205,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, Date startTime, long delay) { long initialDelay = startTime.getTime() - System.currentTimeMillis(); try { @@ -211,6 +216,7 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T } } + @Override public ScheduledFuture scheduleWithFixedDelay(Runnable task, long delay) { try { return this.scheduledExecutor.scheduleWithFixedDelay(decorateTask(task, true), 0, delay, TimeUnit.MILLISECONDS); @@ -238,11 +244,13 @@ public class ConcurrentTaskScheduler extends ConcurrentTaskExecutor implements T public ScheduledFuture schedule(Runnable task, final Trigger trigger) { ManagedScheduledExecutorService executor = (ManagedScheduledExecutorService) scheduledExecutor; return executor.schedule(task, new javax.enterprise.concurrent.Trigger() { + @Override public Date getNextRunTime(LastExecution le, Date taskScheduledTime) { return trigger.nextExecutionTime(le != null ? new SimpleTriggerContext(le.getScheduledStart(), le.getRunStart(), le.getRunEnd()) : new SimpleTriggerContext()); } + @Override public boolean skipRun(LastExecution lastExecution, Date scheduledRunTime) { return false; } diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/CustomizableThreadFactory.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/CustomizableThreadFactory.java index 7ac8d4790e6..090eac7b506 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 b7ec82e9ed5..c80030647be 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ExecutorConfigurationSupport.java @@ -138,6 +138,7 @@ public abstract class ExecutorConfigurationSupport extends CustomizableThreadFac this.awaitTerminationSeconds = awaitTerminationSeconds; } + @Override public void setBeanName(String name) { this.beanName = name; } @@ -147,6 +148,7 @@ public abstract class ExecutorConfigurationSupport extends CustomizableThreadFac * Calls {@code initialize()} after the container applied all property values. * @see #initialize() */ + @Override public void afterPropertiesSet() { initialize(); } @@ -181,6 +183,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 d74f1e1f9af..7d141ce51a4 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ForkJoinPoolFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ForkJoinPoolFactoryBean.java @@ -125,25 +125,30 @@ public class ForkJoinPoolFactoryBean implements FactoryBean, Initi this.awaitTerminationSeconds = awaitTerminationSeconds; } + @Override public void afterPropertiesSet() { this.forkJoinPool = (this.commonPool ? ForkJoinPool.commonPool() : new ForkJoinPool(this.parallelism, this.threadFactory, this.uncaughtExceptionHandler, this.asyncMode)); } + @Override public ForkJoinPool getObject() { return this.forkJoinPool; } + @Override public Class getObjectType() { return ForkJoinPool.class; } + @Override public boolean isSingleton() { return true; } + @Override public void destroy() { // Ignored for the common pool. this.forkJoinPool.shutdown(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/concurrent/ReschedulingRunnable.java b/spring-context/src/main/java/org/springframework/scheduling/concurrent/ReschedulingRunnable.java index fba41f0778b..ff199f16099 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 40d48ad2955..4b5e4b6a259 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 3e04248ea86..b8912e8143d 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) { @@ -190,14 +191,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 31dc69d553b..6674768af79 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 e8961e05e36..01c05d6bc4c 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 39b86694d23..7900b9988e7 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/AnnotationDrivenBeanDefinitionParser.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/AnnotationDrivenBeanDefinitionParser.java @@ -69,6 +69,7 @@ public class AnnotationDrivenBeanDefinitionParser implements BeanDefinitionParse AnnotationConfigUtils.SCHEDULED_ANNOTATION_PROCESSOR_BEAN_NAME; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { Object source = parserContext.extractSource(element); diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/ContextLifecycleScheduledTaskRegistrar.java b/spring-context/src/main/java/org/springframework/scheduling/config/ContextLifecycleScheduledTaskRegistrar.java index 8a0fba8c3ba..8165f1878a9 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/ContextLifecycleScheduledTaskRegistrar.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/ContextLifecycleScheduledTaskRegistrar.java @@ -35,6 +35,7 @@ public class ContextLifecycleScheduledTaskRegistrar extends ScheduledTaskRegistr private ApplicationContext applicationContext; + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } @@ -55,6 +56,7 @@ public class ContextLifecycleScheduledTaskRegistrar extends ScheduledTaskRegistr * Actually schedule the tasks at the right time of the context lifecycle, * if we're running within an ApplicationContext. */ + @Override public void onApplicationEvent(ContextRefreshedEvent event) { if (event.getApplicationContext() != this.applicationContext) { return; diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java b/spring-context/src/main/java/org/springframework/scheduling/config/ScheduledTaskRegistrar.java index 2efd26cea9e..7682ad86f75 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 /** * Calls {@link #scheduleTasks()} at bean construction time. */ + @Override public void afterPropertiesSet() { scheduleTasks(); } @@ -333,6 +334,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 d8356d08e98..d655a84e554 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/config/TaskExecutorFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/scheduling/config/TaskExecutorFactoryBean.java @@ -66,11 +66,13 @@ public class TaskExecutorFactoryBean implements this.keepAliveSeconds = keepAliveSeconds; } + @Override public void setBeanName(String beanName) { this.beanName = beanName; } + @Override public void afterPropertiesSet() throws Exception { BeanWrapper bw = new BeanWrapperImpl(ThreadPoolTaskExecutor.class); determinePoolSizeRange(bw); @@ -136,19 +138,23 @@ public class TaskExecutorFactoryBean implements } + @Override public TaskExecutor getObject() { return this.target; } + @Override public Class getObjectType() { return (this.target != null ? this.target.getClass() : ThreadPoolTaskExecutor.class); } + @Override public boolean isSingleton() { return true; } + @Override public void destroy() throws Exception { if (this.target instanceof DisposableBean) { ((DisposableBean) this.target).destroy(); diff --git a/spring-context/src/main/java/org/springframework/scheduling/config/TaskNamespaceHandler.java b/spring-context/src/main/java/org/springframework/scheduling/config/TaskNamespaceHandler.java index 6ba1d5a552d..4d86209219a 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 94f6385a1a9..6f9bde66827 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 69dda4327a1..1bbb2c8493a 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 76ea3862ca3..fec7cc84b84 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/MethodInvokingRunnable.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/MethodInvokingRunnable.java @@ -45,6 +45,7 @@ public class MethodInvokingRunnable extends ArgumentConvertingMethodInvoker private ClassLoader beanClassLoader = ClassUtils.getDefaultClassLoader(); + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } @@ -54,11 +55,13 @@ 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 e25fdd3f254..0c3b029d42f 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/PeriodicTrigger.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/PeriodicTrigger.java @@ -95,6 +95,7 @@ public 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 6b0ee62a892..63beb9b1800 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 85413fdbe8e..289388cee09 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/SimpleTriggerContext.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/SimpleTriggerContext.java @@ -67,14 +67,17 @@ public 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 e6cea29f6bd..3b86d2fbd2d 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/TaskUtils.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/TaskUtils.java @@ -89,6 +89,7 @@ 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); @@ -103,6 +104,7 @@ public abstract class TaskUtils { */ private static class PropagatingErrorHandler extends LoggingErrorHandler { + @Override public void handleError(Throwable t) { super.handleError(t); ReflectionUtils.rethrowRuntimeException(t); diff --git a/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptFactory.java b/spring-context/src/main/java/org/springframework/scripting/bsh/BshScriptFactory.java index 2d94a16cb8f..f22a9a50a82 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 d71298e29cf..1ad320493cc 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 e66455a8d69..b7888faa781 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 d0766b95f40..b5452624860 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 ebc89ce257c..4afac28b075 100644 --- a/spring-context/src/main/java/org/springframework/scripting/groovy/GroovyScriptFactory.java +++ b/spring-context/src/main/java/org/springframework/scripting/groovy/GroovyScriptFactory.java @@ -101,12 +101,14 @@ public 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); } @@ -124,6 +126,7 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea } + @Override public String getScriptSourceLocator() { return this.scriptSourceLocator; } @@ -133,6 +136,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; } @@ -141,6 +145,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; } @@ -150,6 +155,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 { @@ -191,6 +197,7 @@ public class GroovyScriptFactory implements ScriptFactory, BeanFactoryAware, Bea } } + @Override public Class getScriptedObjectType(ScriptSource scriptSource) throws IOException, ScriptCompilationException { @@ -220,6 +227,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 e4d7eeecfb6..a3d59c6acd8 100644 --- a/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptFactory.java +++ b/spring-context/src/main/java/org/springframework/scripting/jruby/JRubyScriptFactory.java @@ -69,15 +69,18 @@ public 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; } @@ -85,6 +88,7 @@ public class JRubyScriptFactory implements ScriptFactory, BeanClassLoaderAware { /** * JRuby scripts do require a config interface. */ + @Override public boolean requiresConfigInterface() { return true; } @@ -93,6 +97,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 { @@ -110,12 +115,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 3ef0011497b..6b46af7474a 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 c0de42493f4..5c778d3920e 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 d46917005fd..84ea6a9d272 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 5afede47a8f..dbd937a0f0a 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 b2710d4bde5..c7b6ffbb14f 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 d884bf57610..290754c719f 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 a0c195df32e..c595af8cf27 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 16c47413d79..b83b69523d6 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 65ead97598f..5d33eb37ec0 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 3ab515bc890..18c566644ce 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 e7896996b3c..fc3e8e00fa0 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 0518b1570fd..30657d6e71c 100644 --- a/spring-context/src/main/java/org/springframework/validation/DataBinder.java +++ b/spring-context/src/main/java/org/springframework/validation/DataBinder.java @@ -557,28 +557,34 @@ public 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 08fc3b97e55..e1ae7d4b5d6 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 4dc62f449f8..4973f1e480b 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 a886af7ec06..bac3469b820 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 0c5ff8f3834..bf7d220795d 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 ef4ad651a9f..e4d978a11ed 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocalValidatorFactoryBean.java @@ -204,11 +204,13 @@ public class LocalValidatorFactoryBean extends SpringValidatorAdapter return this.validationPropertyMap; } + @Override public void setApplicationContext(ApplicationContext applicationContext) { this.applicationContext = applicationContext; } + @Override @SuppressWarnings("unchecked") public void afterPropertiesSet() { @SuppressWarnings("rawtypes") @@ -271,6 +273,7 @@ public class LocalValidatorFactoryBean extends SpringValidatorAdapter this.parameterNameDiscoverer : new LocalVariableTableParameterNameDiscoverer()); Object parameterNameProvider = Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] {parameterNameProviderClass}, new InvocationHandler() { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (method.getName().equals("getParameterNames")) { String[] result = null; @@ -322,22 +325,27 @@ 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(); } @@ -348,6 +356,7 @@ public class LocalValidatorFactoryBean extends SpringValidatorAdapter } } + @Override public void destroy() { close(); } diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocaleContextMessageInterpolator.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/LocaleContextMessageInterpolator.java index 2bb8afdfaa8..492d635acc8 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 ef2b509b67d..e14ac594fab 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 740b98411c2..f0c5fd30c00 100644 --- a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java +++ b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationInterceptor.java @@ -110,6 +110,7 @@ public class MethodValidationInterceptor implements MethodInterceptor { } + @Override @SuppressWarnings("unchecked") public Object invoke(MethodInvocation invocation) throws Throwable { Class[] groups = determineValidationGroups(invocation); diff --git a/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java b/spring-context/src/main/java/org/springframework/validation/beanvalidation/MethodValidationPostProcessor.java index c7e863b339e..7a61e6b2b16 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 f6d6407f6bf..c6394d76b1c 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 f3c45fc2fa2..57437f48e39 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(); @@ -195,24 +198,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-context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java b/spring-context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java index b9e0a9eaaeb..ff76f282114 100644 --- a/spring-context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java +++ b/spring-context/src/test/java/org/springframework/aop/framework/AbstractAopProxyTests.java @@ -1829,10 +1829,12 @@ public abstract class AbstractAopProxyTests { public static class AllInstancesAreEqual implements IOther { + @Override public boolean equals(Object other) { return (other instanceof AllInstancesAreEqual); } + @Override public int hashCode() { return getClass().hashCode(); } diff --git a/spring-context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java b/spring-context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java index 2330909eecc..194b44472cf 100644 --- a/spring-context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java +++ b/spring-context/src/test/java/org/springframework/aop/framework/CglibProxyTests.java @@ -224,6 +224,7 @@ public final class CglibProxyTests extends AbstractAopProxyTests implements Seri return MethodMatcher.TRUE; } + @Override public boolean equals(Object obj) { return true; } diff --git a/spring-context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java b/spring-context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java index 562ab9bf328..95a5b9bc65f 100644 --- a/spring-context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java +++ b/spring-context/src/test/java/org/springframework/aop/framework/JdkDynamicProxyTests.java @@ -179,8 +179,10 @@ public final class JdkDynamicProxyTests extends AbstractAopProxyTests implements String getName(); + @Override boolean equals(Object other); + @Override int hashCode(); } @@ -194,6 +196,7 @@ public final class JdkDynamicProxyTests extends AbstractAopProxyTests implements return this.name; } + @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; @@ -205,6 +208,7 @@ public final class JdkDynamicProxyTests extends AbstractAopProxyTests implements return true; } + @Override public int hashCode() { return name.hashCode(); } diff --git a/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassWithConditionTests.java b/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassWithConditionTests.java index 9506b817c91..49dfa4a966f 100644 --- a/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassWithConditionTests.java +++ b/spring-context/src/test/java/org/springframework/context/annotation/ConfigurationClassWithConditionTests.java @@ -129,6 +129,7 @@ public class ConfigurationClassWithConditionTests { static class NoBeanOneCondition implements Condition { + @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return !context.getBeanFactory().containsBeanDefinition("bean1"); } @@ -136,6 +137,7 @@ public class ConfigurationClassWithConditionTests { static class MetaConditionalFilter implements Condition { + @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { AnnotationAttributes attributes = AnnotationAttributes.fromMap(metadata.getAnnotationAttributes(MetaConditional.class.getName())); assertThat(attributes.getString("value"), equalTo("test")); @@ -144,6 +146,7 @@ public class ConfigurationClassWithConditionTests { } static class NeverCondition implements Condition { + @Override public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { return false; } diff --git a/spring-context/src/test/java/org/springframework/jmx/export/TestDynamicMBean.java b/spring-context/src/test/java/org/springframework/jmx/export/TestDynamicMBean.java index 53da8a65824..1bad0578112 100644 --- a/spring-context/src/test/java/org/springframework/jmx/export/TestDynamicMBean.java +++ b/spring-context/src/test/java/org/springframework/jmx/export/TestDynamicMBean.java @@ -75,10 +75,12 @@ public class TestDynamicMBean implements DynamicMBean { new MBeanNotificationInfo[0]); } + @Override public boolean equals(Object obj) { return (obj instanceof TestDynamicMBean); } + @Override public int hashCode() { return TestDynamicMBean.class.hashCode(); } diff --git a/spring-context/src/test/java/org/springframework/ui/ModelMapTests.java b/spring-context/src/test/java/org/springframework/ui/ModelMapTests.java index 11ce2b5ce32..8d225238044 100644 --- a/spring-context/src/test/java/org/springframework/ui/ModelMapTests.java +++ b/spring-context/src/test/java/org/springframework/ui/ModelMapTests.java @@ -290,6 +290,7 @@ public final class ModelMapTests { public static class SomeInnerClass { + @Override public boolean equals(Object obj) { return (obj instanceof SomeInnerClass); } diff --git a/spring-core/src/main/java/org/springframework/core/AttributeAccessorSupport.java b/spring-core/src/main/java/org/springframework/core/AttributeAccessorSupport.java index cf351f42cf1..dbbe1aff514 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 1542d39bed1..4860b5f4eeb 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 77289d76b7c..8336678e26d 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 d846d4fdaef..1c0c9ad1ee8 100644 --- a/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java +++ b/spring-core/src/main/java/org/springframework/core/LocalVariableTableParameterNameDiscoverer.java @@ -64,6 +64,7 @@ public class LocalVariableTableParameterNameDiscoverer implements ParameterNameD new ConcurrentHashMap, Map>(32); + @Override public String[] getParameterNames(Method method) { Method originalMethod = BridgeMethodResolver.findBridgedMethod(method); Class declaringClass = originalMethod.getDeclaringClass(); @@ -78,6 +79,7 @@ public 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 16158ca1ad6..51408c7441d 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 e65e88cd21c..8d883eddd36 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 24b33f7683d..82fe66159bf 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/StandardReflectionParameterNameDiscoverer.java b/spring-core/src/main/java/org/springframework/core/StandardReflectionParameterNameDiscoverer.java index 70cc2b030d2..2f06cba05ea 100644 --- a/spring-core/src/main/java/org/springframework/core/StandardReflectionParameterNameDiscoverer.java +++ b/spring-core/src/main/java/org/springframework/core/StandardReflectionParameterNameDiscoverer.java @@ -30,6 +30,7 @@ import java.lang.reflect.Parameter; */ public class StandardReflectionParameterNameDiscoverer implements ParameterNameDiscoverer { + @Override public String[] getParameterNames(Method method) { Parameter[] parameters = method.getParameters(); String[] parameterNames = new String[parameters.length]; @@ -39,6 +40,7 @@ public class StandardReflectionParameterNameDiscoverer implements ParameterNameD return parameterNames; } + @Override public String[] getParameterNames(Constructor ctor) { Parameter[] parameters = ctor.getParameters(); String[] parameterNames = new String[parameters.length]; diff --git a/spring-core/src/main/java/org/springframework/core/annotation/AnnotationAttributes.java b/spring-core/src/main/java/org/springframework/core/annotation/AnnotationAttributes.java index 40041e8de46..d18ad519fb8 100644 --- a/spring-core/src/main/java/org/springframework/core/annotation/AnnotationAttributes.java +++ b/spring-core/src/main/java/org/springframework/core/annotation/AnnotationAttributes.java @@ -132,6 +132,7 @@ public class AnnotationAttributes extends LinkedHashMap { return (T) value; } + @Override public String toString() { Iterator> entries = entrySet().iterator(); StringBuilder sb = new StringBuilder("{"); diff --git a/spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java b/spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java index 79c134e7cf0..77a4c591838 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java +++ b/spring-core/src/main/java/org/springframework/core/convert/TypeDescriptor.java @@ -623,6 +623,7 @@ public class TypeDescriptor { } + @Override public boolean equals(Object obj) { if (this == obj) { return true; @@ -654,10 +655,12 @@ public class TypeDescriptor { } } + @Override public int hashCode() { return getType().hashCode(); } + @Override public String toString() { StringBuilder builder = new StringBuilder(); for (Annotation ann : this.annotations) { diff --git a/spring-core/src/main/java/org/springframework/core/convert/converter/ConvertingComparator.java b/spring-core/src/main/java/org/springframework/core/convert/converter/ConvertingComparator.java index 3e2d7415236..31c511282fc 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 2b52d25b174..0fb2f4de179 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 d1c45621478..6676e73963b 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 90874058a06..78d2f93548e 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 f795e8ed459..85326e4b601 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 c061a877f35..179823f32c1 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 2c3e1722f4f..c07b057a4b5 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 f22527a7b96..bcc51e2f951 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 ba1894f3887..7537c1c3e0a 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 e391b75bb30..bfd1762d969 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 071ad3b6473..767a0acb467 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 148dbee97d6..9ac5b04d06d 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) { @@ -189,6 +198,7 @@ public class GenericConversionService implements ConfigurableConversionService { return convert(source, TypeDescriptor.forObject(source), targetType); } + @Override public String toString() { return this.converters.toString(); } @@ -308,10 +318,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 +334,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); @@ -329,6 +342,7 @@ public class GenericConversionService implements ConfigurableConversionService { return this.converter.convert(source); } + @Override public String toString() { return this.typeInfo.getSourceType().getName() + " -> " + this.typeInfo.getTargetType().getName() + " : " + @@ -354,10 +368,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 +388,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); @@ -379,6 +396,7 @@ public class GenericConversionService implements ConfigurableConversionService { return this.converterFactory.getConverter(targetType.getObjectType()).convert(source); } + @Override public String toString() { return this.typeInfo.getSourceType().getName() + " -> " + this.typeInfo.getTargetType().getName() + " : " + @@ -403,6 +421,7 @@ public class GenericConversionService implements ConfigurableConversionService { } + @Override public boolean equals(Object other) { if (this == other) { return true; @@ -415,11 +434,13 @@ public class GenericConversionService implements ConfigurableConversionService { && ObjectUtils.nullSafeEquals(this.targetType, otherKey.targetType); } + @Override public int hashCode() { return ObjectUtils.nullSafeHashCode(this.sourceType) * 29 + ObjectUtils.nullSafeHashCode(this.targetType); } + @Override public String toString() { return "ConverterCacheKey [sourceType = " + this.sourceType + ", targetType = " + this.targetType + "]"; @@ -598,6 +619,7 @@ public class GenericConversionService implements ConfigurableConversionService { return null; } + @Override public String toString() { return StringUtils.collectionToCommaDelimitedString(this.converters); } @@ -617,10 +639,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 653712660b1..e80bd599cdf 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 c2dc4bfc201..eadacf30713 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 812c320b091..d79435d06f8 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 240880d67fa..b98af70e31e 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 c0101318166..02a389eb66c 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 0448e5824f6..e1273221b80 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 1c939010c3a..f9c3c8174e8 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 630af5c3071..5417a62659e 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 cb9601a13a1..af209148c8e 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 15089df14d3..1d8bc61ef7b 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 3fa97ec7eb0..7a076d335cc 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 aa6acbbd5c8..7d91ee8ab06 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 7326b3f045f..09fbc8f6500 100644 --- a/spring-core/src/main/java/org/springframework/core/convert/support/StringToEnumConverterFactory.java +++ b/spring-core/src/main/java/org/springframework/core/convert/support/StringToEnumConverterFactory.java @@ -29,6 +29,7 @@ import org.springframework.util.Assert; @SuppressWarnings({ "unchecked", "rawtypes" }) final class StringToEnumConverterFactory implements ConverterFactory { + @Override public Converter getConverter(Class targetType) { Class enumType = targetType; while(enumType != null && !enumType.isEnum()) { @@ -47,6 +48,7 @@ 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 6fa470e0dd6..506dcec929d 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 6478d47845c..b97335a83b5 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/env/AbstractEnvironment.java b/spring-core/src/main/java/org/springframework/core/env/AbstractEnvironment.java index f8741fb6ea5..1079167915d 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 9d616496485..77bf33ab212 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 cea039dd378..11039d712cf 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 b085d09afdb..0a7c14120f6 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 f7615274376..08d482ba03e 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 5ded8cbbc5e..427ac70a07a 100644 --- a/spring-core/src/main/java/org/springframework/core/env/ReadOnlySystemAttributesMap.java +++ b/spring-core/src/main/java/org/springframework/core/env/ReadOnlySystemAttributesMap.java @@ -39,6 +39,7 @@ import org.springframework.util.Assert; */ abstract class ReadOnlySystemAttributesMap implements Map { + @Override public boolean containsKey(Object key) { return get(key) != null; } @@ -47,6 +48,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", @@ -55,6 +57,7 @@ abstract class ReadOnlySystemAttributesMap implements Map { return this.getSystemAttribute((String) key); } + @Override public boolean isEmpty() { return false; } @@ -68,38 +71,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() { return Collections.emptySet(); } + @Override public void putAll(Map m) { throw new UnsupportedOperationException(); } + @Override public Collection values() { return Collections.emptySet(); } + @Override public Set> entrySet() { return Collections.emptySet(); } diff --git a/spring-core/src/main/java/org/springframework/core/io/AbstractResource.java b/spring-core/src/main/java/org/springframework/core/io/AbstractResource.java index b035c9ef53b..8dd0e7d57ad 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 d195def9693..b9709e38088 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 3e8467178d3..70fc8a83e65 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 ["); String pathToUse = path; diff --git a/spring-core/src/main/java/org/springframework/core/io/ClassRelativeResourceLoader.java b/spring-core/src/main/java/org/springframework/core/io/ClassRelativeResourceLoader.java index 00f267e4439..bcf88fa1278 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 fc2b0b985c7..3cc1e181152 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 8385891ea3a..72021479228 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 57da655a5d0..e47ee5390f4 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 b5e00c7f30a..7446b71ff25 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 d9b2405c99c..3a37cac97a4 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 626f8f70adc..77f8b8bf3e0 100644 --- a/spring-core/src/main/java/org/springframework/core/io/UrlResource.java +++ b/spring-core/src/main/java/org/springframework/core/io/UrlResource.java @@ -160,6 +160,7 @@ 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); @@ -238,6 +239,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 4877d0ad7b1..2b492ab0b90 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 ec6dd412029..1def34100a5 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)) { @@ -675,6 +678,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())) { @@ -719,6 +723,7 @@ public class PathMatchingResourcePatternResolver implements ResourcePatternResol return this.resources.size(); } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("sub-pattern: ").append(this.subPattern); diff --git a/spring-core/src/main/java/org/springframework/core/serializer/DefaultDeserializer.java b/spring-core/src/main/java/org/springframework/core/serializer/DefaultDeserializer.java index f61f697d2f7..66a91b3836a 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 04fe8bed5a8..6146ee018c1 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 84745294a46..074acf7bbb1 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 61a7553ac1d..b092cc7bd14 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 f81cb4a82ec..97a6ce23ce7 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 2e6251c0f5a..a0063b23742 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 f6b714007ea..21622a29cc8 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 47bebf46766..64f8c7934e9 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 fea960e3c6a..bf8b9f910e8 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 a99a66b2044..8f9f09eda59 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 0c594b93a1c..393ecee66d5 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 bd2df283d71..9247995065f 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/AnnotatedElementUtils.java b/spring-core/src/main/java/org/springframework/core/type/AnnotatedElementUtils.java index ca817f48bd6..342089b6257 100644 --- a/spring-core/src/main/java/org/springframework/core/type/AnnotatedElementUtils.java +++ b/spring-core/src/main/java/org/springframework/core/type/AnnotatedElementUtils.java @@ -40,6 +40,7 @@ class AnnotatedElementUtils { String annotationType) { final Set types = new LinkedHashSet(); process(element, annotationType, new Processor() { + @Override public Object process(Annotation annotation, int depth) { if (depth > 0) { types.add(annotation.annotationType().getName()); @@ -54,6 +55,7 @@ class AnnotatedElementUtils { String annotationType) { return Boolean.TRUE.equals( process(element, annotationType, new Processor() { + @Override public Boolean process(Annotation annotation, int depth) { if (depth > 0) { return true; @@ -66,6 +68,7 @@ class AnnotatedElementUtils { public static boolean isAnnotated(AnnotatedElement element, String annotationType) { return Boolean.TRUE.equals( process(element, annotationType, new Processor() { + @Override public Boolean process(Annotation annotation, int depth) { return true; } @@ -76,6 +79,7 @@ class AnnotatedElementUtils { String annotationType, final boolean classValuesAsString, final boolean nestedAnnotationsAsMap) { return process(element, annotationType, new Processor>() { + @Override public Map process(Annotation annotation, int depth) { return AnnotationUtils.getAnnotationAttributes(annotation, classValuesAsString, nestedAnnotationsAsMap); @@ -88,6 +92,7 @@ class AnnotatedElementUtils { final boolean classValuesAsString, final boolean nestedAnnotationsAsMap) { final MultiValueMap attributes = new LinkedMultiValueMap(); process(element, annotationType, new Processor() { + @Override public Object process(Annotation annotation, int depth) { if (annotation.annotationType().getName().equals(annotationType)) { for (Map.Entry entry : AnnotationUtils.getAnnotationAttributes( diff --git a/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java b/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java index e0c609624cd..e640376efe1 100644 --- a/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/StandardAnnotationMetadata.java @@ -65,6 +65,7 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements } + @Override public Set getAnnotationTypes() { Set types = new LinkedHashSet(); Annotation[] anns = getIntrospectedClass().getAnnotations(); @@ -74,10 +75,12 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements return types; } + @Override public Set getMetaAnnotationTypes(String annotationType) { return AnnotatedElementUtils.getMetaAnnotationTypes(getIntrospectedClass(), annotationType); } + @Override public boolean hasAnnotation(String annotationType) { Annotation[] anns = getIntrospectedClass().getAnnotations(); for (Annotation ann : anns) { @@ -88,34 +91,41 @@ public class StandardAnnotationMetadata extends StandardClassMetadata implements return false; } + @Override public boolean hasMetaAnnotation(String annotationType) { return AnnotatedElementUtils.hasMetaAnnotationTypes(getIntrospectedClass(), annotationType); } + @Override public boolean isAnnotated(String annotationType) { return AnnotatedElementUtils.isAnnotated(getIntrospectedClass(), annotationType); } + @Override public Map getAnnotationAttributes(String annotationType) { return this.getAnnotationAttributes(annotationType, false); } + @Override public Map getAnnotationAttributes(String annotationType, boolean classValuesAsString) { return AnnotatedElementUtils.getAnnotationAttributes(getIntrospectedClass(), annotationType, classValuesAsString, this.nestedAnnotationsAsMap); } + @Override public MultiValueMap getAllAnnotationAttributes(String annotationType) { return getAllAnnotationAttributes(annotationType, false); } + @Override public MultiValueMap getAllAnnotationAttributes( String annotationType, boolean classValuesAsString) { return AnnotatedElementUtils.getAllAnnotationAttributes(getIntrospectedClass(), annotationType, classValuesAsString, this.nestedAnnotationsAsMap); } + @Override public boolean hasAnnotatedMethods(String annotationType) { Method[] methods = getIntrospectedClass().getDeclaredMethods(); for (Method method : methods) { @@ -126,6 +136,7 @@ public 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 4ac99d4d4de..1b62d91c467 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 221cbdb8bec..5b9d66ffdae 100644 --- a/spring-core/src/main/java/org/springframework/core/type/StandardMethodMetadata.java +++ b/spring-core/src/main/java/org/springframework/core/type/StandardMethodMetadata.java @@ -68,43 +68,53 @@ public 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) { return AnnotatedElementUtils.isAnnotated(this.introspectedMethod, annotationType); } + @Override public Map getAnnotationAttributes(String annotationType) { return getAnnotationAttributes(annotationType, false); } + @Override public Map getAnnotationAttributes(String annotationType, boolean classValuesAsString) { return AnnotatedElementUtils.getAnnotationAttributes(this.introspectedMethod, annotationType, classValuesAsString, this.nestedAnnotationsAsMap); } + @Override public MultiValueMap getAllAnnotationAttributes(String annotationType) { return getAllAnnotationAttributes(annotationType, false); } + @Override public MultiValueMap getAllAnnotationAttributes( String annotationType, boolean classValuesAsString) { return AnnotatedElementUtils.getAllAnnotationAttributes(this.introspectedMethod, diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationAttributesReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationAttributesReadingVisitor.java index b9a1586666c..3577566e815 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationAttributesReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationAttributesReadingVisitor.java @@ -60,10 +60,12 @@ 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(); @@ -71,10 +73,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 newValue = getEnumValue(asmTypeDescriptor, attributeValue); visit(attributeName, newValue); @@ -142,6 +146,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( @@ -168,6 +173,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 5a2f959fb2d..6f5679c65b1 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/AnnotationMetadataReadingVisitor.java @@ -75,18 +75,22 @@ public class AnnotationMetadataReadingVisitor extends ClassMetadataReadingVisito } + @Override public Set getAnnotationTypes() { return this.annotationSet; } + @Override public Set getMetaAnnotationTypes(String annotationType) { return this.metaAnnotationMap.get(annotationType); } + @Override public boolean hasAnnotation(String annotationType) { return this.annotationSet.contains(annotationType); } + @Override public boolean hasMetaAnnotation(String metaAnnotationType) { Collection> allMetaTypes = this.metaAnnotationMap.values(); for (Set metaTypes : allMetaTypes) { @@ -97,14 +101,17 @@ public class AnnotationMetadataReadingVisitor extends ClassMetadataReadingVisito return false; } + @Override public boolean isAnnotated(String annotationType) { return this.attributeMap.containsKey(annotationType); } + @Override public AnnotationAttributes getAnnotationAttributes(String annotationType) { return getAnnotationAttributes(annotationType, false); } + @Override public AnnotationAttributes getAnnotationAttributes(String annotationType, boolean classValuesAsString) { List attributes = this.attributeMap.get(annotationType); AnnotationAttributes raw = (attributes == null ? null : attributes.get(0)); @@ -112,10 +119,12 @@ public class AnnotationMetadataReadingVisitor extends ClassMetadataReadingVisito classValuesAsString); } + @Override public MultiValueMap getAllAnnotationAttributes(String annotationType) { return getAllAnnotationAttributes(annotationType, false); } + @Override public MultiValueMap getAllAnnotationAttributes( String annotationType, boolean classValuesAsString) { MultiValueMap allAttributes = new LinkedMultiValueMap(); @@ -132,10 +141,12 @@ public class AnnotationMetadataReadingVisitor extends ClassMetadataReadingVisito return allAttributes; } + @Override public boolean hasAnnotatedMethods(String annotationType) { return this.methodMetadataMap.containsKey(annotationType); } + @Override public Set getAnnotatedMethods(String annotationType) { List list = this.methodMetadataMap.get(annotationType); if (CollectionUtils.isEmpty(list)) { diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java b/spring-core/src/main/java/org/springframework/core/type/classreading/ClassMetadataReadingVisitor.java index 45785bc8a38..0d78fc27373 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 b7e9a1e1209..721c10f5f79 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/MethodMetadataReadingVisitor.java @@ -75,30 +75,37 @@ public class MethodMetadataReadingVisitor extends MethodVisitor implements Metho return new AnnotationAttributesReadingVisitor(className, this.attributeMap, null, this.classLoader); } + @Override public String getMethodName() { return this.name; } + @Override public boolean isStatic() { return ((this.access & Opcodes.ACC_STATIC) != 0); } + @Override public boolean isFinal() { return ((this.access & Opcodes.ACC_FINAL) != 0); } + @Override public boolean isOverridable() { return (!isStatic() && !isFinal() && ((this.access & Opcodes.ACC_PRIVATE) == 0)); } + @Override public boolean isAnnotated(String annotationType) { return this.attributeMap.containsKey(annotationType); } + @Override public Map getAnnotationAttributes(String annotationType) { return getAnnotationAttributes(annotationType, false); } + @Override public Map getAnnotationAttributes(String annotationType, boolean classValuesAsString) { List attributes = this.attributeMap.get(annotationType); @@ -106,10 +113,12 @@ public class MethodMetadataReadingVisitor extends MethodVisitor implements Metho this.classLoader, attributes.get(0), classValuesAsString)); } + @Override public MultiValueMap getAllAnnotationAttributes(String annotationType) { return getAllAnnotationAttributes(annotationType, false); } + @Override public MultiValueMap getAllAnnotationAttributes( String annotationType, boolean classValuesAsString) { if(!this.attributeMap.containsKey(annotationType)) { @@ -125,6 +134,7 @@ public class MethodMetadataReadingVisitor extends MethodVisitor implements Metho return allAttributes; } + @Override public String getDeclaringClassName() { return this.declaringClassName; } diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReader.java b/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReader.java index 36c495e5420..8ffe4c07f75 100644 --- a/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReader.java +++ b/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReader.java @@ -70,14 +70,17 @@ final class SimpleMetadataReader implements MetadataReader { } + @Override public Resource getResource() { return this.resource; } + @Override public ClassMetadata getClassMetadata() { return this.classMetadata; } + @Override public AnnotationMetadata getAnnotationMetadata() { return this.annotationMetadata; } diff --git a/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReaderFactory.java b/spring-core/src/main/java/org/springframework/core/type/classreading/SimpleMetadataReaderFactory.java index 42f686ead7d..667bac68820 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 2b9e8b8c045..a87168b7adc 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 82362b56700..1ae2eef2ee2 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 d50215cdc29..2af6411e22a 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 e7fefa175d9..65a2d64a198 100644 --- a/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java +++ b/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java @@ -73,14 +73,17 @@ public class AntPathMatcher implements PathMatcher { this.trimTokens = trimTokens; } + @Override public boolean isPattern(String path) { return (path.indexOf('*') != -1 || path.indexOf('?') != -1); } + @Override public boolean match(String pattern, String path) { return doMatch(pattern, path, true, null); } + @Override public boolean matchStart(String pattern, String path) { return doMatch(pattern, path, false, null); } @@ -251,6 +254,7 @@ 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, this.trimTokens, true); String[] pathParts = StringUtils.tokenizeToStringArray(path, this.pathSeparator, this.trimTokens, true); @@ -281,6 +285,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); @@ -307,6 +312,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 ""; @@ -387,6 +393,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); } @@ -400,6 +407,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 7a2135fb65c..d58e0acd810 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/CollectionUtils.java b/spring-core/src/main/java/org/springframework/util/CollectionUtils.java index 5e74473fa9b..a16d5fecd48 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 c385702094e..7c1d9e69214 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 3da70f602b6..c638f14a5db 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 3310e0b2411..b4be1bb2bb8 100644 --- a/spring-core/src/main/java/org/springframework/util/DefaultPropertiesPersister.java +++ b/spring-core/src/main/java/org/springframework/util/DefaultPropertiesPersister.java @@ -53,30 +53,37 @@ import java.util.Properties; */ public class DefaultPropertiesPersister implements PropertiesPersister { + @Override public void load(Properties props, InputStream is) throws IOException { props.load(is); } + @Override public void load(Properties props, Reader reader) throws IOException { props.load(reader); } + @Override public void store(Properties props, OutputStream os, String header) throws IOException { props.store(os, header); } + @Override public void store(Properties props, Writer writer, String header) throws IOException { props.store(writer, header); } + @Override public void loadFromXml(Properties props, InputStream is) throws IOException { props.loadFromXML(is); } + @Override public void storeToXml(Properties props, OutputStream os, String header) throws IOException { props.storeToXML(os, header); } + @Override public void storeToXml(Properties props, OutputStream os, String header, String encoding) throws IOException { props.storeToXML(os, header, encoding); } diff --git a/spring-core/src/main/java/org/springframework/util/LinkedMultiValueMap.java b/spring-core/src/main/java/org/springframework/util/LinkedMultiValueMap.java index 0bd22915789..f980b91c237 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 5728b28604d..99d666e5a55 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 87ba4211412..0edaeca2d31 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 19ee4478e71..72f8712ff0a 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 46693c96b14..2ce4b7901ec 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 6fd0c2294bc..ec68351e790 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 40e4e7af933..b8b27418cb9 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 ba56bd54d15..20652a32887 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 80b8b9b369f..b9c6161038d 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 f78e56ff5dc..9a9f5f9c193 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 1171bdc1d30..ebff3488c2d 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 46f4d98ebe5..f494b88592a 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 feeefd6e8ea..25dc97b299d 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 300f9ff2fc9..7b24a3c1c23 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 e8c8a643486..6335ea156f6 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 534cb0077b4..5a8d92aa850 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 c0d966d6eba..2908fa91489 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 ed06ed8c056..3d0227db1c7 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 7fd5dffa109..cab7670a92b 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 686ff1a6343..54505a587c8 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 0d32a3fc08c..9607d29f23c 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 2241e2f2a9e..284f69d0ac2 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 bca48d1cdbe..4bba7a69748 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 61267be901f..731d7bc9a28 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 37dff4fb810..8c9e3ad0fb8 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-core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java b/spring-core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java index ba42cddf9da..1a037f05c1a 100644 --- a/spring-core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java +++ b/spring-core/src/test/java/org/springframework/core/convert/support/DefaultConversionTests.java @@ -740,6 +740,7 @@ public class DefaultConversionTests { this.value = value; } + @Override public boolean equals(Object o) { if (!(o instanceof SSN)) { return false; @@ -748,10 +749,12 @@ public class DefaultConversionTests { return this.value.equals(ssn.value); } + @Override public int hashCode() { return value.hashCode(); } + @Override public String toString() { return value; } @@ -765,6 +768,7 @@ public class DefaultConversionTests { this.value = value; } + @Override public boolean equals(Object o) { if (!(o instanceof ISBN)) { return false; @@ -773,10 +777,12 @@ public class DefaultConversionTests { return this.value.equals(isbn.value); } + @Override public int hashCode() { return value.hashCode(); } + @Override public String toString() { return value; } diff --git a/spring-core/src/test/java/org/springframework/core/env/DummyEnvironment.java b/spring-core/src/test/java/org/springframework/core/env/DummyEnvironment.java index 88d9347dfa1..bcb3d2258ef 100644 --- a/spring-core/src/test/java/org/springframework/core/env/DummyEnvironment.java +++ b/spring-core/src/test/java/org/springframework/core/env/DummyEnvironment.java @@ -18,56 +18,69 @@ package org.springframework.core.env; public class DummyEnvironment implements Environment { + @Override public boolean containsProperty(String key) { return false; } + @Override public String getProperty(String key) { return null; } + @Override public String getProperty(String key, String defaultValue) { return null; } + @Override public T getProperty(String key, Class targetType) { return null; } + @Override public T getProperty(String key, Class targetType, T defaultValue) { return null; } + @Override public Class getPropertyAsClass(String key, Class targetType) { return null; } + @Override public String getRequiredProperty(String key) throws IllegalStateException { return null; } + @Override public T getRequiredProperty(String key, Class targetType) throws IllegalStateException { return null; } + @Override public String resolvePlaceholders(String text) { return null; } + @Override public String resolveRequiredPlaceholders(String text) throws IllegalArgumentException { return null; } + @Override public String[] getActiveProfiles() { return null; } + @Override public String[] getDefaultProfiles() { return null; } + @Override public boolean acceptsProfiles(String... profiles) { return false; } diff --git a/spring-core/src/test/java/org/springframework/core/style/ToStringCreatorTests.java b/spring-core/src/test/java/org/springframework/core/style/ToStringCreatorTests.java index f353d34fb1d..381cc5a3bac 100644 --- a/spring-core/src/test/java/org/springframework/core/style/ToStringCreatorTests.java +++ b/spring-core/src/test/java/org/springframework/core/style/ToStringCreatorTests.java @@ -37,16 +37,19 @@ public class ToStringCreatorTests extends TestCase { @Override protected void setUp() throws Exception { s1 = new SomeObject() { + @Override public String toString() { return "A"; } }; s2 = new SomeObject() { + @Override public String toString() { return "B"; } }; s3 = new SomeObject() { + @Override public String toString() { return "C"; } @@ -56,6 +59,7 @@ public class ToStringCreatorTests extends TestCase { public void testDefaultStyleMap() { final Map map = getMap(); Object stringy = new Object() { + @Override public String toString() { return new ToStringCreator(this).append("familyFavoriteSport", map).toString(); } diff --git a/spring-core/src/test/java/org/springframework/tests/sample/objects/TestObject.java b/spring-core/src/test/java/org/springframework/tests/sample/objects/TestObject.java index 68ce8c644b0..29617d52618 100644 --- a/spring-core/src/test/java/org/springframework/tests/sample/objects/TestObject.java +++ b/spring-core/src/test/java/org/springframework/tests/sample/objects/TestObject.java @@ -32,26 +32,32 @@ public class TestObject implements ITestObject, ITestInterface, Comparable() { + @Override public Object answer(InvocationOnMock invocation) throws Throwable { return invocation.getArguments()[0] = "element"; } @@ -147,6 +148,7 @@ public abstract class AbstractStaxXMLReaderTestCase { willAnswer(new CopyCharsAnswer()).given(contentHandler).characters(any(char[].class), anyInt(), anyInt()); willAnswer(new CopyCharsAnswer()).given(contentHandler).ignorableWhitespace(any(char[].class), anyInt(), anyInt()); willAnswer(new Answer() { + @Override public Object answer(InvocationOnMock invocation) throws Throwable { invocation.getArguments()[3] = new AttributesImpl((Attributes) invocation.getArguments()[3]); return null; @@ -161,6 +163,7 @@ public abstract class AbstractStaxXMLReaderTestCase { } private static class SkipLocatorArgumentsAdapter implements InvocationArgumentsAdapter { + @Override public Object[] adaptArguments(Object[] arguments) { for(int i=0; i { + @Override public Object answer(InvocationOnMock invocation) throws Throwable { char[] chars = (char[]) invocation.getArguments()[0]; char[] copy = new char[chars.length]; diff --git a/spring-expression/src/main/java/org/springframework/expression/ParserContext.java b/spring-expression/src/main/java/org/springframework/expression/ParserContext.java index 0fa439dd8d8..87a442c6b3b 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 840ad1b8541..a24a545479b 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 ae7713c50f3..ea6742ae07b 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 187065fde9c..82b6ab07bbf 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 046ed6a9010..768e567b5a2 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 8a09bf2b923..5a712417eb6 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 2e19cc81e29..4f919beec21 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/Indexer.java @@ -106,16 +106,19 @@ 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; } @@ -140,11 +143,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), @@ -153,6 +158,7 @@ public class Indexer extends SpelNodeImpl { this.map.put(this.key, newValue); } + @Override public boolean isWritable() { return true; } @@ -177,6 +183,7 @@ public class Indexer extends SpelNodeImpl { this.td = targetObjectTypeDescriptor; } + @Override public TypedValue getValue() { Class targetObjectRuntimeClass = getObjectClass(targetObject); try { @@ -210,6 +217,7 @@ public class Indexer extends SpelNodeImpl { this.td.toString()); } + @Override public void setValue(Object newValue) { Class contextObjectClass = getObjectClass(targetObject); try { @@ -239,6 +247,7 @@ public class Indexer extends SpelNodeImpl { } } + @Override public boolean isWritable() { return true; } @@ -270,6 +279,7 @@ public class Indexer extends SpelNodeImpl { this.maximumSize = maximumSize; } + @Override public TypedValue getValue() { growCollectionIfNecessary(); if (this.collection instanceof List) { @@ -286,6 +296,7 @@ public class Indexer extends SpelNodeImpl { throw new IllegalStateException("Failed to find indexed element " + this.index + ": " + this.collection); } + @Override public void setValue(Object newValue) { growCollectionIfNecessary(); if (this.collection instanceof List) { @@ -332,6 +343,7 @@ public class Indexer extends SpelNodeImpl { } } + @Override public boolean isWritable() { return true; } @@ -352,6 +364,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, @@ -360,11 +373,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 e1092781492..26c5179005f 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/MethodReference.java @@ -236,6 +236,7 @@ public class MethodReference extends SpelNodeImpl { this.arguments = arguments; } + @Override public TypedValue getValue() { MethodExecutor executorToUse = cachedExecutor; if (executorToUse != null) { @@ -274,10 +275,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 c8eeb2b0f7b..1afb3b28c4c 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 99e79ff5048..043a57e6fd2 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 e1ee6f90b48..7964824a3c2 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 a373ed38682..c4fa571b851 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 785d317cacf..3c33992070c 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 ac52f98a55f..dfefb5516db 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/standard/Token.java b/spring-expression/src/main/java/org/springframework/expression/spel/standard/Token.java index aaba8236a7e..12b71d6b6d8 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/standard/Token.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/standard/Token.java @@ -50,6 +50,7 @@ class Token { return kind; } + @Override public String toString() { StringBuilder s = new StringBuilder(); s.append("[").append(kind.toString()); diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/standard/TokenKind.java b/spring-expression/src/main/java/org/springframework/expression/spel/standard/TokenKind.java index cd1db13d6d4..d0b42deea23 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/standard/TokenKind.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/standard/TokenKind.java @@ -45,6 +45,7 @@ enum TokenKind { this(""); } + @Override public String toString() { return this.name()+(tokenChars.length!=0?"("+new String(tokenChars)+")":""); } diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java index 2e6ff92d737..68e47d8533b 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectionHelper.java @@ -487,6 +487,7 @@ public class ReflectionHelper { return (this.kind == ArgsMatchKind.REQUIRES_CONVERSION); } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("ArgumentMatch: ").append(this.kind); diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveConstructorExecutor.java index 1f17187c6e7..e2601c893b3 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 4342941af80..36d48cbf879 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 fc48314f27a..1b4da4b2848 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 fbd0b77bcaf..fe2f5aa1d1c 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodResolver.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectiveMethodResolver.java @@ -87,6 +87,7 @@ public class ReflectiveMethodResolver implements MethodResolver { * according to the registered type converter. * */ + @Override public MethodExecutor resolve(EvaluationContext context, Object targetObject, String name, List argumentTypes) throws AccessException { @@ -105,6 +106,7 @@ public class ReflectiveMethodResolver implements MethodResolver { // Sort methods into a sensible order if (methods.size() > 1) { Collections.sort(methods, new Comparator() { + @Override public int compare(Method m1, Method m2) { int m1pl = m1.getParameterTypes().length; int m2pl = m2.getParameterTypes().length; diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java index 6c5b249114d..ca38218661e 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/support/ReflectivePropertyAccessor.java @@ -59,10 +59,12 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { /** * @return null which means this is a general purpose accessor */ + @Override public Class[] getSpecificTargetClasses() { return null; } + @Override public boolean canRead(EvaluationContext context, Object target, String name) throws AccessException { if (target == null) { return false; @@ -97,6 +99,7 @@ public 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"); @@ -163,6 +166,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; @@ -192,6 +196,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"); @@ -357,6 +362,7 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { private Method[] getSortedClassMethods(Class clazz) { Method[] methods = clazz.getMethods(); Arrays.sort(methods, new Comparator() { + @Override public int compare(Method o1, Method o2) { return (o1.isBridge() == o2.isBridge()) ? 0 : (o1.isBridge() ? 1 : -1); } @@ -531,10 +537,12 @@ 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; @@ -558,6 +566,7 @@ public class ReflectivePropertyAccessor implements PropertyAccessor { } } + @Override public TypedValue read(EvaluationContext context, Object target, String name) throws AccessException { if (this.member instanceof Method) { try { @@ -586,10 +595,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 c4a4425bed5..ce03b4927c9 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 be2a36e6738..c120bf66ed3 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 18f29d148bc..92aafb28bc5 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 483dade31e4..0500dde5d53 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 2a210e3fda5..319985fe8a0 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-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java b/spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java index e6e28eedd3c..ba69e568286 100644 --- a/spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java +++ b/spring-expression/src/test/java/org/springframework/expression/spel/SpelReproTests.java @@ -165,7 +165,8 @@ public class SpelReproTests extends ExpressionTestCase { return sb.toString(); } - public String toString() { + @Override + public String toString() { return "instance"; } } @@ -790,6 +791,7 @@ public class SpelReproTests extends ExpressionTestCase { a=s; } + @Override public String toString() { return "D("+a+")"; } diff --git a/spring-expression/src/test/java/org/springframework/expression/spel/testresources/Fruit.java b/spring-expression/src/test/java/org/springframework/expression/spel/testresources/Fruit.java index 04cf7fa004e..68f6c6b15c9 100644 --- a/spring-expression/src/test/java/org/springframework/expression/spel/testresources/Fruit.java +++ b/spring-expression/src/test/java/org/springframework/expression/spel/testresources/Fruit.java @@ -34,6 +34,7 @@ public class Fruit { return stringscount; } + @Override public String toString() { return "A" + (colorName != null && colorName.startsWith("o") ? "n " : " ") + colorName + " " + name; } diff --git a/spring-expression/src/test/java/org/springframework/expression/spel/testresources/PlaceOfBirth.java b/spring-expression/src/test/java/org/springframework/expression/spel/testresources/PlaceOfBirth.java index ea5c1d970a4..c099c2d4e8c 100644 --- a/spring-expression/src/test/java/org/springframework/expression/spel/testresources/PlaceOfBirth.java +++ b/spring-expression/src/test/java/org/springframework/expression/spel/testresources/PlaceOfBirth.java @@ -30,6 +30,7 @@ public class PlaceOfBirth { return i*2; } + @Override public boolean equals(Object o) { if (!(o instanceof PlaceOfBirth)) { return false; @@ -38,6 +39,7 @@ public class PlaceOfBirth { return (city.equals(oPOB.city)); } + @Override public int hashCode() { return city.hashCode(); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/config/JdbcNamespaceHandler.java b/spring-jdbc/src/main/java/org/springframework/jdbc/config/JdbcNamespaceHandler.java index 70510f971d2..e5567d1cfd0 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 6569ba893f7..6f20b20a9e2 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/ArgumentPreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java index 24bc6870a7e..75ca1930ef9 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentPreparedStatementSetter.java @@ -39,6 +39,7 @@ public class ArgumentPreparedStatementSetter implements PreparedStatementSetter, } + @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 @@ public class ArgumentPreparedStatementSetter implements PreparedStatementSetter, } } + @Override public void cleanupParameters() { StatementCreatorUtils.cleanupParameters(this.args); } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java index ceb3d78542e..f52aea49db4 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/ArgumentTypePreparedStatementSetter.java @@ -52,6 +52,7 @@ public class ArgumentTypePreparedStatementSetter implements PreparedStatementSet } + @Override public void setValues(PreparedStatement ps) throws SQLException { int parameterPosition = 1; if (this.args != null) { @@ -96,6 +97,7 @@ public class ArgumentTypePreparedStatementSetter implements PreparedStatementSet 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 b67f4ffdd14..c888b47ef35 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 dde80677534..74dbd6ce7fa 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 279ab5a5871..c4cdb8ab264 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 103333fe987..1a0ac8277fd 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 6edb4ca48c9..89092f58eaa 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,57 +464,69 @@ 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 @Deprecated public long queryForLong(String sql) throws DataAccessException { Number number = queryForObject(sql, Long.class); return (number != null ? number.longValue() : 0); } + @Override @Deprecated public int queryForInt(String sql) throws DataAccessException { Number number = queryForObject(sql, Integer.class); return (number != null ? number.intValue() : 0); } + @Override public List queryForList(String sql, Class elementType) throws DataAccessException { return query(sql, getSingleColumnRowMapper(elementType)); } + @Override public List> queryForList(String sql) throws DataAccessException { return query(sql, getColumnMapRowMapper()); } + @Override public SqlRowSet queryForRowSet(String sql) throws DataAccessException { return query(sql, new SqlRowSetResultSetExtractor()); } + @Override public int update(final String sql) throws DataAccessException { Assert.notNull(sql, "SQL must not be null"); if (logger.isDebugEnabled()) { logger.debug("Executing SQL update [" + sql + "]"); } class UpdateStatementCallback implements StatementCallback, SqlProvider { + @Override public Integer doInStatement(Statement stmt) throws SQLException { int rows = stmt.executeUpdate(sql); if (logger.isDebugEnabled()) { @@ -514,6 +534,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } return rows; } + @Override public String getSql() { return sql; } @@ -521,6 +542,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()) { @@ -528,6 +550,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())) { @@ -550,6 +573,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } return rowsAffected; } + @Override public String getSql() { return this.currSql; } @@ -562,6 +586,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { // Methods dealing with prepared statements //------------------------------------------------------------------------- + @Override public T execute(PreparedStatementCreator psc, PreparedStatementCallback action) throws DataAccessException { @@ -613,6 +638,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { } } + @Override public T execute(String sql, PreparedStatementCallback action) throws DataAccessException { return execute(new SimplePreparedStatementCreator(sql), action); } @@ -637,6 +663,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 { @@ -660,66 +687,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 { @@ -727,86 +770,104 @@ 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 @Deprecated public long queryForLong(String sql, Object[] args, int[] argTypes) throws DataAccessException { Number number = queryForObject(sql, args, argTypes, Long.class); return (number != null ? number.longValue() : 0); } + @Override @Deprecated public long queryForLong(String sql, Object... args) throws DataAccessException { Number number = queryForObject(sql, args, Long.class); return (number != null ? number.longValue() : 0); } + @Override @Deprecated public int queryForInt(String sql, Object[] args, int[] argTypes) throws DataAccessException { Number number = queryForObject(sql, args, argTypes, Integer.class); return (number != null ? number.intValue() : 0); } + @Override @Deprecated public int queryForInt(String sql, Object... args) throws DataAccessException { Number number = queryForObject(sql, args, Integer.class); return (number != null ? number.intValue() : 0); } + @Override public List queryForList(String sql, Object[] args, int[] argTypes, Class elementType) throws DataAccessException { return query(sql, args, argTypes, getSingleColumnRowMapper(elementType)); } + @Override public List queryForList(String sql, Object[] args, Class elementType) throws DataAccessException { return query(sql, args, getSingleColumnRowMapper(elementType)); } + @Override public List queryForList(String sql, Class elementType, Object... args) throws DataAccessException { return query(sql, args, getSingleColumnRowMapper(elementType)); } + @Override public List> queryForList(String sql, Object[] args, int[] argTypes) throws DataAccessException { return query(sql, args, argTypes, getColumnMapRowMapper()); } + @Override public List> queryForList(String sql, Object... args) throws DataAccessException { return query(sql, args, getColumnMapRowMapper()); } + @Override public SqlRowSet queryForRowSet(String sql, Object[] args, int[] argTypes) throws DataAccessException { return query(sql, args, argTypes, new SqlRowSetResultSetExtractor()); } + @Override public SqlRowSet queryForRowSet(String sql, Object... args) throws DataAccessException { return query(sql, args, new SqlRowSetResultSetExtractor()); } @@ -816,6 +877,7 @@ 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) { @@ -836,10 +898,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 { @@ -847,6 +911,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(); @@ -870,24 +935,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(); @@ -929,10 +999,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); } @@ -943,11 +1015,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 { @@ -994,6 +1068,7 @@ public class JdbcTemplate extends JdbcAccessor implements JdbcOperations { // Methods dealing with callable statements //------------------------------------------------------------------------- + @Override public T execute(CallableStatementCreator csc, CallableStatementCallback action) throws DataAccessException { @@ -1044,10 +1119,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 { @@ -1068,6 +1145,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(); @@ -1377,6 +1455,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... @@ -1442,10 +1521,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; } @@ -1464,10 +1545,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; } @@ -1487,6 +1570,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 6ba84b72b82..db9c03e7cc8 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; 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 7aeb9ee31fc..376810bf26c 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 8ce94536222..98043f57b82 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 9583ec752ce..2597b097431 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 38efce95b61..a0db5625a4c 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 8eb1e1ea5a1..f7798d2bc84 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 cf56a04999a..36bc50ed848 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 f8ff89e4794..79526492fbd 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 92e06e04cbd..364b075b612 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/EmptySqlParameterSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/EmptySqlParameterSource.java index a0b525f0dcd..e90d4085954 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/EmptySqlParameterSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/EmptySqlParameterSource.java @@ -30,18 +30,22 @@ public class EmptySqlParameterSource implements SqlParameterSource { public static final EmptySqlParameterSource INSTANCE = new EmptySqlParameterSource(); + @Override public boolean hasValue(String paramName) { return false; } + @Override public Object getValue(String paramName) throws IllegalArgumentException { throw new IllegalArgumentException("This SqlParameterSource is empty"); } + @Override public int getSqlType(String paramName) { return TYPE_UNKNOWN; } + @Override public String getTypeName(String paramName) { return null; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/MapSqlParameterSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/namedparam/MapSqlParameterSource.java index fc7b32f4ef1..1212c42c246 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 4438498a883..fd711b43278 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 d8258cefc95..593e231511f 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,70 +126,83 @@ 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 execute(String sql, PreparedStatementCallback action) throws DataAccessException { return execute(sql, EmptySqlParameterSource.INSTANCE, action); } + @Override public T query(String sql, SqlParameterSource paramSource, ResultSetExtractor rse) throws DataAccessException { return getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rse); } + @Override public T query(String sql, Map paramMap, ResultSetExtractor rse) throws DataAccessException { return query(sql, new MapSqlParameterSource(paramMap), rse); } + @Override public T query(String sql, ResultSetExtractor rse) throws DataAccessException { return query(sql, EmptySqlParameterSource.INSTANCE, rse); } + @Override public void query(String sql, SqlParameterSource paramSource, RowCallbackHandler rch) throws DataAccessException { getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rch); } + @Override public void query(String sql, Map paramMap, RowCallbackHandler rch) throws DataAccessException { query(sql, new MapSqlParameterSource(paramMap), rch); } + @Override public void query(String sql, RowCallbackHandler rch) throws DataAccessException { query(sql, EmptySqlParameterSource.INSTANCE, rch); } + @Override public List query(String sql, SqlParameterSource paramSource, RowMapper rowMapper) throws DataAccessException { return getJdbcOperations().query(getPreparedStatementCreator(sql, paramSource), rowMapper); } + @Override public List query(String sql, Map paramMap, RowMapper rowMapper) throws DataAccessException { return query(sql, new MapSqlParameterSource(paramMap), rowMapper); } + @Override public List query(String sql, RowMapper rowMapper) throws DataAccessException { return query(sql, EmptySqlParameterSource.INSTANCE, rowMapper); } + @Override public T queryForObject(String sql, SqlParameterSource paramSource, RowMapper rowMapper) throws DataAccessException { @@ -196,101 +210,120 @@ public 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 @Deprecated public long queryForLong(String sql, SqlParameterSource paramSource) throws DataAccessException { Number number = queryForObject(sql, paramSource, Long.class); return (number != null ? number.longValue() : 0); } + @Override @Deprecated public long queryForLong(String sql, Map paramMap) throws DataAccessException { return queryForLong(sql, new MapSqlParameterSource(paramMap)); } + @Override @Deprecated public int queryForInt(String sql, SqlParameterSource paramSource) throws DataAccessException { Number number = queryForObject(sql, paramSource, Integer.class); return (number != null ? number.intValue() : 0); } + @Override @Deprecated public int queryForInt(String sql, Map paramMap) throws DataAccessException { return queryForInt(sql, new MapSqlParameterSource(paramMap)); } + @Override public List queryForList(String sql, SqlParameterSource paramSource, Class elementType) throws DataAccessException { return query(sql, paramSource, new SingleColumnRowMapper(elementType)); } + @Override public List queryForList(String sql, Map paramMap, Class elementType) throws DataAccessException { return queryForList(sql, new MapSqlParameterSource(paramMap), elementType); } + @Override public List> queryForList(String sql, SqlParameterSource paramSource) throws DataAccessException { return query(sql, paramSource, new ColumnMapRowMapper()); } + @Override public List> queryForList(String sql, Map paramMap) throws DataAccessException { return queryForList(sql, new MapSqlParameterSource(paramMap)); } + @Override public SqlRowSet queryForRowSet(String sql, SqlParameterSource paramSource) throws DataAccessException { return getJdbcOperations().query( getPreparedStatementCreator(sql, paramSource), new SqlRowSetResultSetExtractor()); } + @Override public SqlRowSet queryForRowSet(String sql, Map paramMap) throws DataAccessException { return queryForRowSet(sql, new MapSqlParameterSource(paramMap)); } + @Override public int update(String sql, SqlParameterSource paramSource) throws DataAccessException { return getJdbcOperations().update(getPreparedStatementCreator(sql, paramSource)); } + @Override public int update(String sql, Map paramMap) throws DataAccessException { return update(sql, new MapSqlParameterSource(paramMap)); } + @Override public int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder) throws DataAccessException { return update(sql, paramSource, generatedKeyHolder, null); } + @Override public int update( String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder, String[] keyColumnNames) throws DataAccessException { @@ -309,6 +342,7 @@ public 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; @@ -319,6 +353,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 cb66d803c70..d011e8ad91b 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/AbstractJdbcInsert.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/AbstractJdbcInsert.java @@ -435,6 +435,7 @@ public abstract class AbstractJdbcInsert { if (this.tableMetaDataContext.isGetGeneratedKeysSupported()) { getJdbcTemplate().update( new PreparedStatementCreator() { + @Override public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement ps = prepareStatementForGeneratedKeys(con); setParameterValues(ps, values, getInsertTypes()); @@ -472,6 +473,7 @@ public abstract class AbstractJdbcInsert { } else { getJdbcTemplate().execute(new ConnectionCallback() { + @Override public Object doInConnection(Connection con) throws SQLException, DataAccessException { // Do the insert PreparedStatement ps = null; @@ -580,10 +582,12 @@ public abstract class AbstractJdbcInsert { } return getJdbcTemplate().batchUpdate(getInsertString(), new BatchPreparedStatementSetter() { + @Override public void setValues(PreparedStatement ps, int i) throws SQLException { List values = batchValues[i]; setParameterValues(ps, values, getInsertTypes()); } + @Override public int getBatchSize() { return batchValues.length; } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcCall.java b/spring-jdbc/src/main/java/org/springframework/jdbc/core/simple/SimpleJdbcCall.java index 9a37a589a37..6b695b6509f 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,59 +121,71 @@ 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; } + @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 98b89e9f1f2..99dda1f43db 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 a4ec41fc064..78e85682bd7 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 83d37435ece..7fb5e6d1c20 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 c106ad57f41..ee4633d5661 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobCreatingPreparedStatementCallback.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/core/support/AbstractLobCreatingPreparedStatementCallback.java @@ -68,6 +68,7 @@ public 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 83a9aedffc2..4a15e97fd40 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 d751933913b..67f325c8d55 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 7039eeacc84..bdcd1c30736 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 2cc5f9f9099..8e46d42b750 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 0674c79b477..63d9ddff388 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 c7e7e19918d..0a2808fe939 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 b0e9811e3a3..0c337bc90eb 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(); } @@ -360,6 +362,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 a4c162dde8d..3adef83c819 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 e2b7f0a896a..18c6572883b 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 5495aa68ce7..4b931564a9e 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/LazyConnectionDataSourceProxy.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/LazyConnectionDataSourceProxy.java @@ -273,6 +273,7 @@ public 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 8df56627c2c..6140a51f1a9 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 83b736bd730..4ee8e3c5734 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SingleConnectionDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SingleConnectionDataSource.java @@ -191,6 +191,7 @@ public 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); @@ -203,6 +204,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(); @@ -292,6 +294,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 3bde77765d1..81953eb2e34 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 1af0e0e38e9..2497a6cc019 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 05fad271249..962b2dff6e2 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 20a5bfdf617..d515e31778d 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactory.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseFactory.java @@ -172,43 +172,53 @@ public 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 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 79e83a9f69a..f41180ca850 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 9ac8270849c..197b5fb6bec 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 084516edf2e..4e4f9646eae 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 a1471bd5419..964c3b33232 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 58b176721bd..309d776534a 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 eba847e6211..4920ada8f7f 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 9958aa7d6b5..177e7781873 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 e2f6eafe368..1f615026cb4 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 f42cbb72f85..610c9e63091 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 915b3271533..f4dbbaf5a25 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 2a48efaaf52..96677aa2e77 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 0a4eb32b4ba..e392303e798 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 25ec879b67d..8bd9a4bbced 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 039e5c34f5f..6372990866d 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 1cf222e0029..3b0b7342bfe 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 6e8355e639b..37db4a54ce6 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 f2d0bb58a04..6067251bacf 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 90603687a1c..3ceb131d7f0 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 7b6d91814ce..6e4c548eab2 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 668022162d1..2faaaba18eb 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 f1858ac576a..738709acc64 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 389a3fc2c30..abdab1e872f 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 89940f0cf2f..f383a4d8339 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 95f2ee36435..8e682e13158 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 3fd0d80f68e..933c166a627 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 4da40d61faa..2caea6f2870 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 e570be24f03..3584557999c 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/DefaultLobHandler.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/DefaultLobHandler.java @@ -139,6 +139,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } + @Override public byte[] getBlobAsBytes(ResultSet rs, int columnIndex) throws SQLException { logger.debug("Returning BLOB as bytes"); if (this.wrapAsLob) { @@ -150,6 +151,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) { @@ -161,6 +163,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) { @@ -172,6 +175,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) { @@ -183,6 +187,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) { @@ -194,6 +199,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public LobCreator getLobCreator() { return (this.createTemporaryLob ? new TemporaryLobCreator() : new DefaultLobCreator()); } @@ -205,6 +211,7 @@ public class DefaultLobHandler extends AbstractLobHandler { */ protected class DefaultLobCreator implements LobCreator { + @Override public void setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content) throws SQLException { @@ -233,6 +240,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void setBlobAsBinaryStream( PreparedStatement ps, int paramIndex, InputStream binaryStream, int contentLength) throws SQLException { @@ -262,6 +270,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void setClobAsString(PreparedStatement ps, int paramIndex, String content) throws SQLException { @@ -290,6 +299,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void setClobAsAsciiStream( PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength) throws SQLException { @@ -324,6 +334,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void setClobAsCharacterStream( PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength) throws SQLException { @@ -353,6 +364,7 @@ public class DefaultLobHandler extends AbstractLobHandler { } } + @Override public void close() { // nothing to do when not creating temporary LOBs } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/JtaLobCreatorSynchronization.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/JtaLobCreatorSynchronization.java index 19c85608c32..80ae5d1ea68 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 ad0e3719e39..8bee169c79b 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 2b239b3504d..b5b3b93154a 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/OracleLobHandler.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/OracleLobHandler.java @@ -227,6 +227,7 @@ 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); @@ -236,6 +237,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); @@ -245,6 +247,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); @@ -254,6 +257,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); @@ -263,6 +267,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); @@ -272,6 +277,7 @@ public class OracleLobHandler extends AbstractLobHandler { return retVal; } + @Override public LobCreator getLobCreator() { return new OracleLobCreator(); } @@ -384,11 +390,13 @@ public class OracleLobHandler extends AbstractLobHandler { private final List temporaryLobs = new LinkedList(); + @Override public void setBlobAsBytes(PreparedStatement ps, int paramIndex, final byte[] content) throws SQLException { if (content != null) { Blob blob = (Blob) createLob(ps, false, new LobCallback() { + @Override public void populateLob(Object lob) throws Exception { Method methodToInvoke = lob.getClass().getMethod("getBinaryOutputStream"); OutputStream out = (OutputStream) methodToInvoke.invoke(lob); @@ -406,12 +414,14 @@ public 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); @@ -429,11 +439,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); @@ -451,12 +463,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); @@ -474,12 +488,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); @@ -570,6 +586,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.temporaryLobs.iterator(); it.hasNext();) { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughBlob.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/PassThroughBlob.java index 8d4a653c4ba..d55a0fd5c28 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 05c6a96f6f5..82e5d004acf 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/lob/TemporaryLobCreator.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/TemporaryLobCreator.java index f8c52660cb7..fbe1b55744a 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/TemporaryLobCreator.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/support/lob/TemporaryLobCreator.java @@ -55,6 +55,7 @@ public class TemporaryLobCreator implements LobCreator { private final Set temporaryClobs = new LinkedHashSet(1); + @Override public void setBlobAsBytes(PreparedStatement ps, int paramIndex, byte[] content) throws SQLException { @@ -70,6 +71,7 @@ public class TemporaryLobCreator implements LobCreator { } } + @Override public void setBlobAsBinaryStream( PreparedStatement ps, int paramIndex, InputStream binaryStream, int contentLength) throws SQLException { @@ -92,6 +94,7 @@ public class TemporaryLobCreator implements LobCreator { } } + @Override public void setClobAsString(PreparedStatement ps, int paramIndex, String content) throws SQLException { @@ -107,6 +110,7 @@ public class TemporaryLobCreator implements LobCreator { } } + @Override public void setClobAsAsciiStream( PreparedStatement ps, int paramIndex, InputStream asciiStream, int contentLength) throws SQLException { @@ -129,6 +133,7 @@ public class TemporaryLobCreator implements LobCreator { } } + @Override public void setClobAsCharacterStream( PreparedStatement ps, int paramIndex, Reader characterStream, int contentLength) throws SQLException { @@ -151,6 +156,7 @@ public class TemporaryLobCreator implements LobCreator { } } + @Override public void close() { try { for (Blob blob : this.temporaryBlobs) { diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/support/nativejdbc/NativeJdbcExtractorAdapter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/support/nativejdbc/NativeJdbcExtractorAdapter.java index 2614338bec9..60d859b7153 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 69f10432e4a..96d66dfbfd7 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 31d9d9e14e6..cf5f83dac51 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 13f03633776..ed9d66190c1 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-jdbc/src/test/java/org/springframework/jdbc/Customer.java b/spring-jdbc/src/test/java/org/springframework/jdbc/Customer.java index 7c804be1d82..46b646b099d 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/Customer.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/Customer.java @@ -43,6 +43,7 @@ public class Customer { } + @Override public String toString() { return "Customer: id=" + id + "; forename=" + forename; } diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/core/RowMapperTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/core/RowMapperTests.java index a44686f3a61..c31d0809e2a 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/core/RowMapperTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/core/RowMapperTests.java @@ -50,6 +50,7 @@ public class RowMapperTests extends TestCase { private List result; + @Override @Before public void setUp() throws SQLException { connection = mock(Connection.class); diff --git a/spring-jms/src/main/java/org/springframework/jms/JmsException.java b/spring-jms/src/main/java/org/springframework/jms/JmsException.java index 9da83d02ece..b2d3a6f4426 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 fe937c97e8c..c60f7b6cc04 100644 --- a/spring-jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java +++ b/spring-jms/src/main/java/org/springframework/jms/config/AbstractListenerContainerParser.java @@ -89,6 +89,7 @@ abstract class AbstractListenerContainerParser implements BeanDefinitionParser { protected static final String PREFETCH_ATTRIBUTE = "prefetch"; + @Override public BeanDefinition parse(Element element, ParserContext parserContext) { CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(element.getTagName(), parserContext.extractSource(element)); diff --git a/spring-jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java b/spring-jms/src/main/java/org/springframework/jms/config/JcaListenerContainerParser.java index 4c347482110..327c15b3e9c 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 77daef56b55..db8e4859ff8 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 d4642a6bda1..7b78bd093ba 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 ef2a3350f33..c0b7e5589e1 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageConsumer.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageConsumer.java @@ -42,47 +42,58 @@ 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... } + @Override public String toString() { return "Cached JMS MessageConsumer: " + this.target; } diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java index fd2a9fb0129..ffc246037cd 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java @@ -92,6 +92,7 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis } + @Override public void setDisableMessageID(boolean disableMessageID) throws JMSException { if (this.originalDisableMessageID == null) { this.originalDisableMessageID = this.target.getDisableMessageID(); @@ -99,10 +100,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 = this.target.getDisableMessageTimestamp(); @@ -110,6 +113,7 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis this.target.setDisableMessageTimestamp(disableMessageTimestamp); } + @Override public boolean getDisableMessageTimestamp() throws JMSException { return this.target.getDisableMessageTimestamp(); } @@ -125,82 +129,102 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis return (Long) ReflectionUtils.invokeMethod(getDeliveryDelayMethod, this.target); } + @Override public void setDeliveryMode(int deliveryMode) { this.deliveryMode = deliveryMode; } + @Override public int getDeliveryMode() { return this.deliveryMode; } + @Override public void setPriority(int priority) { this.priority = priority; } + @Override public int getPriority() { return this.priority; } + @Override public void setTimeToLive(long timeToLive) { this.timeToLive = timeToLive; } + @Override public long getTimeToLive() { return this.timeToLive; } + @Override public Destination getDestination() throws JMSException { return this.target.getDestination(); } + @Override public Queue getQueue() throws JMSException { return (Queue) this.target.getDestination(); } + @Override public Topic getTopic() throws JMSException { return (Topic) this.target.getDestination(); } + @Override public void send(Message message) throws JMSException { this.target.send(message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void send(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(message, deliveryMode, priority, timeToLive); } + @Override public void send(Destination destination, Message message) throws JMSException { this.target.send(destination, message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void send(Destination destination, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(destination, message, deliveryMode, priority, timeToLive); } + @Override public void send(Queue queue, Message message) throws JMSException { this.target.send(queue, message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void send(Queue queue, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(queue, message, deliveryMode, priority, timeToLive); } + @Override public void publish(Message message) throws JMSException { this.target.send(message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void publish(Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(message, deliveryMode, priority, timeToLive); } + @Override public void publish(Topic topic, Message message) throws JMSException { this.target.send(topic, message, this.deliveryMode, this.priority, this.timeToLive); } + @Override public void publish(Topic topic, Message message, int deliveryMode, int priority, long timeToLive) throws JMSException { this.target.send(topic, message, deliveryMode, priority, timeToLive); } + @Override public void close() throws JMSException { // It's a cached MessageProducer... reset properties only. if (this.originalDisableMessageID != null) { @@ -217,6 +241,7 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis } } + @Override public String toString() { return "Cached JMS MessageProducer: " + this.target; } @@ -245,6 +270,7 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis */ private class Jms2MessageProducerInvocationHandler implements InvocationHandler { + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if (method.getName().equals("send") && args != null && diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java index 368f87586b0..c9068787d9c 100644 --- a/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java +++ b/spring-jms/src/main/java/org/springframework/jms/connection/CachingConnectionFactory.java @@ -182,6 +182,7 @@ public class CachingConnectionFactory extends SingleConnectionFactory { /** * Resets the Session cache as well. */ + @Override public void resetConnection() { this.active = false; synchronized (this.cachedSessions) { @@ -208,6 +209,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) { @@ -285,6 +287,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")) { @@ -509,12 +512,14 @@ public class CachingConnectionFactory extends SingleConnectionFactory { getDestinationString().equals(otherKey.getDestinationString()))); } + @Override public boolean equals(Object other) { // Effectively checking object equality as well as toString equality. // On WebSphere MQ, Destination objects do not implement equals... return (other == this || destinationEquals((DestinationCacheKey) other)); } + @Override public int hashCode() { // Can't use a more specific hashCode since we can't rely on // this.destination.hashCode() actually being the same value @@ -543,6 +548,7 @@ public class CachingConnectionFactory extends SingleConnectionFactory { this.subscription = subscription; } + @Override public boolean equals(Object other) { if (other == this) { return true; diff --git a/spring-jms/src/main/java/org/springframework/jms/connection/ChainedExceptionListener.java b/spring-jms/src/main/java/org/springframework/jms/connection/ChainedExceptionListener.java index 31f9ad675bb..4ca40d842cc 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 a668a1d62ec..72f04974538 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 e01bfec1f0d..85a1a589deb 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 28a683c8f5c..3587b135823 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/SingleConnectionFactory.java b/spring-jms/src/main/java/org/springframework/jms/connection/SingleConnectionFactory.java index ce1669c5aaa..db0d74aa1e8 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/TransactionAwareConnectionFactoryProxy.java b/spring-jms/src/main/java/org/springframework/jms/connection/TransactionAwareConnectionFactoryProxy.java index ccacc0df0b8..de2b64c1fa4 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 2d1cc49b272..3e912ea0a69 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); } @@ -292,6 +299,7 @@ public class UserCredentialsConnectionFactoryAdapter this.password = password; } + @Override public String toString() { return "JmsUserCredentials[username='" + this.username + "',password='" + this.password + "']"; } diff --git a/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java b/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java index e4bc172ca78..70f60cbf1e5 100644 --- a/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java +++ b/spring-jms/src/main/java/org/springframework/jms/core/JmsTemplate.java @@ -451,6 +451,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations // JmsOperations execute methods //------------------------------------------------------------------------- + @Override public T execute(SessionCallback action) throws JmsException { return execute(action, false); } @@ -498,6 +499,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations } } + @Override public T execute(ProducerCallback action) throws JmsException { String defaultDestinationName = getDefaultDestinationName(); if (defaultDestinationName != null) { @@ -508,9 +510,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 { @@ -523,9 +527,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); @@ -544,6 +550,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) { @@ -554,8 +561,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; @@ -563,8 +572,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); @@ -628,6 +639,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) { @@ -638,22 +650,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) { @@ -664,11 +681,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); @@ -676,11 +695,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); @@ -693,6 +714,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) { @@ -703,14 +725,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) { @@ -721,16 +746,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); @@ -813,26 +842,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)); } @@ -859,6 +894,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) { @@ -869,14 +905,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) { @@ -887,11 +926,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 { @@ -904,11 +945,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); @@ -1049,22 +1092,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/support/JmsGatewaySupport.java b/spring-jms/src/main/java/org/springframework/jms/core/support/JmsGatewaySupport.java index 95314fd3b2d..277e7ed893b 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 87507c28b7c..f7170925bb6 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 e899ca12cde..e5db170e731 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 de0132dae16..9d25ea6e732 100644 --- a/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java +++ b/spring-jms/src/main/java/org/springframework/jms/listener/DefaultMessageListenerContainer.java @@ -974,6 +974,7 @@ public class DefaultMessageListenerContainer extends AbstractPollingMessageListe private volatile boolean idle = true; + @Override public void run() { synchronized (lifecycleMonitor) { activeInvokerCount++; @@ -1150,6 +1151,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/SimpleMessageListenerContainer.java b/spring-jms/src/main/java/org/springframework/jms/listener/SimpleMessageListenerContainer.java index c3f0f22e592..2a503cc7546 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/adapter/MessageListenerAdapter.java b/spring-jms/src/main/java/org/springframework/jms/listener/adapter/MessageListenerAdapter.java index 3aa313c9252..23ead10e33c 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/endpoint/DefaultJmsActivationSpecFactory.java b/spring-jms/src/main/java/org/springframework/jms/listener/endpoint/DefaultJmsActivationSpecFactory.java index 0f11609876a..c0e008f5601 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 954dd4982ee..1a86567d0a1 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 455714c25af..3586dffaad3 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 7263a4c9937..62ac11d7d22 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 dfc481c0e45..66c1d794902 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 1b4cce84d70..0bfe3407afa 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 38dbfe53cfc..8d5ba01cead 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 80023bc3d01..70b06ad0337 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/MappingJackson2MessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java index 6596d59ea5b..28418fd10be 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJackson2MessageConverter.java @@ -147,11 +147,13 @@ public class MappingJackson2MessageConverter implements MessageConverter, BeanCl } } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { Message message; try { @@ -173,6 +175,7 @@ public class MappingJackson2MessageConverter implements MessageConverter, BeanCl return message; } + @Override public Object fromMessage(Message message) throws JMSException, MessageConversionException { try { JavaType targetJavaType = getJavaTypeForMessage(message); diff --git a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java index 3cb471edfc6..56c80b09524 100644 --- a/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java +++ b/spring-jms/src/main/java/org/springframework/jms/support/converter/MappingJacksonMessageConverter.java @@ -147,11 +147,13 @@ public class MappingJacksonMessageConverter implements MessageConverter, BeanCla } } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public Message toMessage(Object object, Session session) throws JMSException, MessageConversionException { Message message; try { @@ -173,6 +175,7 @@ public class MappingJacksonMessageConverter implements MessageConverter, BeanCla 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 9378d21c472..9cdaaae3622 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 939bd0f2116..fd5e4be5a05 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/destination/BeanFactoryDestinationResolver.java b/spring-jms/src/main/java/org/springframework/jms/support/destination/BeanFactoryDestinationResolver.java index e3105c223d8..73591a51eb2 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 f3d39361f89..7f6450fffe5 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 b9bf560e8e1..5ed84764954 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 4801a5afbc7..7223e8d7da5 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 5871bb8a87e..e7086681294 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateTransactionManager.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/HibernateTransactionManager.java @@ -318,10 +318,12 @@ 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"); @@ -345,6 +347,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana } + @Override public Object getResourceFactory() { return getSessionFactory(); } @@ -738,6 +741,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 f2814150087..b36d067234d 100644 --- a/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/LocalSessionFactoryBean.java +++ b/spring-orm-hibernate4/src/main/java/org/springframework/orm/hibernate4/LocalSessionFactoryBean.java @@ -269,11 +269,13 @@ public 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); @@ -386,19 +388,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 1a5c4bd678a..1dfd5aa8665 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 a831617d9c3..9f48f5f0102 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 8994255e755..4d82160eb7c 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 4475af596a8..2a53432f818 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 e445a51f154..41b1f28a2ae 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/FilterDefinitionFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/FilterDefinitionFactoryBean.java @@ -111,26 +111,31 @@ public 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 ddc08aed8be..fb0dc74444a 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 b302d15da20..ded5f70434b 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 a7faee60a09..91d5a4524f5 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 43765e5e235..205738d84ad 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,10 +798,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); @@ -765,10 +812,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); @@ -777,8 +826,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); @@ -787,8 +838,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); @@ -797,8 +850,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); @@ -807,8 +862,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); @@ -817,12 +874,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) { @@ -834,14 +894,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) { @@ -853,8 +916,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) { @@ -865,8 +930,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; @@ -874,8 +941,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; @@ -888,16 +957,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); @@ -911,12 +984,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 { @@ -924,6 +999,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); @@ -937,10 +1013,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); @@ -955,16 +1033,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); @@ -978,12 +1060,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 { @@ -992,6 +1076,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); @@ -1005,10 +1090,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); @@ -1023,15 +1110,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); @@ -1046,24 +1136,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())); @@ -1085,16 +1180,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); @@ -1108,6 +1207,7 @@ public class HibernateTemplate extends HibernateAccessor implements HibernateOpe }); } + @Override public void closeIterator(Iterator it) throws DataAccessException { try { Hibernate.close(it); @@ -1117,16 +1217,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); @@ -1249,6 +1353,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 90c9eb1d4ba..3e30dd8519b 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,6 +885,7 @@ public class HibernateTransactionManager extends AbstractPlatformTransactionMana } } + @Override public boolean isRollbackOnly() { return this.sessionHolder.isRollbackOnly() || (hasConnectionHolder() && getConnectionHolder().isRollbackOnly()); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalDataSourceConnectionProvider.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalDataSourceConnectionProvider.java index 43d4264ff8f..17c2312b1dd 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 02f4bca84c5..b23952bcc1b 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalRegionFactoryProxy.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalRegionFactoryProxy.java @@ -67,44 +67,53 @@ public 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(); } + @Override public AccessType getDefaultAccessType() { return this.regionFactory.getDefaultAccessType(); } + @Override public long nextTimestamp() { return this.regionFactory.nextTimestamp(); } + @Override public EntityRegion buildEntityRegion(String regionName, Properties properties, CacheDataDescription metadata) throws CacheException { return this.regionFactory.buildEntityRegion(regionName, properties, metadata); } + @Override public CollectionRegion buildCollectionRegion(String regionName, Properties properties, CacheDataDescription metadata) throws CacheException { return this.regionFactory.buildCollectionRegion(regionName, properties, metadata); } + @Override public QueryResultsRegion buildQueryResultsRegion(String regionName, Properties properties) throws CacheException { return this.regionFactory.buildQueryResultsRegion(regionName, properties); } + @Override public TimestampsRegion buildTimestampsRegion(String regionName, Properties properties) throws CacheException { diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalSessionFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalSessionFactoryBean.java index eb1fc0103e8..bc99406ff0c 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalSessionFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/LocalSessionFactoryBean.java @@ -506,6 +506,7 @@ public class LocalSessionFactoryBean extends AbstractSessionFactoryBean implemen this.schemaUpdate = schemaUpdate; } + @Override public void setBeanClassLoader(ClassLoader beanClassLoader) { this.beanClassLoader = beanClassLoader; } @@ -882,6 +883,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(); @@ -927,6 +929,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(); @@ -964,6 +967,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(); @@ -1001,6 +1005,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 2b46f7ef841..37781de5a06 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 0254d3cce58..0e33b324586 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 88b80e167f4..28acc3b604f 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 8fa1e940347..c0258c7a5fe 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 d478d6aa979..9b448402b05 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 469cd0327b3..9a281edc0fe 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate3/annotation/AnnotationSessionFactoryBean.java @@ -137,6 +137,7 @@ public 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 e30f1e1f1c3..58bea92d6a1 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 bdfaf07bd7d..a29ddc8068c 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 ddcf4f51085..3b560b94f38 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 3066382286d..5f00c63ba46 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 bef035c6f7e..97814b3fd74 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 692db0ba20d..9daf211d503 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/jdo/DefaultJdoDialect.java b/spring-orm/src/main/java/org/springframework/orm/jdo/DefaultJdoDialect.java index a7fd9651457..279b5aeb703 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/DefaultJdoDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/DefaultJdoDialect.java @@ -112,6 +112,7 @@ public 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 { @@ -155,6 +156,7 @@ public class DefaultJdoDialect implements JdoDialect, PersistenceExceptionTransl * does not require any cleanup. * @see #beginTransaction */ + @Override public void cleanupTransaction(Object transactionData) { } @@ -175,6 +177,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 { @@ -189,6 +192,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 { } @@ -206,6 +210,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); @@ -217,6 +222,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(), @@ -252,10 +258,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/JdoTransactionManager.java b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTransactionManager.java index 310319e3919..f2086038caf 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTransactionManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/JdoTransactionManager.java @@ -231,6 +231,7 @@ public 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"); @@ -255,6 +256,7 @@ public class JdoTransactionManager extends AbstractPlatformTransactionManager } + @Override public Object getResourceFactory() { return getPersistenceManagerFactory(); } @@ -570,11 +572,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 a4e2817adae..5010a81200a 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/LocalPersistenceManagerFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/LocalPersistenceManagerFactoryBean.java @@ -195,6 +195,7 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean getObjectType() { return (this.persistenceManagerFactory != null ? this.persistenceManagerFactory.getClass() : PersistenceManagerFactory.class); } + @Override public boolean isSingleton() { return true; } @@ -297,6 +302,7 @@ public class LocalPersistenceManagerFactoryBean implements FactoryBean getObjectType() { return PersistenceManagerFactory.class; } + @Override public boolean isSingleton() { return true; } @@ -136,6 +139,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... @@ -182,6 +186,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 acb7b247943..2f73c637d67 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/support/OpenPersistenceManagerInViewInterceptor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/support/OpenPersistenceManagerInViewInterceptor.java @@ -86,6 +86,7 @@ public 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. @@ -103,9 +104,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 ce529d1c10f..c4e03c11ccb 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jdo/support/SpringPersistenceManagerProxyBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jdo/support/SpringPersistenceManagerProxyBean.java @@ -141,6 +141,7 @@ public class SpringPersistenceManagerProxyBean implements FactoryBean getObjectType() { return getPersistenceManagerInterface(); } + @Override public boolean isSingleton() { return true; } @@ -174,6 +178,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 d7c8270a1c0..e1e41aedfeb 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/AbstractEntityManagerFactoryBean.java @@ -140,6 +140,7 @@ public abstract class AbstractEntityManagerFactoryBean implements this.persistenceProvider = persistenceProvider; } + @Override public PersistenceProvider getPersistenceProvider() { return this.persistenceProvider; } @@ -155,6 +156,7 @@ public abstract class AbstractEntityManagerFactoryBean implements this.persistenceUnitName = persistenceUnitName; } + @Override public String getPersistenceUnitName() { return this.persistenceUnitName; } @@ -221,6 +223,7 @@ public abstract class AbstractEntityManagerFactoryBean implements this.entityManagerInterface = emInterface; } + @Override public Class getEntityManagerInterface() { return this.entityManagerInterface; } @@ -236,6 +239,7 @@ public abstract class AbstractEntityManagerFactoryBean implements this.jpaDialect = jpaDialect; } + @Override public JpaDialect getJpaDialect() { return this.jpaDialect; } @@ -258,23 +262,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) { @@ -402,19 +411,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; } @@ -423,14 +436,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; } @@ -439,6 +455,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() + "'"); @@ -502,6 +519,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 1a8f6919152..39d0898ba30 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/DefaultJpaDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/DefaultJpaDialect.java @@ -55,6 +55,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { * @see org.springframework.transaction.InvalidIsolationLevelException * @see #cleanupTransaction */ + @Override public Object beginTransaction(EntityManager entityManager, TransactionDefinition definition) throws PersistenceException, SQLException, TransactionException { @@ -67,6 +68,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { return null; } + @Override public Object prepareTransaction(EntityManager entityManager, boolean readOnly, String name) throws PersistenceException { @@ -78,6 +80,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { * implementation does not require any cleanup. * @see #beginTransaction */ + @Override public void cleanupTransaction(Object transactionData) { } @@ -85,6 +88,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 { @@ -99,6 +103,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 { } @@ -112,6 +117,7 @@ public class DefaultJpaDialect implements JpaDialect, Serializable { * This implementation delegates to EntityManagerFactoryUtils. * @see EntityManagerFactoryUtils#convertJpaAccessExceptionIfPossible */ + @Override public DataAccessException translateExceptionIfPossible(RuntimeException ex) { return EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(ex); } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryAccessor.java b/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryAccessor.java index e5463d6d272..dba34467c9e 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryAccessor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryAccessor.java @@ -126,6 +126,7 @@ public 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 2257e000d1c..bb61641c769 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryUtils.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/EntityManagerFactoryUtils.java @@ -457,6 +457,7 @@ public abstract class EntityManagerFactoryUtils { this.newEntityManager = newEm; } + @Override public int getOrder() { return ENTITY_MANAGER_SYNCHRONIZATION_ORDER; } @@ -518,6 +519,7 @@ public abstract class EntityManagerFactoryUtils { super(emHolder, emf); } + @Override public int getOrder() { return ENTITY_MANAGER_SYNCHRONIZATION_ORDER + 1; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/ExtendedEntityManagerCreator.java b/spring-orm/src/main/java/org/springframework/orm/jpa/ExtendedEntityManagerCreator.java index 475fcd8ad3f..f7f24f147e5 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/ExtendedEntityManagerCreator.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/ExtendedEntityManagerCreator.java @@ -267,6 +267,7 @@ public abstract class ExtendedEntityManagerCreator { } } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on EntityManager interface coming in... @@ -418,6 +419,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/JpaTransactionManager.java b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTransactionManager.java index 237efcaca2b..49d2cea7cc5 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTransactionManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/JpaTransactionManager.java @@ -281,6 +281,7 @@ public 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)) { @@ -297,6 +298,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"); @@ -315,6 +317,7 @@ public class JpaTransactionManager extends AbstractPlatformTransactionManager } + @Override public Object getResourceFactory() { return getEntityManagerFactory(); } @@ -654,11 +657,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 3cb7c52ad26..a9c165c8c84 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/LocalContainerEntityManagerFactoryBean.java @@ -242,10 +242,12 @@ public 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 faa09855302..ad4e077e022 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/SharedEntityManagerCreator.java @@ -167,6 +167,7 @@ public abstract class SharedEntityManagerCreator { } } + @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // Invocation on EntityManager interface coming in... @@ -297,6 +298,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 b96413c5124..f75450d8c33 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 bdfd0304439..3a0fe03f282 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/DefaultPersistenceUnitManager.java @@ -317,6 +317,7 @@ public class DefaultPersistenceUnitManager * @see org.springframework.instrument.classloading.ReflectiveLoadTimeWeaver * @see org.springframework.instrument.classloading.tomcat.TomcatInstrumentableClassLoader */ + @Override public void setLoadTimeWeaver(LoadTimeWeaver loadTimeWeaver) { this.loadTimeWeaver = loadTimeWeaver; } @@ -329,11 +330,13 @@ public 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()); @@ -524,6 +527,7 @@ public class DefaultPersistenceUnitManager } + @Override public PersistenceUnitInfo obtainDefaultPersistenceUnitInfo() { if (this.persistenceUnitInfoNames.isEmpty()) { throw new IllegalStateException("No persistence units parsed from " + @@ -541,6 +545,7 @@ public class DefaultPersistenceUnitManager return pui; } + @Override public PersistenceUnitInfo obtainPersistenceUnitInfo(String persistenceUnitName) { PersistenceUnitInfo pui = this.persistenceUnitInfos.remove(persistenceUnitName); if (pui == null) { diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java index 2b75c78e7b8..96dff70d3e3 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/persistenceunit/MutablePersistenceUnitInfo.java @@ -78,6 +78,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.persistenceUnitName = persistenceUnitName; } + @Override public String getPersistenceUnitName() { return this.persistenceUnitName; } @@ -86,6 +87,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.persistenceProviderClassName = persistenceProviderClassName; } + @Override public String getPersistenceProviderClassName() { return this.persistenceProviderClassName; } @@ -94,6 +96,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.transactionType = transactionType; } + @Override public PersistenceUnitTransactionType getTransactionType() { if (this.transactionType != null) { return this.transactionType; @@ -108,6 +111,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.jtaDataSource = jtaDataSource; } + @Override public DataSource getJtaDataSource() { return this.jtaDataSource; } @@ -116,6 +120,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.nonJtaDataSource = nonJtaDataSource; } + @Override public DataSource getNonJtaDataSource() { return this.nonJtaDataSource; } @@ -124,6 +129,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.mappingFileNames.add(mappingFileName); } + @Override public List getMappingFileNames() { return this.mappingFileNames; } @@ -132,6 +138,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.jarFileUrls.add(jarFileUrl); } + @Override public List getJarFileUrls() { return this.jarFileUrls; } @@ -140,6 +147,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.persistenceUnitRootUrl = persistenceUnitRootUrl; } + @Override public URL getPersistenceUnitRootUrl() { return this.persistenceUnitRootUrl; } @@ -148,6 +156,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.managedClassNames.add(managedClassName); } + @Override public List getManagedClassNames() { return this.managedClassNames; } @@ -156,6 +165,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.excludeUnlistedClasses = excludeUnlistedClasses; } + @Override public boolean excludeUnlistedClasses() { return this.excludeUnlistedClasses; } @@ -164,6 +174,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.sharedCacheMode = sharedCacheMode; } + @Override public SharedCacheMode getSharedCacheMode() { return this.sharedCacheMode; } @@ -172,6 +183,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.validationMode = validationMode; } + @Override public ValidationMode getValidationMode() { return this.validationMode; } @@ -187,6 +199,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.properties = properties; } + @Override public Properties getProperties() { return this.properties; } @@ -195,10 +208,12 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { this.persistenceXMLSchemaVersion = persistenceXMLSchemaVersion; } + @Override public String getPersistenceXMLSchemaVersion() { return this.persistenceXMLSchemaVersion; } + @Override public void setPersistenceProviderPackageName(String persistenceProviderPackageName) { this.persistenceProviderPackageName = persistenceProviderPackageName; } @@ -212,6 +227,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(); } @@ -219,6 +235,7 @@ public class MutablePersistenceUnitInfo implements SmartPersistenceUnitInfo { /** * This implementation throws an UnsupportedOperationException. */ + @Override public void addTransformer(ClassTransformer classTransformer) { throw new UnsupportedOperationException("addTransformer not supported"); } @@ -226,6 +243,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 9b0cd70969a..fdebb8c8c86 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/support/OpenEntityManagerInViewInterceptor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/support/OpenEntityManagerInViewInterceptor.java @@ -68,6 +68,7 @@ public class OpenEntityManagerInViewInterceptor extends EntityManagerFactoryAcce public static final String PARTICIPATE_SUFFIX = ".PARTICIPATE"; + @Override public void preHandle(WebRequest request) throws DataAccessException { String participateAttributeName = getParticipateAttributeName(); @@ -101,9 +102,11 @@ public 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) @@ -129,6 +132,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 97a412ede3d..7c07c760774 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.java @@ -312,10 +312,12 @@ public 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; @@ -323,6 +325,7 @@ public class PersistenceAnnotationBeanPostProcessor } + @Override public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class beanType, String beanName) { if (beanType != null) { InjectionMetadata metadata = findPersistenceMetadata(beanType); @@ -330,14 +333,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 { @@ -351,14 +357,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 0b6e3a5d59c..f392734cd39 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/support/SharedEntityManagerBean.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/support/SharedEntityManagerBean.java @@ -81,6 +81,7 @@ public 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 18499e412d4..99041f2dc9b 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 a977c087397..907e9dbbe11 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/EclipseLinkJpaVendorAdapter.java @@ -48,6 +48,7 @@ public class EclipseLinkJpaVendorAdapter extends AbstractJpaVendorAdapter { private final JpaDialect jpaDialect = new EclipseLinkJpaDialect(); + @Override public PersistenceProvider getPersistenceProvider() { return this.persistenceProvider; } diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java index 83a931549e9..037da1f4ce9 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaDialect.java @@ -143,6 +143,7 @@ public class HibernateJpaDialect extends DefaultJpaDialect { this.session = session; } + @Override public Connection getConnection() { try { if (connectionMethodToUse == null) { @@ -156,6 +157,7 @@ public class HibernateJpaDialect extends DefaultJpaDialect { } } + @Override public void releaseConnection(Connection con) { if (sessionConnectionMethod != null) { // Need to explicitly call close() with Hibernate 3.x in order to allow diff --git a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaSessionFactoryBean.java b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/HibernateJpaSessionFactoryBean.java index 065cf759a77..511cd91c586 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 b3eec049125..e1367d39307 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 c7a02586491..6cdebfe1417 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 abadbf8b297..39592480f5e 100644 --- a/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java +++ b/spring-orm/src/main/java/org/springframework/orm/jpa/vendor/OpenJpaVendorAdapter.java @@ -48,6 +48,7 @@ public class OpenJpaVendorAdapter extends AbstractJpaVendorAdapter { private final OpenJpaDialect jpaDialect = new OpenJpaDialect(); + @Override public PersistenceProvider getPersistenceProvider() { return this.persistenceProvider; } diff --git a/spring-oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java index 131b782c876..ab78c0bd227 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/castor/CastorMarshaller.java @@ -430,11 +430,13 @@ public class CastorMarshaller extends AbstractMarshaller implements Initializing this.objectFactory = objectFactory; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void afterPropertiesSet() throws CastorMappingException, IOException { try { this.xmlContext = createXMLContext(this.mappingLocations, this.targetClasses, this.targetPackages); @@ -485,6 +487,7 @@ 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 19bf683caeb..c11bc0bdd58 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 104e4f3d9bd..018a1bbf301 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/jaxb/Jaxb2Marshaller.java @@ -385,11 +385,13 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi this.mappedClass = mappedClass; } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.beanClassLoader = classLoader; } + @Override public void afterPropertiesSet() throws Exception { boolean hasContextPath = StringUtils.hasLength(this.contextPath); boolean hasClassesToBeBound = !ObjectUtils.isEmpty(this.classesToBeBound); @@ -520,11 +522,13 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi } + @Override public boolean supports(Class clazz) { return ((this.supportJaxbElementClass && JAXBElement.class.isAssignableFrom(clazz)) || supportsInternal(clazz, this.checkForXmlRootElement)); } + @Override public boolean supports(Type genericType) { if (genericType instanceof ParameterizedType) { ParameterizedType parameterizedType = (ParameterizedType) genericType; @@ -614,10 +618,12 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi // Marshalling + @Override public void marshal(Object graph, Result result) throws XmlMappingException { marshal(graph, result, null); } + @Override public void marshal(Object graph, Result result, MimeContainer mimeContainer) throws XmlMappingException { try { Marshaller marshaller = createMarshaller(); @@ -699,10 +705,12 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi // Unmarshalling + @Override public Object unmarshal(Source source) throws XmlMappingException { return unmarshal(source, null); } + @Override public Object unmarshal(Source source, MimeContainer mimeContainer) throws XmlMappingException { try { Unmarshaller unmarshaller = createUnmarshaller(); @@ -927,18 +935,22 @@ public class Jaxb2Marshaller implements MimeMarshaller, MimeUnmarshaller, Generi 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 2ded691c8ba..b374b52f094 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 cf584efa88e..d42cb72a49f 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 7fbe4b4745c..24e239c7335 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 991d2626456..83a46393630 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 d5d668bac68..ca092b21723 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 dd36d17b8bf..65fa78a6ee9 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/xstream/XStreamMarshaller.java @@ -352,11 +352,13 @@ public 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(this.xstream); } @@ -370,6 +372,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-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 914f949d0c5..bad3d490907 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 2ec08718016..416f8f3a5ef 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 a0553cfd8d6..aa923c7b66a 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 1bcb49a5b99..7b34dd11506 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); @@ -86,6 +87,7 @@ public class ContentRequestMatchers { */ public RequestMatcher contentTypeCompatibleWith(final MediaType contentType) { return new RequestMatcher() { + @Override public void match(ClientHttpRequest request) throws IOException, AssertionError { MediaType actualContentType = request.getHeaders().getContentType(); assertTrue("Content type not set", actualContentType != null); @@ -100,6 +102,7 @@ public 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); @@ -112,6 +115,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()); @@ -124,6 +128,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()); @@ -180,6 +185,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 d4da756185e..14be640a32e 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 ce3c7fb80d2..4f7df087909 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 9c3ac04c417..f983235be9b 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 7518f14f64a..3f2be1ae4cf 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 117a95c2bf1..e9951189be7 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 a163c967215..15020df3a08 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 8c57fae2475..96389241c02 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 e6d97658c7a..753d63db5b2 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 26afc30c9bf..3a7d0169801 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockHttpServletRequestBuilder.java @@ -426,6 +426,7 @@ public class MockHttpServletRequestBuilder implements RequestBuilder, Mergeable * {@inheritDoc} * @return always returns {@code true}. */ + @Override public boolean isMergeEnabled() { return true; } @@ -437,6 +438,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; @@ -540,6 +542,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 409359c2c7a..d2076898bb6 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.java @@ -135,6 +135,7 @@ public 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 ec4fafd59aa..40ee42250f5 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,30 +76,37 @@ class Servlet3MockHttpServletRequest extends MockHttpServletRequest { this.asyncContext = asyncContext; } + @Override public DispatcherType getDispatcherType() { return DispatcherType.REQUEST; } + @Override public boolean isAsyncStarted() { return this.asyncStarted; } + @Override public void setAsyncStarted(boolean asyncStarted) { this.asyncStarted = asyncStarted; } + @Override public void addPart(Part part) { this.parts.put(part.getName(), part); } + @Override public Part getPart(String key) throws IOException, IllegalStateException, ServletException { return this.parts.get(key); } + @Override public Collection getParts() throws IOException, IllegalStateException, ServletException { return this.parts.values(); } + @Override public boolean authenticate(HttpServletResponse response) throws IOException, ServletException { throw new UnsupportedOperationException(); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockMultipartHttpServletRequest.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockMultipartHttpServletRequest.java index ef27070151e..2133831d2b3 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockMultipartHttpServletRequest.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/request/Servlet3MockMultipartHttpServletRequest.java @@ -45,20 +45,24 @@ class Servlet3MockMultipartHttpServletRequest extends MockMultipartHttpServletRe private Map parts = new HashMap(); + @Override public boolean isAsyncSupported() { return true; } + @Override public AsyncContext startAsync() { return startAsync(this, null); } + @Override public AsyncContext startAsync(ServletRequest request, ServletResponse response) { this.asyncStarted = true; this.asyncContext = new MockAsyncContext(request, response); return this.asyncContext; } + @Override public AsyncContext getAsyncContext() { return this.asyncContext; } @@ -67,30 +71,37 @@ class Servlet3MockMultipartHttpServletRequest extends MockMultipartHttpServletRe this.asyncContext = asyncContext; } + @Override public DispatcherType getDispatcherType() { return DispatcherType.REQUEST; } + @Override public boolean isAsyncStarted() { return this.asyncStarted; } + @Override public void setAsyncStarted(boolean asyncStarted) { this.asyncStarted = asyncStarted; } + @Override public void addPart(Part part) { this.parts.put(part.getName(), part); } + @Override public Part getPart(String key) throws IOException, IllegalStateException, ServletException { return this.parts.get(key); } + @Override public Collection getParts() throws IOException, IllegalStateException, ServletException { return this.parts.values(); } + @Override public boolean authenticate(HttpServletResponse response) throws IOException, ServletException { throw new UnsupportedOperationException(); } diff --git a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java index 3368ffbedde..c63209f5511 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java @@ -70,6 +70,7 @@ public 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); @@ -92,6 +93,7 @@ public class ContentResultMatchers { */ public ResultMatcher contentTypeCompatibleWith(final MediaType contentType) { return new ResultMatcher() { + @Override public void match(MvcResult result) throws Exception { String actual = result.getResponse().getContentType(); assertTrue("Content type not set", actual != null); @@ -108,6 +110,7 @@ public 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); @@ -124,6 +127,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); } @@ -135,6 +139,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()); } @@ -146,6 +151,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()); } @@ -166,6 +172,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); @@ -179,6 +186,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); @@ -194,6 +202,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 338777882a9..967a361c20c 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 a2747bb102d..1e3b5106ea3 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 public void match(MvcResult result) throws Exception { assertEquals("Flash attribute", value, result.getFlashMap().get(name)); } @@ -68,6 +70,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); @@ -81,6 +84,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 bcd5ea75ae8..502199fbd59 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 5acee2dbd78..5e0f5b2a1d5 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 0d68d365ac7..17e98038086 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 cb491c95376..cfe96ca5183 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 fb34c36ffd5..15497195981 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 6ec1d9346b7..012812f74c6 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 1a5f07f6e9d..3796841d6ab 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 15990939ee0..cf929d5efe0 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 88c4083b6cb..b8549bca3be 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 f2f5217dfaa..c665d7a1d01 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 5e7a75368e0..36cdf5fc869 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 7e8b7afd635..9cb798d8f29 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/DefaultMockMvcBuilder.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/DefaultMockMvcBuilder.java @@ -195,6 +195,7 @@ public class DefaultMockMvcBuilder extends M /** * 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 b582b3b68cc..29e2845be31 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 079a42fc012..9fa7e1b26fc 100644 --- a/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StandaloneMockMvcBuilder.java +++ b/spring-test-mvc/src/main/java/org/springframework/test/web/servlet/setup/StandaloneMockMvcBuilder.java @@ -274,6 +274,7 @@ public 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); } @@ -183,42 +201,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); } @@ -227,10 +254,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); } @@ -239,14 +268,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); } @@ -255,10 +287,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); } @@ -267,9 +301,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); } @@ -282,6 +318,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); @@ -289,53 +326,65 @@ class StubWebApplicationContext implements WebApplicationContext { return existingBean; } + @Override public T createBean(Class beanClass) { throw new UnsupportedOperationException(); } + @Override @SuppressWarnings("rawtypes") public Object createBean(Class beanClass, int autowireMode, boolean dependencyCheck) { throw new UnsupportedOperationException(); } + @Override @SuppressWarnings("rawtypes") public Object autowire(Class beanClass, int autowireMode, boolean dependencyCheck) { throw new UnsupportedOperationException(); } + @Override public void autowireBean(Object existingBean) throws BeansException { throw new UnsupportedOperationException(); } + @Override public void autowireBeanProperties(Object existingBean, int autowireMode, boolean dependencyCheck) { throw new UnsupportedOperationException(); } + @Override public Object configureBean(Object existingBean, String beanName) { throw new UnsupportedOperationException(); } + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName) { throw new UnsupportedOperationException(); } + @Override public Object resolveDependency(DependencyDescriptor descriptor, String beanName, Set autowiredBeanNames, TypeConverter typeConverter) { throw new UnsupportedOperationException(); } + @Override public void applyBeanPropertyValues(Object existingBean, String beanName) throws BeansException { throw new UnsupportedOperationException(); } + @Override public Object applyBeanPostProcessorsBeforeInitialization(Object existingBean, String beanName) { throw new UnsupportedOperationException(); } + @Override public Object applyBeanPostProcessorsAfterInitialization(Object existingBean, String beanName) { throw new UnsupportedOperationException(); } + @Override public void destroyBean(Object existingBean) { throw new UnsupportedOperationException(); } diff --git a/spring-test-mvc/src/test/java/org/springframework/test/web/servlet/DefaultMvcResultTests.java b/spring-test-mvc/src/test/java/org/springframework/test/web/servlet/DefaultMvcResultTests.java index b0488791f9f..c06329b35ab 100644 --- a/spring-test-mvc/src/test/java/org/springframework/test/web/servlet/DefaultMvcResultTests.java +++ b/spring-test-mvc/src/test/java/org/springframework/test/web/servlet/DefaultMvcResultTests.java @@ -97,6 +97,7 @@ public class DefaultMvcResultTests { given(this.asyncContext.getTimeout()).willReturn(new Long(DEFAULT_TIMEOUT)); } + @Override public void setAsyncStarted(boolean asyncStarted) { this.asyncStarted = asyncStarted; } diff --git a/spring-test/src/main/java/org/springframework/mock/http/MockHttpInputMessage.java b/spring-test/src/main/java/org/springframework/mock/http/MockHttpInputMessage.java index d73a1ea0ef5..0ee6d4d8194 100644 --- a/spring-test/src/main/java/org/springframework/mock/http/MockHttpInputMessage.java +++ b/spring-test/src/main/java/org/springframework/mock/http/MockHttpInputMessage.java @@ -48,10 +48,12 @@ public 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 8cda7862a54..df2995a6ea5 100644 --- a/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java +++ b/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java @@ -44,6 +44,7 @@ public class MockHttpOutputMessage implements HttpOutputMessage { /** * Return the headers. */ + @Override public HttpHeaders getHeaders() { return this.headers; } @@ -51,6 +52,7 @@ public 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 0f46bbbcf32..c6896d277ce 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 9ed40774f1e..64b229e558f 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 b19aaf5c543..7bffe4de135 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 d35fbdc8657..4e1641b2cd8 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 5d2f70d5198..2e242c61fd6 100644 --- a/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContextBuilder.java +++ b/spring-test/src/main/java/org/springframework/mock/jndi/SimpleNamingContextBuilder.java @@ -191,6 +191,7 @@ public 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); @@ -224,6 +225,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 f97e60e2ebb..1b8cf3eeba6 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 23694170305..d580974a608 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/MockAsyncContext.java b/spring-test/src/main/java/org/springframework/mock/web/MockAsyncContext.java index 98207aa3459..d53e97505d1 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockAsyncContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockAsyncContext.java @@ -56,26 +56,32 @@ public class MockAsyncContext implements AsyncContext { } + @Override public ServletRequest getRequest() { return this.request; } + @Override public ServletResponse getResponse() { return this.response; } + @Override public boolean hasOriginalRequestAndResponse() { return (this.request instanceof MockHttpServletRequest) && (this.response instanceof MockHttpServletResponse); } + @Override public void dispatch() { dispatch(this.request.getRequestURI()); } + @Override public void dispatch(String path) { dispatch(null, path); } + @Override public void dispatch(ServletContext context, String path) { this.dispatchedPath = path; } @@ -84,6 +90,7 @@ public class MockAsyncContext implements AsyncContext { return this.dispatchedPath; } + @Override public void complete() { MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class); if (mockRequest != null) { @@ -99,14 +106,17 @@ public class MockAsyncContext implements AsyncContext { } } + @Override public void start(Runnable runnable) { runnable.run(); } + @Override public void addListener(AsyncListener listener) { this.listeners.add(listener); } + @Override public void addListener(AsyncListener listener, ServletRequest request, ServletResponse response) { this.listeners.add(listener); } @@ -115,14 +125,17 @@ public class MockAsyncContext implements AsyncContext { return this.listeners; } + @Override public T createListener(Class clazz) throws ServletException { return BeanUtils.instantiateClass(clazz); } + @Override public void setTimeout(long timeout) { this.timeout = timeout; } + @Override public long getTimeout() { return this.timeout; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockBodyContent.java b/spring-test/src/main/java/org/springframework/mock/web/MockBodyContent.java index 0e6449bcb05..3b98e2edb5f 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 6b69fdb7048..f1c08e27747 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 a80a2fb454a..503c51f9018 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 49e5beb45a7..99e7722f335 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 ff62c47fe8d..533d52064ac 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletRequest.java @@ -262,6 +262,7 @@ public class MockHttpServletRequest implements HttpServletRequest { * Return the ServletContext that this request is associated with. (Not * available in the standard HttpServletRequest interface for some reason.) */ + @Override public ServletContext getServletContext() { return this.servletContext; } @@ -303,20 +304,24 @@ 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(new LinkedHashSet(this.attributes.keySet())); } + @Override public String getCharacterEncoding() { return this.characterEncoding; } + @Override public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; updateContentTypeHeader(); @@ -336,6 +341,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.content = content; } + @Override public int getContentLength() { return (this.content != null ? this.content.length : -1); } @@ -352,10 +358,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)); @@ -477,19 +485,23 @@ public class MockHttpServletRequest implements HttpServletRequest { this.parameters.clear(); } + @Override public String getParameter(String name) { String[] arr = (name != null ? this.parameters.get(name) : null); return (arr != null && arr.length > 0 ? arr[0] : null); } + @Override public Enumeration getParameterNames() { return Collections.enumeration(this.parameters.keySet()); } + @Override public String[] getParameterValues(String name) { return (name != null ? this.parameters.get(name) : null); } + @Override public Map getParameterMap() { return Collections.unmodifiableMap(this.parameters); } @@ -498,6 +510,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.protocol = protocol; } + @Override public String getProtocol() { return this.protocol; } @@ -506,6 +519,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.scheme = scheme; } + @Override public String getScheme() { return this.scheme; } @@ -514,6 +528,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.serverName = serverName; } + @Override public String getServerName() { return this.serverName; } @@ -522,10 +537,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); @@ -542,6 +559,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.remoteAddr = remoteAddr; } + @Override public String getRemoteAddr() { return this.remoteAddr; } @@ -550,10 +568,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"); @@ -565,6 +585,7 @@ public class MockHttpServletRequest implements HttpServletRequest { } } + @Override public void removeAttribute(String name) { checkActive(); Assert.notNull(name, "Attribute name must not be null"); @@ -599,10 +620,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); } @@ -611,14 +634,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); } @@ -627,6 +653,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.remotePort = remotePort; } + @Override public int getRemotePort() { return this.remotePort; } @@ -635,6 +662,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.localName = localName; } + @Override public String getLocalName() { return this.localName; } @@ -643,6 +671,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.localAddr = localAddr; } + @Override public String getLocalAddr() { return this.localAddr; } @@ -651,14 +680,17 @@ public class MockHttpServletRequest implements HttpServletRequest { this.localPort = localPort; } + @Override public int getLocalPort() { return this.localPort; } + @Override public AsyncContext startAsync() { return startAsync(this, null); } + @Override public AsyncContext startAsync(ServletRequest request, ServletResponse response) { if (!this.asyncSupported) { throw new IllegalStateException("Async not supported"); @@ -672,6 +704,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.asyncStarted = asyncStarted; } + @Override public boolean isAsyncStarted() { return this.asyncStarted; } @@ -680,6 +713,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.asyncSupported = asyncSupported; } + @Override public boolean isAsyncSupported() { return this.asyncSupported; } @@ -688,6 +722,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.asyncContext = asyncContext; } + @Override public AsyncContext getAsyncContext() { return this.asyncContext; } @@ -696,6 +731,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.dispatcherType = dispatcherType; } + @Override public DispatcherType getDispatcherType() { return this.dispatcherType; } @@ -709,6 +745,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.authType = authType; } + @Override public String getAuthType() { return this.authType; } @@ -717,6 +754,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.cookies = cookies; } + @Override public Cookie[] getCookies() { return this.cookies; } @@ -765,6 +803,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); @@ -783,20 +822,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); @@ -818,6 +861,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.method = method; } + @Override public String getMethod() { return this.method; } @@ -826,10 +870,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); } @@ -838,6 +884,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.contextPath = contextPath; } + @Override public String getContextPath() { return this.contextPath; } @@ -846,6 +893,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.queryString = queryString; } + @Override public String getQueryString() { return this.queryString; } @@ -854,6 +902,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.remoteUser = remoteUser; } + @Override public String getRemoteUser() { return this.remoteUser; } @@ -862,6 +911,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))); @@ -871,6 +921,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.userPrincipal = userPrincipal; } + @Override public Principal getUserPrincipal() { return this.userPrincipal; } @@ -879,6 +930,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.requestedSessionId = requestedSessionId; } + @Override public String getRequestedSessionId() { return this.requestedSessionId; } @@ -887,10 +939,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); @@ -902,6 +956,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.servletPath = servletPath; } + @Override public String getServletPath() { return this.servletPath; } @@ -914,6 +969,7 @@ public class MockHttpServletRequest implements HttpServletRequest { } } + @Override public HttpSession getSession(boolean create) { checkActive(); // Reset session if invalidated. @@ -927,6 +983,7 @@ public class MockHttpServletRequest implements HttpServletRequest { return this.session; } + @Override public HttpSession getSession() { return getSession(true); } @@ -935,6 +992,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.requestedSessionIdValid = requestedSessionIdValid; } + @Override public boolean isRequestedSessionIdValid() { return this.requestedSessionIdValid; } @@ -943,6 +1001,7 @@ public class MockHttpServletRequest implements HttpServletRequest { this.requestedSessionIdFromCookie = requestedSessionIdFromCookie; } + @Override public boolean isRequestedSessionIdFromCookie() { return this.requestedSessionIdFromCookie; } @@ -951,22 +1010,27 @@ public class MockHttpServletRequest implements HttpServletRequest { this.requestedSessionIdFromURL = requestedSessionIdFromURL; } + @Override public boolean isRequestedSessionIdFromURL() { return this.requestedSessionIdFromURL; } + @Override public boolean isRequestedSessionIdFromUrl() { return isRequestedSessionIdFromURL(); } + @Override public boolean authenticate(HttpServletResponse response) throws IOException, ServletException { throw new UnsupportedOperationException(); } + @Override public void login(String username, String password) throws ServletException { throw new UnsupportedOperationException(); } + @Override public void logout() throws ServletException { this.userPrincipal = null; this.remoteUser = null; @@ -977,10 +1041,12 @@ public class MockHttpServletRequest implements HttpServletRequest { this.parts.put(part.getName(), part); } + @Override public Part getPart(String name) throws IOException, IllegalStateException, ServletException { return this.parts.get(name); } + @Override public Collection getParts() throws IOException, IllegalStateException, ServletException { return this.parts.values(); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java index 84c85045d06..adae753c679 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpServletResponse.java @@ -138,6 +138,7 @@ public class MockHttpServletResponse implements HttpServletResponse { return this.writerAccessAllowed; } + @Override public void setCharacterEncoding(String characterEncoding) { this.characterEncoding = characterEncoding; this.charset = true; @@ -154,10 +155,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"); @@ -165,6 +168,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"); @@ -188,6 +192,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); @@ -206,6 +211,7 @@ public class MockHttpServletResponse implements HttpServletResponse { return this.contentLength; } + @Override public void setContentType(String contentType) { this.contentType = contentType; if (contentType != null) { @@ -219,22 +225,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"); @@ -253,10 +264,12 @@ public class MockHttpServletResponse implements HttpServletResponse { this.committed = committed; } + @Override public boolean isCommitted() { return this.committed; } + @Override public void reset() { resetBuffer(); this.characterEncoding = null; @@ -269,10 +282,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; } @@ -282,6 +297,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); @@ -301,6 +317,7 @@ public class MockHttpServletResponse implements HttpServletResponse { return null; } + @Override public boolean containsHeader(String name) { return (HeaderValueHolder.getByName(this.headers, name) != null); } @@ -310,6 +327,7 @@ public class MockHttpServletResponse implements HttpServletResponse { *

As of Servlet 3.0, this method is also defined HttpServletResponse. * @return the {@code Set} of header name {@code Strings}, or an empty {@code Set} if none */ + @Override public Collection getHeaderNames() { return this.headers.keySet(); } @@ -323,6 +341,7 @@ public class MockHttpServletResponse implements HttpServletResponse { * @param name the name of the header * @return the associated header value, or {@code null} if none */ + @Override public String getHeader(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); return (header != null ? header.getStringValue() : null); @@ -336,6 +355,7 @@ public class MockHttpServletResponse implements HttpServletResponse { * @param name the name of the header * @return the associated header values, or an empty List if none */ + @Override public List getHeaders(String name) { HeaderValueHolder header = HeaderValueHolder.getByName(this.headers, name); if (header != null) { @@ -376,6 +396,7 @@ public 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; } @@ -388,18 +409,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"); @@ -409,6 +434,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"); @@ -417,6 +443,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"); @@ -431,26 +458,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); } @@ -498,15 +531,18 @@ 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; } + @Override public int getStatus() { return this.status; } @@ -564,12 +600,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); @@ -587,24 +625,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 548c2016d15..5daf16d36e0 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockHttpSession.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockHttpSession.java @@ -100,10 +100,12 @@ public 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; } @@ -113,43 +115,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(new LinkedHashSet(this.attributes.keySet())); } + @Override public String[] getValueNames() { return this.attributes.keySet().toArray(new String[this.attributes.size()]); } + @Override public void setAttribute(String name, Object value) { Assert.notNull(name, "Attribute name must not be null"); if (value != null) { @@ -163,10 +175,12 @@ public 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); @@ -175,6 +189,7 @@ public class MockHttpSession implements HttpSession { } } + @Override public void removeValue(String name) { removeAttribute(name); } @@ -199,6 +214,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"); @@ -217,6 +233,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 0dfb31b007d..9fc585e59af 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 c68ee18ce71..91eb319f351 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 0ffaeb655fe..01abe7665fd 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockMultipartHttpServletRequest.java @@ -82,14 +82,17 @@ public 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) { @@ -100,14 +103,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) { @@ -118,10 +124,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(); @@ -132,6 +140,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 eefae930348..122d38bea59 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockPageContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockPageContext.java @@ -127,6 +127,7 @@ public class MockPageContext extends PageContext { } + @Override public void initialize( Servlet servlet, ServletRequest request, ServletResponse response, String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush) { @@ -134,9 +135,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) { @@ -147,6 +150,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) { @@ -167,11 +171,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) { @@ -189,6 +195,7 @@ public class MockPageContext extends PageContext { } } + @Override public Object findAttribute(String name) { Object value = getAttribute(name); if (value == null) { @@ -203,6 +210,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); @@ -211,6 +219,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) { @@ -231,6 +240,7 @@ public class MockPageContext extends PageContext { } } + @Override public int getAttributesScope(String name) { if (getAttribute(name) != null) { return PAGE_SCOPE; @@ -253,6 +263,7 @@ public class MockPageContext extends PageContext { return Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); } + @Override public Enumeration getAttributeNamesInScope(int scope) { switch (scope) { case PAGE_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 88660bb3aed..e43172c1982 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 90e9dea3b6f..be7ebf808e5 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 58cb335b3f4..1ab7a63e5ce 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockServletContext.java @@ -215,6 +215,7 @@ public class MockServletContext implements ServletContext { this.contextPath = (contextPath != null ? contextPath : ""); } + @Override public String getContextPath() { return this.contextPath; } @@ -223,6 +224,7 @@ public class MockServletContext implements ServletContext { this.contexts.put(contextPath, context); } + @Override public ServletContext getContext(String contextPath) { if (this.contextPath.equals(contextPath)) { return this; @@ -234,6 +236,7 @@ public class MockServletContext implements ServletContext { this.majorVersion = majorVersion; } + @Override public int getMajorVersion() { return this.majorVersion; } @@ -242,6 +245,7 @@ public class MockServletContext implements ServletContext { this.minorVersion = minorVersion; } + @Override public int getMinorVersion() { return this.minorVersion; } @@ -250,6 +254,7 @@ public class MockServletContext implements ServletContext { this.effectiveMajorVersion = effectiveMajorVersion; } + @Override public int getEffectiveMajorVersion() { return this.effectiveMajorVersion; } @@ -258,6 +263,7 @@ public class MockServletContext implements ServletContext { this.effectiveMinorVersion = effectiveMinorVersion; } + @Override public int getEffectiveMinorVersion() { return this.effectiveMinorVersion; } @@ -268,11 +274,13 @@ public class MockServletContext implements ServletContext { * the {@link ServletContext#getMimeType(String)} contract, this method returns {@code null} * if the mimeType is "application/octet-stream", as of Spring 3.2.2. */ + @Override public String getMimeType(String filePath) { String mimeType = MimeTypeResolver.getMimeType(filePath); return ("application/octet-stream".equals(mimeType) ? null : mimeType); } + @Override public Set getResourcePaths(String path) { String actualPath = (path.endsWith("/") ? path : path + "/"); Resource resource = this.resourceLoader.getResource(getResourceLocation(actualPath)); @@ -298,6 +306,7 @@ public class MockServletContext implements ServletContext { } } + @Override public URL getResource(String path) throws MalformedURLException { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); if (!resource.exists()) { @@ -315,6 +324,7 @@ public class MockServletContext implements ServletContext { } } + @Override public InputStream getResourceAsStream(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); if (!resource.exists()) { @@ -329,6 +339,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 '/'"); @@ -336,6 +347,7 @@ public class MockServletContext implements ServletContext { return new MockRequestDispatcher(path); } + @Override public RequestDispatcher getNamedDispatcher(String path) { return this.namedRequestDispatchers.get(path); } @@ -393,30 +405,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 { @@ -428,19 +447,23 @@ 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()); } + @Override public boolean setInitParameter(String name, String value) { Assert.notNull(name, "Parameter name must not be null"); if (this.initParameters.containsKey(name)) { @@ -455,15 +478,18 @@ public 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(new LinkedHashSet(this.attributes.keySet())); } + @Override public void setAttribute(String name, Object value) { Assert.notNull(name, "Attribute name must not be null"); if (value != null) { @@ -474,6 +500,7 @@ public class MockServletContext implements ServletContext { } } + @Override public void removeAttribute(String name) { Assert.notNull(name, "Attribute name must not be null"); this.attributes.remove(name); @@ -483,14 +510,17 @@ public class MockServletContext implements ServletContext { this.servletContextName = servletContextName; } + @Override public String getServletContextName() { return this.servletContextName; } + @Override public ClassLoader getClassLoader() { return ClassUtils.getDefaultClassLoader(); } + @Override public void declareRoles(String... roleNames) { Assert.notNull(roleNames, "Role names array must not be null"); for (String roleName : roleNames) { @@ -503,20 +533,24 @@ public class MockServletContext implements ServletContext { return Collections.unmodifiableSet(this.declaredRoles); } + @Override public void setSessionTrackingModes(Set sessionTrackingModes) throws IllegalStateException, IllegalArgumentException { this.sessionTrackingModes = sessionTrackingModes; } + @Override public Set getDefaultSessionTrackingModes() { return DEFAULT_SESSION_TRACKING_MODES; } + @Override public Set getEffectiveSessionTrackingModes() { return (this.sessionTrackingModes != null ? Collections.unmodifiableSet(this.sessionTrackingModes) : DEFAULT_SESSION_TRACKING_MODES); } + @Override public SessionCookieConfig getSessionCookieConfig() { return this.sessionCookieConfig; } @@ -526,70 +560,87 @@ public class MockServletContext implements ServletContext { // Unsupported Servlet 3.0 registration methods //--------------------------------------------------------------------- + @Override public JspConfigDescriptor getJspConfigDescriptor() { throw new UnsupportedOperationException(); } + @Override public ServletRegistration.Dynamic addServlet(String servletName, String className) { throw new UnsupportedOperationException(); } + @Override public ServletRegistration.Dynamic addServlet(String servletName, Servlet servlet) { throw new UnsupportedOperationException(); } + @Override public ServletRegistration.Dynamic addServlet(String servletName, Class servletClass) { throw new UnsupportedOperationException(); } + @Override public T createServlet(Class c) throws ServletException { throw new UnsupportedOperationException(); } + @Override public ServletRegistration getServletRegistration(String servletName) { throw new UnsupportedOperationException(); } + @Override public Map getServletRegistrations() { throw new UnsupportedOperationException(); } + @Override public FilterRegistration.Dynamic addFilter(String filterName, String className) { throw new UnsupportedOperationException(); } + @Override public FilterRegistration.Dynamic addFilter(String filterName, Filter filter) { throw new UnsupportedOperationException(); } + @Override public FilterRegistration.Dynamic addFilter(String filterName, Class filterClass) { throw new UnsupportedOperationException(); } + @Override public T createFilter(Class c) throws ServletException { throw new UnsupportedOperationException(); } + @Override public FilterRegistration getFilterRegistration(String filterName) { throw new UnsupportedOperationException(); } + @Override public Map getFilterRegistrations() { throw new UnsupportedOperationException(); } + @Override public void addListener(Class listenerClass) { throw new UnsupportedOperationException(); } + @Override public void addListener(String className) { throw new UnsupportedOperationException(); } + @Override public void addListener(T t) { throw new UnsupportedOperationException(); } + @Override public T createListener(Class c) throws ServletException { throw new UnsupportedOperationException(); } diff --git a/spring-test/src/main/java/org/springframework/mock/web/MockSessionCookieConfig.java b/spring-test/src/main/java/org/springframework/mock/web/MockSessionCookieConfig.java index 4b8458c09b4..c968e51bfbd 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/MockSessionCookieConfig.java +++ b/spring-test/src/main/java/org/springframework/mock/web/MockSessionCookieConfig.java @@ -42,58 +42,72 @@ public class MockSessionCookieConfig implements SessionCookieConfig { private int maxAge; + @Override public void setName(String name) { this.name = name; } + @Override public String getName() { return this.name; } + @Override public void setDomain(String domain) { this.domain = domain; } + @Override public String getDomain() { return this.domain; } + @Override public void setPath(String path) { this.path = path; } + @Override public String getPath() { return this.path; } + @Override public void setComment(String comment) { this.comment = comment; } + @Override public String getComment() { return this.comment; } + @Override public void setHttpOnly(boolean httpOnly) { this.httpOnly = httpOnly; } + @Override public boolean isHttpOnly() { return this.httpOnly; } + @Override public void setSecure(boolean secure) { this.secure = secure; } + @Override public boolean isSecure() { return this.secure; } + @Override public void setMaxAge(int maxAge) { this.maxAge = maxAge; } + @Override public int getMaxAge() { return this.maxAge; } diff --git a/spring-test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java b/spring-test/src/main/java/org/springframework/mock/web/PassThroughFilterChain.java index c2de4d2fccf..080b8534eaf 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 2ca21a472b1..423cbb0c34b 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 5072ede8bb4..28662358c02 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 1a914ff5712..109133a2b64 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 f6a850c7aa3..15f6f59c946 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 7f5ad3fe962..d9d139b0105 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 34a6dea478c..1690ace0663 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 54c0404d744..1114d0081bd 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 0d2bab32e37..0a48975f691 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 a695cee3ba7..e269a621e1a 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 2895914662b..824df6f70d3 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 9d3a878026a..cf7f48bb176 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 39dc9f5b294..bf1e6f09750 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletContext.java @@ -125,10 +125,12 @@ 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( @@ -137,10 +139,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 { @@ -152,18 +156,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 { @@ -175,6 +183,7 @@ public class MockPortletContext implements PortletContext { } } + @Override public Set getResourcePaths(String path) { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -193,6 +202,7 @@ public class MockPortletContext implements PortletContext { } } + @Override public URL getResource(String path) throws MalformedURLException { Resource resource = this.resourceLoader.getResource(getResourceLocation(path)); try { @@ -204,14 +214,17 @@ public class MockPortletContext implements PortletContext { } } + @Override public Object getAttribute(String name) { return this.attributes.get(name); } + @Override public Enumeration getAttributeNames() { return Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); } + @Override public void setAttribute(String name, Object value) { if (value != null) { this.attributes.put(name, value); @@ -221,6 +234,7 @@ public class MockPortletContext implements PortletContext { } } + @Override public void removeAttribute(String name) { this.attributes.remove(name); } @@ -230,19 +244,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); } @@ -251,6 +269,7 @@ public class MockPortletContext implements PortletContext { this.portletContextName = portletContextName; } + @Override public String getPortletContextName() { return this.portletContextName; } @@ -259,6 +278,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 7c5fef116b0..3af2d6e97a2 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 38b517351a7..649bafe6f68 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequest.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockPortletRequest.java @@ -173,10 +173,12 @@ 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); } @@ -186,6 +188,7 @@ public class MockPortletRequest implements PortletRequest { this.portletMode = portletMode; } + @Override public PortletMode getPortletMode() { return this.portletMode; } @@ -195,6 +198,7 @@ public class MockPortletRequest implements PortletRequest { this.windowState = windowState; } + @Override public WindowState getWindowState() { return this.windowState; } @@ -204,6 +208,7 @@ public class MockPortletRequest implements PortletRequest { this.portletPreferences = preferences; } + @Override public PortletPreferences getPreferences() { return this.portletPreferences; } @@ -216,10 +221,12 @@ public class MockPortletRequest implements PortletRequest { } } + @Override public PortletSession getPortletSession() { return getPortletSession(true); } + @Override public PortletSession getPortletSession(boolean create) { checkActive(); // Reset session if invalidated. @@ -265,21 +272,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; } @@ -288,6 +299,7 @@ public class MockPortletRequest implements PortletRequest { this.authType = authType; } + @Override public String getAuthType() { return this.authType; } @@ -296,6 +308,7 @@ public class MockPortletRequest implements PortletRequest { this.contextPath = contextPath; } + @Override public String getContextPath() { return this.contextPath; } @@ -304,6 +317,7 @@ public class MockPortletRequest implements PortletRequest { this.remoteUser = remoteUser; } + @Override public String getRemoteUser() { return this.remoteUser; } @@ -312,6 +326,7 @@ public class MockPortletRequest implements PortletRequest { this.userPrincipal = userPrincipal; } + @Override public Principal getUserPrincipal() { return this.userPrincipal; } @@ -320,15 +335,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 Collections.enumeration(new LinkedHashSet(this.attributes.keySet())); @@ -369,19 +387,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); } @@ -390,10 +412,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) { @@ -404,11 +428,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); @@ -418,6 +444,7 @@ public class MockPortletRequest implements PortletRequest { this.requestedSessionIdValid = requestedSessionIdValid; } + @Override public boolean isRequestedSessionIdValid() { return this.requestedSessionIdValid; } @@ -430,10 +457,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); } @@ -446,10 +475,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); } @@ -458,6 +489,7 @@ public class MockPortletRequest implements PortletRequest { this.scheme = scheme; } + @Override public String getScheme() { return this.scheme; } @@ -466,6 +498,7 @@ public class MockPortletRequest implements PortletRequest { this.serverName = serverName; } + @Override public String getServerName() { return this.serverName; } @@ -474,6 +507,7 @@ public class MockPortletRequest implements PortletRequest { this.serverPort = serverPort; } + @Override public int getServerPort() { return this.serverPort; } @@ -482,6 +516,7 @@ public class MockPortletRequest implements PortletRequest { this.windowID = windowID; } + @Override public String getWindowID() { return this.windowID; } @@ -490,10 +525,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(); @@ -509,6 +546,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 70fd67c1b13..f4e0dc98fde 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 8adc809fcfc..513a6c8c9c8 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 5eaec799063..fac33bacc47 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 Collections.enumeration(new LinkedHashSet(this.portletAttributes.keySet())); } + @Override public Enumeration getAttributeNames(int scope) { if (scope == PortletSession.PORTLET_SCOPE) { return Collections.enumeration(new LinkedHashSet(this.portletAttributes.keySet())); @@ -105,10 +109,12 @@ 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 d8c5dd3ec9b..c7eff5a5288 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,15 +90,18 @@ 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); } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(encodeParameter("urlType", this.urlType)); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderRequest.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockRenderRequest.java index 03c9f0ca4d5..8b9ed2e41ad 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 464b889467e..e359b0b52cc 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 2148bd3e91d..5878e7b96ef 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 228202dbdd7..4c7f45279b9 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 d9a42c8dce8..b7aab871dfa 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceURL.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockResourceURL.java @@ -36,6 +36,7 @@ public class MockResourceURL extends MockBaseURL implements ResourceURL { // ResourceURL methods //--------------------------------------------------------------------- + @Override public void setResourceID(String resourceID) { this.resourceID = resourceID; } @@ -44,15 +45,18 @@ public 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; } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(encodeParameter("resourceID", this.resourceID)); diff --git a/spring-test/src/main/java/org/springframework/mock/web/portlet/MockStateAwareResponse.java b/spring-test/src/main/java/org/springframework/mock/web/portlet/MockStateAwareResponse.java index 8fe1e42cdcc..007204ce98b 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 93415e79bac..66a663e0800 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/portlet/ServletWrappingPortletContext.java +++ b/spring-test/src/main/java/org/springframework/mock/web/portlet/ServletWrappingPortletContext.java @@ -59,82 +59,102 @@ public 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 public Set getResourcePaths(String path) { return this.servletContext.getResourcePaths(path); } + @Override public URL getResource(String path) throws MalformedURLException { return this.servletContext.getResource(path); } + @Override public Object getAttribute(String name) { return this.servletContext.getAttribute(name); } + @Override public Enumeration getAttributeNames() { return this.servletContext.getAttributeNames(); } + @Override public String getInitParameter(String name) { return this.servletContext.getInitParameter(name); } + @Override public Enumeration getInitParameterNames() { return this.servletContext.getInitParameterNames(); } + @Override public void log(String msg) { this.servletContext.log(msg); } + @Override public void log(String message, Throwable throwable) { this.servletContext.log(message, throwable); } + @Override public void removeAttribute(String name) { this.servletContext.removeAttribute(name); } + @Override public void setAttribute(String name, Object object) { this.servletContext.setAttribute(name, object); } + @Override public String getPortletContextName() { return this.servletContext.getServletContextName(); } + @Override public Enumeration getContainerRuntimeOptions() { return Collections.enumeration(new HashSet()); } diff --git a/spring-test/src/main/java/org/springframework/test/annotation/SystemProfileValueSource.java b/spring-test/src/main/java/org/springframework/test/annotation/SystemProfileValueSource.java index d88da93f440..5a39918a770 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/junit4/AbstractJUnit4SpringContextTests.java b/spring-test/src/main/java/org/springframework/test/context/junit4/AbstractJUnit4SpringContextTests.java index 555892901ee..6b99c6a1084 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 0fc6c6012c7..c637752032b 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 284e80acf0d..f0dc37fe678 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 bd84068ac78..dc8bb8d68a4 100644 --- a/spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/support/AbstractGenericContextLoader.java @@ -99,6 +99,7 @@ public abstract class AbstractGenericContextLoader extends AbstractContextLoader * @see GenericApplicationContext * @since 3.1 */ + @Override public final ConfigurableApplicationContext loadContext(MergedContextConfiguration mergedConfig) throws Exception { if (logger.isDebugEnabled()) { logger.debug(String.format("Loading ApplicationContext for merged context configuration [%s].", @@ -156,6 +157,7 @@ public 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 34dfe47ec7f..2f349cbc967 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 39e76f6e1a9..29a26c5e250 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 32442fe3ec1..108c66f0141 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 e7964d1eaa6..e8cbecc271f 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 ab96a3ee5cc..4846f0955e9 100644 --- a/spring-test/src/main/java/org/springframework/test/context/transaction/TransactionalTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/transaction/TransactionalTestExecutionListener.java @@ -142,6 +142,7 @@ public 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 75c363dd188..91ee9e79aa3 100644 --- a/spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/web/AbstractGenericWebContextLoader.java @@ -99,6 +99,7 @@ public abstract class AbstractGenericWebContextLoader extends AbstractContextLoa * @see org.springframework.test.context.SmartContextLoader#loadContext(MergedContextConfiguration) * @see GenericWebApplicationContext */ + @Override public final ConfigurableApplicationContext loadContext(MergedContextConfiguration mergedConfig) throws Exception { if (!(mergedConfig instanceof WebMergedContextConfiguration)) { @@ -259,6 +260,7 @@ 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 05acb463665..e82a63807de 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 0bf295e0549..d172fed8835 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 7858d9201f7..1f65000a26d 100644 --- a/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java +++ b/spring-test/src/main/java/org/springframework/test/context/web/ServletTestExecutionListener.java @@ -69,6 +69,7 @@ public class ServletTestExecutionListener extends AbstractTestExecutionListener * @see TestExecutionListener#prepareTestInstance(TestContext) * @see #setUpRequestContextIfNecessary(TestContext) */ + @Override @SuppressWarnings("javadoc") public void prepareTestInstance(TestContext testContext) throws Exception { setUpRequestContextIfNecessary(testContext); @@ -81,6 +82,7 @@ public class ServletTestExecutionListener extends AbstractTestExecutionListener * @see TestExecutionListener#beforeTestMethod(TestContext) * @see #setUpRequestContextIfNecessary(TestContext) */ + @Override @SuppressWarnings("javadoc") public void beforeTestMethod(TestContext testContext) throws Exception { setUpRequestContextIfNecessary(testContext); @@ -93,6 +95,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 fa561c00a7f..9dc43968aa3 100644 --- a/spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java +++ b/spring-test/src/main/java/org/springframework/test/context/web/WebDelegatingSmartContextLoader.java @@ -37,10 +37,12 @@ public class WebDelegatingSmartContextLoader extends AbstractDelegatingSmartCont private final SmartContextLoader annotationConfigLoader = new AnnotationConfigWebContextLoader(); + @Override protected SmartContextLoader getXmlLoader() { return this.xmlLoader; } + @Override protected SmartContextLoader getAnnotationConfigLoader() { return this.annotationConfigLoader; } diff --git a/spring-test/src/test/java/org/springframework/test/context/ContextHierarchyDirtiesContextTests.java b/spring-test/src/test/java/org/springframework/test/context/ContextHierarchyDirtiesContextTests.java index 48f34890077..fdc173df686 100644 --- a/spring-test/src/test/java/org/springframework/test/context/ContextHierarchyDirtiesContextTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/ContextHierarchyDirtiesContextTests.java @@ -124,6 +124,7 @@ public class ContextHierarchyDirtiesContextTests { } } + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { ContextHierarchyDirtiesContextTests.context = applicationContext; ContextHierarchyDirtiesContextTests.baz = applicationContext.getBean("bean", String.class); diff --git a/spring-test/src/test/java/org/springframework/test/util/subpackage/LegacyEntity.java b/spring-test/src/test/java/org/springframework/test/util/subpackage/LegacyEntity.java index 19507c9380f..8c8ddfd4af1 100644 --- a/spring-test/src/test/java/org/springframework/test/util/subpackage/LegacyEntity.java +++ b/spring-test/src/test/java/org/springframework/test/util/subpackage/LegacyEntity.java @@ -29,6 +29,7 @@ public class LegacyEntity { private Object collaborator = new Object() { + @Override public String toString() { throw new RuntimeException( "Invoking toString() on the default collaborator causes an undesirable side effect"); @@ -36,6 +37,7 @@ public class LegacyEntity { }; + @Override public String toString() { return new ToStringCreator(this)// .append("collaborator", this.collaborator)// diff --git a/spring-test/src/test/java/org/springframework/test/util/subpackage/Person.java b/spring-test/src/test/java/org/springframework/test/util/subpackage/Person.java index 66304779575..b89f56167fd 100644 --- a/spring-test/src/test/java/org/springframework/test/util/subpackage/Person.java +++ b/spring-test/src/test/java/org/springframework/test/util/subpackage/Person.java @@ -79,6 +79,7 @@ public class Person extends PersistentEntity { this.favoriteNumber = favoriteNumber; } + @Override public String toString() { return new ToStringCreator(this) diff --git a/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationAdvisor.java b/spring-tx/src/main/java/org/springframework/dao/annotation/PersistenceExceptionTranslationAdvisor.java index 2b8358d678c..4aaab8b1371 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 e60638b20fe..b8588a878ba 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 bdaddb8c55a..d86c5aeb118 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 4b5f6865c7d..91e29d11134 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 9cf7432c435..b486dccdfaa 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 aa7d38943d9..93404bd98e4 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 f01ac831008..5bc218d4614 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 bf1808db812..ed843edeed0 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 fe391c88056..40a50b80dd9 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 f5b2b5d0ec4..7fd30b3a9b0 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 d55909ebe07..4bd46036ca6 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 982b43064b9..b9989c945a7 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 aa341f8e15d..19bd6dda704 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 413a034ae72..c792c2af1f8 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 7e2bedff0f8..fbac4159dde 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 44f38674b81..b822fc5fb69 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 41bf5447278..259f9f6ca2a 100644 --- a/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java +++ b/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java @@ -157,6 +157,7 @@ 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); @@ -201,6 +202,7 @@ public class SpringContextResourceAdapter implements ResourceAdapter { /** * This implementation closes the Spring ApplicationContext. */ + @Override public void stop() { logger.info("Stopping SpringContextResourceAdapter"); this.applicationContext.close(); @@ -210,6 +212,7 @@ public class SpringContextResourceAdapter implements ResourceAdapter { /** * This implementation always throws a NotSupportedException. */ + @Override public void endpointActivation(MessageEndpointFactory messageEndpointFactory, ActivationSpec activationSpec) throws ResourceException { @@ -219,12 +222,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 01f27f23ffe..208a1f85bf9 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 61f8db5b4e4..908dbd7f1c3 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 2f256adafed..c05c613253d 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 e02deb14a62..605bbebb8df 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 0bde9b263bd..8d3fd3d2368 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 d26fea73320..be54bddd5ce 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 3ce2716886a..f0320d9ffeb 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 4a2daf4d024..96645a6e244 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 c6f4cb4c4e3..de8f4da2cfc 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 d5ea077155f..4aba8ee705f 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 f7122b3742b..c7e20cf1dc4 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/JtaTransactionAnnotationParser.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/JtaTransactionAnnotationParser.java index 862a6f4df57..f81ef2fac66 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/annotation/JtaTransactionAnnotationParser.java +++ b/spring-tx/src/main/java/org/springframework/transaction/annotation/JtaTransactionAnnotationParser.java @@ -35,6 +35,7 @@ import org.springframework.transaction.interceptor.TransactionAttribute; @SuppressWarnings("serial") public class JtaTransactionAnnotationParser implements TransactionAnnotationParser, Serializable { + @Override public TransactionAttribute parseTransactionAnnotation(AnnotatedElement ae) { javax.transaction.Transactional ann = AnnotationUtils.getAnnotation(ae, javax.transaction.Transactional.class); if (ann != null) { diff --git a/spring-tx/src/main/java/org/springframework/transaction/annotation/SpringTransactionAnnotationParser.java b/spring-tx/src/main/java/org/springframework/transaction/annotation/SpringTransactionAnnotationParser.java index d9024f1a1f1..514548d9ce9 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 07bea12ee54..6821c78e6bb 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 28736d0177e..228ffdbc90e 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 a8762beeb59..a1dcc33b39f 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 551eb287daa..49da42fb873 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 1deed0c7205..a0f1a193b59 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 f505b8bf5cd..8e016f25331 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 32c66e68ddf..84db321374c 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 b67ed6982b0..e27ee94bf5e 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 c71f01d6815..77b26a5f25b 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 8fa8be22a3d..9d2b5debc8f 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 bcd2c778805..2e259559132 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAspectSupport.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAspectSupport.java @@ -205,6 +205,7 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init /** * Set the BeanFactory to use for retrieving PlatformTransactionManager beans. */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.beanFactory = beanFactory; } @@ -219,6 +220,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( @@ -276,6 +278,7 @@ public abstract class TransactionAspectSupport implements BeanFactoryAware, Init try { Object result = ((CallbackPreferringPlatformTransactionManager) tm).execute(txAttr, new TransactionCallback() { + @Override public Object doInTransaction(TransactionStatus status) { TransactionInfo txInfo = prepareTransactionInfo(tm, txAttr, joinpointIdentification, status); try { diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourceAdvisor.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionAttributeSourceAdvisor.java index a5a632411da..3795ec8234b 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 4b9314edf70..13b23dfcfd9 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 db46387077c..577f84735e0 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionInterceptor.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionInterceptor.java @@ -84,6 +84,7 @@ public 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 @@ -92,6 +93,7 @@ public class TransactionInterceptor extends TransactionAspectSupport implements // Adapt to TransactionAspectSupport's invokeWithinTransaction... return invokeWithinTransaction(invocation.getMethod(), targetClass, new InvocationCallback() { + @Override public Object proceedWithInvocation() throws Throwable { return invocation.proceed(); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java index 62b408e155c..b6a26078da3 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.BeanFactory#getBean(Class) * @see org.springframework.transaction.PlatformTransactionManager */ + @Override public void setBeanFactory(BeanFactory beanFactory) { this.transactionInterceptor.setBeanFactory(beanFactory); } diff --git a/spring-tx/src/main/java/org/springframework/transaction/jta/JtaAfterCompletionSynchronization.java b/spring-tx/src/main/java/org/springframework/transaction/jta/JtaAfterCompletionSynchronization.java index fded50e1675..4a4e70cb8ed 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 14d89787d70..5e808b70c4e 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionManager.java +++ b/spring-tx/src/main/java/org/springframework/transaction/jta/JtaTransactionManager.java @@ -392,6 +392,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager * Initialize the UserTransaction as well as the TransactionManager handle. * @see #initUserTransactionAndTransactionManager() */ + @Override public void afterPropertiesSet() throws TransactionSystemException { initUserTransactionAndTransactionManager(); checkUserTransactionAndTransactionManager(); @@ -1132,6 +1133,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"); @@ -1142,6 +1144,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 89bab2e7e22..5031822294b 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 483f63ae63f..f73436a2c54 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 91615081a6b..b68abdce0bb 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 e4ecffce744..421f8c86ad7 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 3a9e57e7484..efcf0616c95 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 de51a5425c5..3480a11741f 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 ef30ce0af4a..ad6fe26042c 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 1e2f4455c9c..840d7dbc493 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 f1a63abc119..b83b01698b5 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 9569dc1098d..22f6f46acc1 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 4bc84fb3927..e05c4e27844 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 6a690e9713a..bea1e3e864a 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 b9e668fc572..3c94f20efa7 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 fd6f184304e..2788b8f7289 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 e3168e1b7bc..a4b57b3b0bb 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 181bbf04cbc..4342e872e06 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 47d8319af68..7515148694d 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/DefaultCookie.java b/spring-web/src/main/java/org/springframework/http/DefaultCookie.java index 82a09ba26e3..b971d33fc57 100644 --- a/spring-web/src/main/java/org/springframework/http/DefaultCookie.java +++ b/spring-web/src/main/java/org/springframework/http/DefaultCookie.java @@ -29,10 +29,12 @@ public class DefaultCookie implements Cookie { this.value = value; } + @Override public String getName() { return name; } + @Override public String getValue() { return value; } diff --git a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java index e972709572a..c41d04d69e3 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -692,6 +692,7 @@ 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; @@ -705,6 +706,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) { @@ -722,18 +724,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()) { @@ -744,50 +749,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 9f527c7c8ce..fd9036d5877 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaType.java +++ b/spring-web/src/main/java/org/springframework/http/MediaType.java @@ -584,6 +584,7 @@ public 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) { @@ -850,6 +851,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; @@ -893,6 +895,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 90849670786..1e6652e1d0f 100644 --- a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequest.java @@ -36,20 +36,24 @@ public abstract class AbstractClientHttpRequest implements ClientHttpRequest { private boolean executed = false; + @Override public final HttpHeaders getHeaders() { return (this.executed ? HttpHeaders.readOnlyHttpHeaders(this.headers) : this.headers); } + @Override public final OutputStream getBody() throws IOException { checkExecuted(); return getBodyInternal(this.headers); } + @Override public Cookies getCookies() { // TODO throw new UnsupportedOperationException(); } + @Override public final ClientHttpResponse execute() throws IOException { checkExecuted(); ClientHttpResponse result = executeInternal(this.headers); diff --git a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpRequestFactoryWrapper.java index 3b0e2dc08de..4022c4dc731 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 33c123cff95..f7ccdd98743 100644 --- a/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/AbstractClientHttpResponse.java @@ -29,10 +29,12 @@ import org.springframework.http.HttpStatus; */ public abstract class AbstractClientHttpResponse implements ClientHttpResponse { + @Override public HttpStatus getStatusCode() throws IOException { return HttpStatus.valueOf(getRawStatusCode()); } + @Override public Cookies getCookies() { // TODO throw new UnsupportedOperationException(); diff --git a/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java b/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpRequestWrapper.java index 794ca6ac2ad..95a628bb6ce 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 382b3fa20ab..958abfad29f 100644 --- a/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpResponseWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/BufferingClientHttpResponseWrapper.java @@ -44,22 +44,27 @@ final class BufferingClientHttpResponseWrapper implements ClientHttpResponse { } + @Override public HttpStatus getStatusCode() throws IOException { return this.response.getStatusCode(); } + @Override public int getRawStatusCode() throws IOException { return this.response.getRawStatusCode(); } + @Override public String getStatusText() throws IOException { return this.response.getStatusText(); } + @Override public HttpHeaders getHeaders() { return this.response.getHeaders(); } + @Override public InputStream getBody() throws IOException { if (this.body == null) { this.body = StreamUtils.copyToByteArray(this.response.getBody()); @@ -67,10 +72,12 @@ final class BufferingClientHttpResponseWrapper implements ClientHttpResponse { return new ByteArrayInputStream(this.body); } + @Override public Cookies getCookies() { return this.response.getCookies(); } + @Override public void close() { this.response.close(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/ClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/ClientHttpResponse.java index 438f8035bdf..26fa24a44cb 100644 --- a/spring-web/src/main/java/org/springframework/http/client/ClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/ClientHttpResponse.java @@ -57,6 +57,7 @@ public interface ClientHttpResponse extends HttpInputMessage, Closeable { /** * Closes this response, freeing any resources created. */ + @Override void close(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequest.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequest.java index 3e833d44590..f829f25ff00 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 0131cfa50fc..f16d1fd54d0 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 d4033e4216a..121f413df45 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 a422614fe9f..b02658a62fd 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 c2a78642964..9c2d19b3cb1 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleBufferingClientHttpRequest.java @@ -48,10 +48,12 @@ final class SimpleBufferingClientHttpRequest extends AbstractBufferingClientHttp } + @Override public HttpMethod getMethod() { return HttpMethod.valueOf(this.connection.getRequestMethod()); } + @Override public URI getURI() { try { return this.connection.getURL().toURI(); diff --git a/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java index 3aa31d9b839..f6c69ec2158 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleClientHttpRequestFactory.java @@ -122,6 +122,7 @@ public 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 1fc33f0b696..986a9202f61 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 f14f7e9025d..d15037ccd02 100644 --- a/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingClientHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/client/SimpleStreamingClientHttpRequest.java @@ -54,10 +54,12 @@ final class SimpleStreamingClientHttpRequest extends AbstractClientHttpRequest { this.outputStreaming = outputStreaming; } + @Override public HttpMethod getMethod() { return HttpMethod.valueOf(this.connection.getRequestMethod()); } + @Override public URI getURI() { try { return this.connection.getURL().toURI(); diff --git a/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java b/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java index c9c8ef99556..46e893c54b0 100644 --- a/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java +++ b/spring-web/src/main/java/org/springframework/http/client/support/HttpRequestWrapper.java @@ -56,6 +56,7 @@ public class HttpRequestWrapper implements HttpRequest { /** * Returns the method of the wrapped request. */ + @Override public HttpMethod getMethod() { return this.request.getMethod(); } @@ -63,6 +64,7 @@ public class HttpRequestWrapper implements HttpRequest { /** * Returns the URI of the wrapped request. */ + @Override public URI getURI() { return this.request.getURI(); } @@ -70,6 +72,7 @@ public class HttpRequestWrapper implements HttpRequest { /** * Returns the headers of the wrapped request. */ + @Override public HttpHeaders getHeaders() { return this.request.getHeaders(); } @@ -77,6 +80,7 @@ public class HttpRequestWrapper implements HttpRequest { /** * Returns the cookies of the wrapped request. */ + @Override public Cookies getCookies() { return this.request.getCookies(); } diff --git a/spring-web/src/main/java/org/springframework/http/client/support/ProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/http/client/support/ProxyFactoryBean.java index b769c384537..6ff8d581f3b 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 680225e928a..b5caa76c3f8 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 74c1772558b..bce999a0ffa 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 { @@ -375,15 +380,18 @@ 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 451d11d2601..b799c44b91b 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/JacksonObjectMapperFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/JacksonObjectMapperFactoryBean.java @@ -196,6 +196,7 @@ public class JacksonObjectMapperFactoryBean implements FactoryBean } + @Override public void afterPropertiesSet() { if (this.objectMapper == null) { this.objectMapper = new ObjectMapper(); @@ -236,14 +237,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 0cd9462e84b..4997b1609f2 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java @@ -134,6 +134,7 @@ public 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)); @@ -158,6 +159,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 e0a50b80818..adf03b9b0b6 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJacksonHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJacksonHttpMessageConverter.java @@ -133,6 +133,7 @@ public 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)); @@ -157,6 +158,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 af65ee275c6..d2e0e9b53dd 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/AsyncServletServerHttpRequest.java b/spring-web/src/main/java/org/springframework/http/server/AsyncServletServerHttpRequest.java index 996a7d3fdcc..ded710585ad 100644 --- a/spring-web/src/main/java/org/springframework/http/server/AsyncServletServerHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/server/AsyncServletServerHttpRequest.java @@ -57,6 +57,7 @@ public class AsyncServletServerHttpRequest extends ServletServerHttpRequest /** * Timeout period begins after the container thread has exited. */ + @Override public void setTimeout(long timeout) { Assert.state(!isAsyncStarted(), "Cannot change the timeout with concurrent handling in progress"); this.timeout = timeout; @@ -70,6 +71,7 @@ public class AsyncServletServerHttpRequest extends ServletServerHttpRequest this.completionHandlers.add(runnable); } + @Override public boolean isAsyncStarted() { return ((this.asyncContext != null) && getServletRequest().isAsyncStarted()); } @@ -79,10 +81,12 @@ public class AsyncServletServerHttpRequest extends ServletServerHttpRequest *

It is important to avoid use of request and response objects after async * processing has completed. Servlet containers often re-use them. */ + @Override public boolean isAsyncCompleted() { return this.asyncCompleted.get(); } + @Override public void startAsync() { Assert.state(getServletRequest().isAsyncSupported(), "Async support must be enabled on a servlet and for all filters involved " + @@ -100,6 +104,7 @@ public class AsyncServletServerHttpRequest extends ServletServerHttpRequest } } + @Override public void completeAsync() { Assert.notNull(this.asyncContext, "Cannot dispatch without an AsyncContext"); if (isAsyncStarted() && !isAsyncCompleted()) { diff --git a/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java b/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java index 02541fab927..ea8cae6a4d3 100644 --- a/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/server/ServerHttpResponse.java @@ -44,6 +44,7 @@ public interface ServerHttpResponse extends HttpOutputMessage, Closeable { /** * Close this response, freeing any resources created. */ + @Override void close(); } diff --git a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpRequest.java b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpRequest.java index 2236df64cd1..cd10f179e08 100644 --- a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpRequest.java +++ b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpRequest.java @@ -85,10 +85,12 @@ public 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(), @@ -100,6 +102,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest { } } + @Override public HttpHeaders getHeaders() { if (this.headers == null) { this.headers = new HttpHeaders(); @@ -147,6 +150,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest { return this.servletRequest.getRemoteAddr(); } + @Override public Cookies getCookies() { if (this.cookies == null) { this.cookies = new Cookies(); @@ -159,6 +163,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest { return this.cookies; } + @Override public MultiValueMap getQueryParams() { if (this.queryParams == null) { this.queryParams = new LinkedMultiValueMap(this.servletRequest.getParameterMap().size()); @@ -171,6 +176,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest { return this.queryParams; } + @Override public InputStream getBody() throws IOException { if (isFormPost(this.servletRequest)) { return getBodyFromServletRequestParameters(this.servletRequest); diff --git a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java index 3a2ba0445d8..ccdf58f475a 100644 --- a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java @@ -62,18 +62,22 @@ public 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 Cookies getCookies() { return (this.headersWritten ? Cookies.readOnlyCookies(this.cookies) : this.cookies); } + @Override public OutputStream getBody() throws IOException { writeCookies(); writeHeaders(); @@ -87,6 +91,7 @@ public class ServletServerHttpResponse implements ServerHttpResponse { this.servletResponse.flushBuffer(); } + @Override public void close() { writeCookies(); writeHeaders(); diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapClientInterceptor.java b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapClientInterceptor.java index fca4c6c9757..9346286a7fd 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapClientInterceptor.java @@ -140,6 +140,7 @@ 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 4eab6397dcf..c8e47845f0f 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapExporter.java @@ -50,6 +50,7 @@ public class BurlapExporter extends RemoteExporter implements InitializingBean { private BurlapSkeleton skeleton; + @Override public void afterPropertiesSet() { prepare(); } diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapProxyFactoryBean.java index 6872893cbcd..b8fca876bd4 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapProxyFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapProxyFactoryBean.java @@ -55,14 +55,17 @@ public 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 151ca5f24f2..13af45818f0 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/BurlapServiceExporter.java @@ -57,6 +57,7 @@ public class BurlapServiceExporter extends BurlapExporter implements HttpRequest /** * Processes the incoming Burlap request and creates a Burlap response. */ + @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java index ed7f5b3816b..3bb07f04cb5 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java @@ -236,6 +236,7 @@ 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 a714b77f783..9249588d02c 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java @@ -112,6 +112,7 @@ public 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 96325ddbe30..f446a4ba7fd 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 a572d080d00..314aadaaa97 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java @@ -52,6 +52,7 @@ public class HessianServiceExporter extends HessianExporter implements HttpReque /** * Processes the incoming Hessian request and creates a Hessian response. */ + @Override public void handleRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleBurlapServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleBurlapServiceExporter.java index d921ab47032..430b41c5a07 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleBurlapServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleBurlapServiceExporter.java @@ -53,6 +53,7 @@ public class SimpleBurlapServiceExporter extends BurlapExporter implements HttpH /** * Processes the incoming Burlap request and creates a Burlap response. */ + @Override public void handle(HttpExchange exchange) throws IOException { if (!"POST".equals(exchange.getRequestMethod())) { exchange.getResponseHeaders().set("Allow", "POST"); diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java index d56b1e0e3fc..e773ed161bc 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java @@ -49,6 +49,7 @@ public class SimpleHessianServiceExporter extends HessianExporter implements Htt /** * Processes the incoming Hessian request and creates a Hessian response. */ + @Override public void handle(HttpExchange exchange) throws IOException { if (!"POST".equals(exchange.getRequestMethod())) { exchange.getResponseHeaders().set("Allow", "POST"); diff --git a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/AbstractHttpInvokerRequestExecutor.java b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/AbstractHttpInvokerRequestExecutor.java index 5a024973eae..8b6c47b339b 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 18668f53004..ccc1f704f6a 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 eee01cd025d..3514f5e2e51 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 d95b47122cf..0e85a7bcc4e 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 ed94d9d8e95..88283205a99 100644 --- a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/SimpleHttpInvokerServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/SimpleHttpInvokerServiceExporter.java @@ -61,6 +61,7 @@ public class SimpleHttpInvokerServiceExporter extends RemoteInvocationSerializin * @see #invokeAndCreateResult(org.springframework.remoting.support.RemoteInvocation, Object) * @see #writeRemoteInvocationResult(com.sun.net.httpserver.HttpExchange, org.springframework.remoting.support.RemoteInvocationResult) */ + @Override public void handle(HttpExchange exchange) throws IOException { try { RemoteInvocation invocation = readRemoteInvocation(exchange); diff --git a/spring-web/src/main/java/org/springframework/remoting/jaxws/AbstractJaxWsServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/jaxws/AbstractJaxWsServiceExporter.java index d4078cae2e7..52ad40354c5 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 815f15e9326..8adf8663da2 100644 --- a/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/jaxws/JaxWsPortClientInterceptor.java @@ -319,6 +319,7 @@ public 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; } @@ -331,6 +332,7 @@ public class JaxWsPortClientInterceptor extends LocalJaxWsServiceFactory } + @Override public void afterPropertiesSet() { if (this.lookupServiceOnStartup) { prepare(); @@ -524,6 +526,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 29630cefc64..ee7ccdfe31d 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 672ff473905..da97f8437ad 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 2c579172c1c..717f4ec3f95 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 edd0b8e22ba..a85e4b19b67 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 2886fe487fd..9120a52faeb 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java +++ b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManager.java @@ -118,6 +118,7 @@ public 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); @@ -133,6 +134,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) { @@ -145,6 +147,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 a5d0357d91e..23fc2c40178 100644 --- a/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/web/accept/ContentNegotiationManagerFactoryBean.java @@ -174,11 +174,13 @@ public class ContentNegotiationManagerFactoryBean this.defaultContentType = defaultContentType; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } + @Override public void afterPropertiesSet() { List strategies = new ArrayList(); @@ -213,14 +215,17 @@ public class ContentNegotiationManagerFactoryBean } + @Override public ContentNegotiationManager getObject() { return this.contentNegotiationManager; } + @Override public Class getObjectType() { return ContentNegotiationManager.class; } + @Override public boolean isSingleton() { return true; } diff --git a/spring-web/src/main/java/org/springframework/web/accept/FixedContentNegotiationStrategy.java b/spring-web/src/main/java/org/springframework/web/accept/FixedContentNegotiationStrategy.java index 84ac58cfee3..5180154dd2c 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 ef84fb179da..1cfcd67e5db 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 293f26ce7ad..71e670d0fd6 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 67144395e29..3cb0b96b895 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 89e7ad9c2b2..ba3840f74ea 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 8b0d4ffb279..3056ad03119 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 bab588d5a48..d673f17b2cc 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 1eeceb0e2ac..498849d608e 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 f9d1d7c1026..7f20bf4e8f4 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 bdb8e616d6e..45eb677ea91 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 b4232ff47c4..4fc24562a2c 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 5ec14f0f1f9..dcb7ae9b1cb 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 @@ -215,6 +215,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 = @@ -222,6 +223,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 = @@ -229,6 +231,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 = @@ -236,6 +239,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); @@ -244,6 +248,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); @@ -252,6 +257,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 = @@ -261,26 +267,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); @@ -288,12 +299,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); @@ -302,6 +315,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); @@ -310,6 +324,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 = @@ -317,6 +332,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 { @@ -326,6 +342,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, Map uriVariables) throws RestClientException { @@ -335,6 +352,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 = @@ -344,16 +362,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); @@ -361,30 +382,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(); @@ -392,6 +419,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 { @@ -400,6 +428,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 { @@ -408,6 +437,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 { @@ -416,6 +446,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 { @@ -425,6 +456,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 { @@ -434,6 +466,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 { @@ -445,6 +478,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 { @@ -452,6 +486,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 { @@ -459,6 +494,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 { @@ -549,6 +585,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat this.responseType = responseType; } + @Override @SuppressWarnings("unchecked") public void doWithRequest(ClientHttpRequest request) throws IOException { if (responseType != null) { @@ -688,6 +725,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat } } + @Override public ResponseEntity extractData(ClientHttpResponse response) throws IOException { if (this.delegate != null) { T body = this.delegate.extractData(response); @@ -705,6 +743,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 54defc908f7..486da7952ac 100644 --- a/spring-web/src/main/java/org/springframework/web/context/AbstractContextLoaderInitializer.java +++ b/spring-web/src/main/java/org/springframework/web/context/AbstractContextLoaderInitializer.java @@ -41,6 +41,7 @@ public abstract class AbstractContextLoaderInitializer implements WebApplication /** Logger available to subclasses. */ protected final Log logger = LogFactory.getLog(getClass()); + @Override public void onStartup(ServletContext servletContext) throws ServletException { this.registerContextLoaderListener(servletContext); } diff --git a/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java b/spring-web/src/main/java/org/springframework/web/context/ContextCleanupListener.java index 2e1956cb2bf..677ea452b1d 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 75d7044ac7b..83aff2d3ded 100644 --- a/spring-web/src/main/java/org/springframework/web/context/ContextLoaderListener.java +++ b/spring-web/src/main/java/org/springframework/web/context/ContextLoaderListener.java @@ -101,6 +101,7 @@ public class ContextLoaderListener extends ContextLoader implements ServletConte /** * Initialize the root web application context. */ + @Override public void contextInitialized(ServletContextEvent event) { initWebApplicationContext(event.getServletContext()); } @@ -109,6 +110,7 @@ public class ContextLoaderListener extends ContextLoader implements ServletConte /** * Close the root web application context. */ + @Override public void contextDestroyed(ServletContextEvent event) { closeWebApplicationContext(event.getServletContext()); ContextCleanupListener.cleanupAttributes(event.getServletContext()); diff --git a/spring-web/src/main/java/org/springframework/web/context/request/AbstractRequestAttributesScope.java b/spring-web/src/main/java/org/springframework/web/context/request/AbstractRequestAttributesScope.java index 155eadeb7ea..01325837263 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 27202c36bec..f1467553b88 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 8570211fa31..32f45852344 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 f921d2a5417..940e0c9d0a2 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 c369abbcaa9..cfc25e82f7d 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 6c8ff6de889..1316d296949 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 b95814a00e5..370a3ee841b 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 6f8331f05f4..35c06593f15 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 ca6318f344a..12ef4263391 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 19bcb0d7725..1696c1fcf4c 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 264e44237ff..36689b1e424 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 774761bdb65..42409c6fe2f 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 6158a829317..5fa0f94a799 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 8e5e6d4d6b0..abb8329dce2 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 8c79b4230f2..68908ea241e 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 92b1f7907a7..c25e2ef8346 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/AbstractRefreshableWebApplicationContext.java @@ -97,14 +97,17 @@ public 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) { @@ -112,10 +115,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) { @@ -123,6 +128,7 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR } } + @Override public String getNamespace() { return this.namespace; } @@ -209,6 +215,7 @@ public abstract class AbstractRefreshableWebApplicationContext extends AbstractR } } + @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 d30d3aef841..40dbd0d3f2b 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; } @@ -200,6 +202,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext } } + @Override public Theme getTheme(String themeName) { return this.themeSource.getTheme(themeName); } @@ -209,24 +212,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( @@ -235,6 +243,7 @@ public class GenericWebApplicationContext extends GenericApplicationContext } } + @Override public void setConfigLocations(String[] configLocations) { if (!ObjectUtils.isEmpty(configLocations)) { throw new UnsupportedOperationException( @@ -243,6 +252,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 6cde766017b..6c5427058f3 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 3d15803bfa9..5e2d1d00290 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 8c3c688a3cd..8edc5af3417 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextAwareProcessor.java @@ -97,6 +97,7 @@ public class ServletContextAwareProcessor implements BeanPostProcessor { return this.servletConfig; } + @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if (getServletContext() != null && bean instanceof ServletContextAware) { ((ServletContextAware) bean).setServletContext(getServletContext()); @@ -107,6 +108,7 @@ public 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/ServletContextParameterFactoryBean.java b/spring-web/src/main/java/org/springframework/web/context/support/ServletContextParameterFactoryBean.java index 6af3d808634..27f30651ea7 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 ea6cda9767c..e2a8f1f2f29 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 673c39c9a11..a05b782f8cc 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 180645580f9..d16a99d3f34 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 b929c4bbe30..6704b261aa5 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 5d26a434e3c..772e9f23f49 100644 --- a/spring-web/src/main/java/org/springframework/web/context/support/StaticWebApplicationContext.java +++ b/spring-web/src/main/java/org/springframework/web/context/support/StaticWebApplicationContext.java @@ -73,14 +73,17 @@ public 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) { @@ -88,10 +91,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) { @@ -99,6 +104,7 @@ public class StaticWebApplicationContext extends StaticApplicationContext } } + @Override public String getNamespace() { return this.namespace; } @@ -107,6 +113,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"); @@ -117,12 +124,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; } @@ -182,6 +191,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 9091e337a47..f7a5f81daa1 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 9aa2547d62f..b333d592799 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 a3551ff7671..37e9c015ff1 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 ea1a2155bc6..4fb7f4fed45 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 816a52c3c16..1491a2b861a 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 d422184207a..cdb1c05182f 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 d554e05cf59..eeea3a8cc9b 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 d1aa1a36d0e..eeefa75044f 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 fc43fc5f8b5..148064d00d4 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 cd14b2e3aec..f49909345ae 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/AbstractWebArgumentResolverAdapter.java b/spring-web/src/main/java/org/springframework/web/method/annotation/AbstractWebArgumentResolverAdapter.java index 76e16303183..3a8740026d2 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 63e713685bf..bb2b31f6b16 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 626b0fe2189..7db05ab78c1 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 d93a6d43a3b..5d20848c0bf 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 df430b5f0d1..ed8a0c025e5 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 d2e25293603..aee03bef146 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 c529efd8a3d..c1bc4138516 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 4843782efb9..e335b9dbf51 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 7e4fdb40367..70067715ac8 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 befe7178d9d..8708e5a5a03 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 2a532f4bed8..b254bab033a 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 f19ae737275..c9ae58b6478 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 21c88153fbd..6fa290d05d9 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 fb364be2b39..991c5ef73ea 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 ae9ae6ecf10..b649e587e06 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 25f743befc9..977042863df 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 9f8b4e52bd2..decbe3859f2 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 ee0a9b7f65a..33c9925ea78 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 38287b4f95b..46a9886fe26 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 f2b564e1c61..25cc39510a9 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 e744dc2c632..60ac5932475 100644 --- a/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java @@ -603,25 +603,30 @@ 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); @@ -651,6 +656,7 @@ final class HierarchicalUriComponents extends UriComponents { this.pathSegments = Collections.unmodifiableList(pathSegments); } + @Override public String getPath() { StringBuilder pathBuilder = new StringBuilder(); pathBuilder.append(PATH_DELIMITER); @@ -664,10 +670,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()); @@ -678,12 +686,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()); @@ -718,6 +728,7 @@ final class HierarchicalUriComponents extends UriComponents { this.pathComponents = pathComponents; } + @Override public String getPath() { StringBuilder pathBuilder = new StringBuilder(); for (PathComponent pathComponent : this.pathComponents) { @@ -726,6 +737,7 @@ final class HierarchicalUriComponents extends UriComponents { return pathBuilder.toString(); } + @Override public List getPathSegments() { List result = new ArrayList(); for (PathComponent pathComponent : this.pathComponents) { @@ -734,6 +746,7 @@ final class HierarchicalUriComponents extends UriComponents { return result; } + @Override public PathComponent encode(String encoding) throws UnsupportedEncodingException { List encodedComponents = new ArrayList(this.pathComponents.size()); for (PathComponent pathComponent : this.pathComponents) { @@ -742,12 +755,14 @@ final class HierarchicalUriComponents extends UriComponents { return new PathComponentComposite(encodedComponents); } + @Override public void verify() { for (PathComponent pathComponent : this.pathComponents) { pathComponent.verify(); } } + @Override public PathComponent expand(UriTemplateVariables uriVariables) { List expandedComponents = new ArrayList(this.pathComponents.size()); for (PathComponent pathComponent : this.pathComponents) { @@ -762,17 +777,22 @@ final class HierarchicalUriComponents extends UriComponents { * Represents an empty path. */ static final PathComponent NULL_PATH_COMPONENT = new PathComponent() { + @Override public String getPath() { return null; } + @Override public List getPathSegments() { return Collections.emptyList(); } + @Override public PathComponent encode(String encoding) throws UnsupportedEncodingException { return this; } + @Override public void verify() { } + @Override public PathComponent expand(UriTemplateVariables uriVariables) { return this; } diff --git a/spring-web/src/main/java/org/springframework/web/util/HttpSessionMutexListener.java b/spring-web/src/main/java/org/springframework/web/util/HttpSessionMutexListener.java index ab7a7101478..c0a7f344e66 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 bf0ed911b4a..8a96df095a1 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 0ca9e35d32b..ad38baa0dfb 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/ServletContextPropertyUtils.java b/spring-web/src/main/java/org/springframework/web/util/ServletContextPropertyUtils.java index 46105f8aa03..c018aa3a0b4 100644 --- a/spring-web/src/main/java/org/springframework/web/util/ServletContextPropertyUtils.java +++ b/spring-web/src/main/java/org/springframework/web/util/ServletContextPropertyUtils.java @@ -89,7 +89,8 @@ public abstract class ServletContextPropertyUtils { this.servletContext = servletContext; } - public String resolvePlaceholder(String placeholderName) { + @Override + public String resolvePlaceholder(String placeholderName) { try { String propVal = this.servletContext.getInitParameter(placeholderName); if (propVal == null) { diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java index cbdf13ef6b0..704ce965b92 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java @@ -245,6 +245,7 @@ public abstract class UriComponents implements Serializable { this.uriVariables = uriVariables; } + @Override public Object getValue(String name) { if (!this.uriVariables.containsKey(name)) { throw new IllegalArgumentException("Map has no value for '" + name + "'"); @@ -265,6 +266,7 @@ public abstract class UriComponents implements Serializable { this.valueIterator = Arrays.asList(uriVariableValues).iterator(); } + @Override public Object getValue(String name) { if (!this.valueIterator.hasNext()) { throw new IllegalArgumentException( diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java index 13968ae813e..af8aed5f115 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java @@ -604,6 +604,7 @@ public class UriComponentsBuilder { return null; } + @Override public PathComponent build() { int size = this.componentBuilders.size(); List components = new ArrayList(size); @@ -632,6 +633,7 @@ public class UriComponentsBuilder { this.path.append(path); } + @Override public PathComponent build() { if (this.path.length() == 0) { return null; @@ -661,6 +663,7 @@ public class UriComponentsBuilder { } } + @Override public PathComponent build() { return (this.pathSegments.isEmpty() ? null : new HierarchicalUriComponents.PathSegmentComponent(this.pathSegments)); diff --git a/spring-web/src/main/java/org/springframework/web/util/WebAppRootListener.java b/spring-web/src/main/java/org/springframework/web/util/WebAppRootListener.java index 832ea24d31a..36078f7b638 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-web/src/test/java/org/springframework/mock/web/test/MockAsyncContext.java b/spring-web/src/test/java/org/springframework/mock/web/test/MockAsyncContext.java index 14f4b7a0364..69a4958582c 100644 --- a/spring-web/src/test/java/org/springframework/mock/web/test/MockAsyncContext.java +++ b/spring-web/src/test/java/org/springframework/mock/web/test/MockAsyncContext.java @@ -71,6 +71,7 @@ public class MockAsyncContext implements AsyncContext { return (this.request instanceof MockHttpServletRequest) && (this.response instanceof MockHttpServletResponse); } + @Override public void dispatch() { dispatch(this.request.getRequestURI()); } @@ -89,6 +90,7 @@ public class MockAsyncContext implements AsyncContext { return this.dispatchedPath; } + @Override public void complete() { MockHttpServletRequest mockRequest = WebUtils.getNativeRequest(request, MockHttpServletRequest.class); if (mockRequest != null) { @@ -109,6 +111,7 @@ public class MockAsyncContext implements AsyncContext { runnable.run(); } + @Override public void addListener(AsyncListener listener) { this.listeners.add(listener); } @@ -122,14 +125,17 @@ public class MockAsyncContext implements AsyncContext { return this.listeners; } + @Override public T createListener(Class clazz) throws ServletException { return BeanUtils.instantiateClass(clazz); } + @Override public void setTimeout(long timeout) { this.timeout = timeout; } + @Override public long getTimeout() { return this.timeout; } diff --git a/spring-web/src/test/java/org/springframework/mock/web/test/MockSessionCookieConfig.java b/spring-web/src/test/java/org/springframework/mock/web/test/MockSessionCookieConfig.java index 095741a81cd..5300d8374e9 100644 --- a/spring-web/src/test/java/org/springframework/mock/web/test/MockSessionCookieConfig.java +++ b/spring-web/src/test/java/org/springframework/mock/web/test/MockSessionCookieConfig.java @@ -42,58 +42,72 @@ public class MockSessionCookieConfig implements SessionCookieConfig { private int maxAge; + @Override public void setName(String name) { this.name = name; } + @Override public String getName() { return this.name; } + @Override public void setDomain(String domain) { this.domain = domain; } + @Override public String getDomain() { return this.domain; } + @Override public void setPath(String path) { this.path = path; } + @Override public String getPath() { return this.path; } + @Override public void setComment(String comment) { this.comment = comment; } + @Override public String getComment() { return this.comment; } + @Override public void setHttpOnly(boolean httpOnly) { this.httpOnly = httpOnly; } + @Override public boolean isHttpOnly() { return this.httpOnly; } + @Override public void setSecure(boolean secure) { this.secure = secure; } + @Override public boolean isSecure() { return this.secure; } + @Override public void setMaxAge(int maxAge) { this.maxAge = maxAge; } + @Override public int getMaxAge() { return this.maxAge; } diff --git a/spring-web/src/test/java/org/springframework/web/multipart/support/ByteArrayMultipartFileEditorTests.java b/spring-web/src/test/java/org/springframework/web/multipart/support/ByteArrayMultipartFileEditorTests.java index df10bd0d09e..a3de4860cea 100644 --- a/spring-web/src/test/java/org/springframework/web/multipart/support/ByteArrayMultipartFileEditorTests.java +++ b/spring-web/src/test/java/org/springframework/web/multipart/support/ByteArrayMultipartFileEditorTests.java @@ -47,6 +47,7 @@ public final class ByteArrayMultipartFileEditorTests extends TestCase { ByteArrayMultipartFileEditor editor = new ByteArrayMultipartFileEditor(); final String expectedValue = "'Green Wing' - classic British comedy"; Object object = new Object() { + @Override public String toString() { return expectedValue; } diff --git a/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/FrameworkPortlet.java b/spring-webmvc-portlet/src/main/java/org/springframework/web/portlet/FrameworkPortlet.java index b876da36b75..d67899df6ac 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 13b981b9415..4febdfc9e81 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 c61dd503eda..1df9110d19c 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 40d39905e1d..e218e2938e3 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 0007c187e41..d780573c159 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 b9df018158f..c941c6a187f 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 22fe3c7dd83..492d1432e88 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 5dd52cfd49f..e2c42a09bb4 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 6a7e1c83db5..9c21f505fde 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 fe6348dd6d0..76c41e96d18 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 d1c1b2ad2a3..fdd23d92c5e 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 74534798f47..f4e5b18ca5e 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 8e3cb90f3f6..c648433cc16 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 9c3bff5f2a1..7b052cca120 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 5ef81bb0aea..f7a884dad98 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 c9cde4b1b01..62a79e4b710 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 6026dd17b47..b871ed70598 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 04897215097..4e4cf8499ed 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 a46f14b9b14..8ee6e407851 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 271906d4a21..de00d6f077d 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 8e7bcf05915..59e90c27af6 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 a76eb221cfd..936a0b9fe44 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 8f45af6598e..bae04e4d303 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 3fa889d8b40..34cf77e22bc 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 37125cde89f..579ef82388a 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 7558a92bec7..9b77f6d0bf5 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-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletPreferences.java b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletPreferences.java index 92ee6c0a465..fc281fc16bb 100644 --- a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletPreferences.java +++ b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletPreferences.java @@ -56,27 +56,32 @@ public 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-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletURL.java b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletURL.java index 89fe6a5b170..c7eff5a5288 100644 --- a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletURL.java +++ b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockPortletURL.java @@ -101,6 +101,7 @@ public class MockPortletURL extends MockBaseURL implements PortletURL { } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(encodeParameter("urlType", this.urlType)); diff --git a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockResourceURL.java b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockResourceURL.java index a0cf72f022c..b7aab871dfa 100644 --- a/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockResourceURL.java +++ b/spring-webmvc-portlet/src/test/java/org/springframework/mock/web/portlet/MockResourceURL.java @@ -56,6 +56,7 @@ public class MockResourceURL extends MockBaseURL implements ResourceURL { } + @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(encodeParameter("resourceID", this.resourceID)); diff --git a/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/AbstractSpringPreparerFactory.java b/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/AbstractSpringPreparerFactory.java index eaa6d58bc2d..e86e9cf5acf 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 8788236168b..71ab80a22a1 100644 --- a/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java +++ b/spring-webmvc-tiles3/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java @@ -235,6 +235,7 @@ public class TilesConfigurer implements ServletContextAware, InitializingBean, D this.useMutableTilesContainer = useMutableTilesContainer; } + @Override public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } @@ -244,6 +245,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 { ApplicationContext preliminaryContext = new SpringWildcardServletTilesApplicationContext(this.servletContext); if (this.tilesInitializer == null) { @@ -256,6 +258,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 026e9f4d1b0..5b9f7b64b2d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java @@ -1021,9 +1021,11 @@ public class DispatcherServlet extends FrameworkServlet { @Override protected LocaleContext buildLocaleContext(final HttpServletRequest request) { return new LocaleContext() { + @Override public Locale getLocale() { return localeResolver.resolveLocale(request); } + @Override public String toString() { return getLocale().toString(); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/FlashMap.java index 983930714c3..1e5d4ec88b1 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 172ed201c54..d7036bd8a79 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/FrameworkServlet.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/FrameworkServlet.java @@ -1077,6 +1077,7 @@ public abstract class FrameworkServlet extends HttpServletBean implements Applic * * @since 4.0 */ + @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { if (this.webApplicationContext == null @@ -1113,6 +1114,7 @@ public abstract class FrameworkServlet extends HttpServletBean implements Applic */ 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 bcd3a4d1606..f9e7f9634d7 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/HttpServletBean.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/HttpServletBean.java @@ -188,6 +188,7 @@ public abstract class HttpServletBean extends HttpServlet * @throws IllegalArgumentException if environment is not assignable to * {@code ConfigurableEnvironment}. */ + @Override public void setEnvironment(Environment environment) { Assert.isInstanceOf(ConfigurableEnvironment.class, environment); this.environment = (ConfigurableEnvironment) environment; @@ -198,6 +199,7 @@ public abstract class HttpServletBean extends HttpServlet *

If {@code null}, a new environment will be initialized via * {@link #createEnvironment()}. */ + @Override public ConfigurableEnvironment getEnvironment() { if (this.environment == null) { this.environment = this.createEnvironment(); diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/AnnotationDrivenBeanDefinitionParser.java index 7fef39364c3..49ba49a4e42 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 d842b4d689c..42f1dca52d5 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 167963844d3..05e4c8bf32a 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 d1d887700bc..9c099ede531 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 6bfdb9c56f4..f08d75e2b8f 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/ResourcesBeanDefinitionParser.java @@ -46,6 +46,7 @@ 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 e580aea38b7..82e455c7a4e 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 c3d1fc08833..5ac4c22ff71 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; } @@ -431,9 +433,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 6f6c82733c0..06747857550 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 e222c3b1260..05461d50130 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 330c1878703..e432818d50f 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 b790a1e62b2..9d121fc11a5 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; } @@ -294,6 +295,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 ccdec77d51d..deca4899059 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/handler/AbstractHandlerMethodMapping.java @@ -90,6 +90,7 @@ public abstract class AbstractHandlerMethodMapping extends AbstractHandlerMap /** * Detects handler methods at initialization. */ + @Override public void afterPropertiesSet() { initHandlerMethods(); } @@ -142,6 +143,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; } @@ -369,6 +371,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 8716f20cef6..bcf6090121c 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 c721327101e..602886ba297 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 e72e011c7ae..e19ebe57f0c 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 663786ff294..49e2e3c813d 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 42b1203d7b0..2c204ba6734 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 661bb62ac75..b736a945758 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 94c7d03723f..007090ad176 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 f56590f4698..e7397c0a1d8 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 de1bdd57c7c..07ba5fc9700 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 a0ef16cc32f..ec2c81639bd 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 f329098d65f..7c6f8349cba 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 2574e1290f8..e9a014098b9 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 cdc3f8fddfc..7f241a92cb5 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 db409ca719f..bcd28c0e540 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 50a20e51b97..5eae702cd5e 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 f62226435db..9e4baa213cc 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 d204e33e89b..1450d8a9683 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 f7f1c163d82..557992e2119 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/annotation/ResponseStatusExceptionResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolver.java index 3e5fd736592..6bff5bd8d2e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/annotation/ResponseStatusExceptionResolver.java @@ -43,6 +43,7 @@ public class ResponseStatusExceptionResolver extends AbstractHandlerExceptionRes private MessageSource messageSource; + @Override public void setMessageSource(MessageSource messageSource) { this.messageSource = messageSource; } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/AbstractMediaTypeExpression.java index bc65b27de2a..87866e0fb37 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 b7c8e0442a6..1f6befcbaca 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 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 8779839fbbd..fffbf7c923d 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 9824b80e0e5..8eb83966bb2 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 6d0e3941e6c..573133ea052 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 98130ad84ea..1c4f3e3933c 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 22471f7c3fb..7da354795ce 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 fbb7c8531af..5f10dfa8912 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 757d2744dd5..8a62923a429 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 edb113e6079..8d127ba1b10 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.isAssignableFrom(parameterType) || ResponseEntity.class.isAssignableFrom(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 9a5160ade9c..ffefd917863 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 5b511116dbc..e4fd61ceac1 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 92d180f31cd..ebdcd8fcf3b 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 a39649551aa..a54518b393e 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 514df910022..2726da4378e 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 7b960f001ce..efc48fd7040 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 89d4849c3d4..9cf3a73189f 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 83c205360b9..6cd0fcb1bf1 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(); @@ -865,6 +867,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; } @@ -875,6 +878,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 80b7678571d..f3474d102a8 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 a7473a60f18..0e2cc60956f 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 b219196c598..bc9246c046c 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 d0c3a020247..3a6770c7939 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 14c216258f7..11e97e8660b 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 f87811a950b..a1800c28580 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 de6a387330c..e68d91273ea 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 153486abb5a..d4ffdb80597 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 ed781d99c78..3ee748d461c 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 77fc7421044..0c2eff8a4b0 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 1a2e175fb1a..83a65d086f1 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 3cbcb08a8f7..08026a87352 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 f3f2e8b12ea..e8952b58f4f 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 6db27a10d4f..66c811837bc 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 eadd19b0ac0..180bc6e88a1 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 0a928be3a45..965adae67bf 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 9fe88e8ef74..d667e88a819 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 527f89d6335..d3afa478ac2 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 3f060693412..e773e2a29f2 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/BindTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/BindTag.java @@ -168,6 +168,7 @@ public 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 0102f23bc91..5ef72651f87 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EscapeBodyTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EscapeBodyTag.java @@ -64,10 +64,12 @@ 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 391935eb53b..0a5331e5703 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EvalTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/EvalTag.java @@ -162,15 +162,18 @@ public 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) { @@ -179,10 +182,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 6f9222a8704..4636b46c20b 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/NestedPathTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/NestedPathTag.java @@ -108,10 +108,12 @@ public 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 b02021fbb60..7105bc71c03 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 a71e6cb0da8..4d6cd703e0d 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/UrlTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/UrlTag.java @@ -154,6 +154,7 @@ public class UrlTag extends HtmlEscapingAwareTag implements ParamAware { this.javaScriptEscape = javaScriptEscape; } + @Override public void addParam(Param param) { this.params.add(param); } diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractDataBoundFormElementTag.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractDataBoundFormElementTag.java index 4cb3c8df467..8a9b82528c5 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractDataBoundFormElementTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/AbstractDataBoundFormElementTag.java @@ -208,6 +208,7 @@ 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 a31cc1ebe62..0bbc79ba6f6 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 6316ac8b3c2..f3da981aa86 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 efe6f5a04dd..3ccd819b5b1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/ButtonTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/ButtonTag.java @@ -55,6 +55,7 @@ public 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 29eedb0b57e..bc60a5c7e77 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/form/SelectTag.java @@ -210,6 +210,7 @@ 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 26660987349..5d73b8e4521 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 75aae57b619..c02bc45aa5a 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 686f7a2708d..7c9f0089f85 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 51b6cbc2f2f..3f2f94ed574 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractCachingViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractCachingViewResolver.java @@ -47,9 +47,11 @@ public abstract class AbstractCachingViewResolver extends WebApplicationObjectSu /** Dummy marker object for unresolved views in the cache Maps */ private static final View UNRESOLVED_VIEW = new View() { + @Override public String getContentType() { return null; } + @Override public void render(Map model, HttpServletRequest request, HttpServletResponse response) { } }; @@ -138,6 +140,7 @@ public 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 9e17d98f8fd..39f2c3b0952 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 fc17d9bd5e0..f9c1c29d836 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/AbstractView.java @@ -78,6 +78,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement * Set the view's name. Helpful for traceability. *

    Framework code must call this when constructing views. */ + @Override public void setBeanName(String beanName) { this.beanName = beanName; } @@ -103,6 +104,7 @@ public abstract class AbstractView extends WebApplicationObjectSupport implement /** * Return the content type for this view. */ + @Override public String getContentType() { return this.contentType; } @@ -251,6 +253,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 a8ca84e6645..f19239c254d 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 f7b59c3f6c2..54295286ec3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.java @@ -108,6 +108,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport this.order = order; } + @Override public int getOrder() { return this.order; } @@ -266,6 +267,7 @@ public class ContentNegotiatingViewResolver extends WebApplicationObjectSupport this.cnManagerFactoryBean.setServletContext(servletContext); } + @Override public void afterPropertiesSet() { if (this.contentNegotiationManager == null) { this.cnManagerFactoryBean.afterPropertiesSet(); @@ -273,6 +275,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); @@ -407,10 +410,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 9ffb54e7b79..dd8b1d3912c 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 0f96d4832ad..8813f4172f8 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 77c3a67e036..a3b50574ff0 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 56a3a3effb8..086d6e204e9 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 59b45a8a800..67f3ac5192c 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 5cd17b19345..5a9508b6632 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 643231404a1..d64e1e0ae30 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 ef4faaf2e0a..06b3fdabaf6 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 0ebda796a56..3b399b19328 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 05e03544558..75a30e6f54a 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 5d547a639e3..d5394519af0 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; } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java index 63fce21fa7d..064f83a71b4 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMappingTests.java @@ -119,6 +119,7 @@ public class RequestMappingHandlerMappingTests { @Test public void resolveEmbeddedValuesInPatterns() { this.handlerMapping.setEmbeddedValueResolver(new StringValueResolver() { + @Override public String resolveStringValue(String value) { return "/${pattern}/bar".equals(value) ? "/foo/bar" : value; } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/Country.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/Country.java index 4f1e72264fc..8af7c0125a9 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/Country.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/Country.java @@ -54,6 +54,7 @@ public class Country { } + @Override public String toString() { return this.name + "(" + this.isoCode + ")"; } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/ItemPet.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/ItemPet.java index e3cd3eab0d5..d4388628796 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/ItemPet.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/ItemPet.java @@ -41,6 +41,7 @@ public class ItemPet { return this.name.toUpperCase(); } + @Override public boolean equals(Object other) { if (this == other) { return true; @@ -52,6 +53,7 @@ public class ItemPet { return (this.name != null && this.name.equals(otherPet.getName())); } + @Override public int hashCode() { return this.name.hashCode(); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/OptionTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/OptionTagTests.java index 995214dd082..c9396899c6e 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/OptionTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/OptionTagTests.java @@ -532,6 +532,7 @@ public class OptionTagTests extends AbstractHtmlElementTagTests { return new RulesVariant(rules, variant); } + @Override public boolean equals(Object obj) { if (obj instanceof RulesVariant) { RulesVariant other = (RulesVariant) obj; @@ -540,6 +541,7 @@ public class OptionTagTests extends AbstractHtmlElementTagTests { return false; } + @Override public int hashCode() { return this.toId().hashCode(); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/TestTypes.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/TestTypes.java index 555111266c5..8be784fc1fa 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/TestTypes.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/TestTypes.java @@ -33,6 +33,7 @@ enum TestEnum { return "Value: " + name(); } + @Override public String toString() { return "TestEnum: " + name(); } diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/StandardWebSocketSessionAdapter.java b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/StandardWebSocketSessionAdapter.java index 8c5ccaff905..45f8e6cd3c6 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/adapter/StandardWebSocketSessionAdapter.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/adapter/StandardWebSocketSessionAdapter.java @@ -47,6 +47,7 @@ public class StandardWebSocketSessionAdapter extends AbstractWebSocketSesssionAd private String remoteAddress; + @Override public void initSession(javax.websocket.Session session) { Assert.notNull(session, "session is required"); this.session = session; diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/client/ConnectionManagerSupport.java b/spring-websocket/src/main/java/org/springframework/web/socket/client/ConnectionManagerSupport.java index 6cfe503d617..f01c04ce14e 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/client/ConnectionManagerSupport.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/client/ConnectionManagerSupport.java @@ -67,6 +67,7 @@ public abstract class ConnectionManagerSupport implements SmartLifecycle { * connection manager will connect to the remote endpoint upon a * ContextRefreshedEvent. */ + @Override public boolean isAutoStartup() { return this.autoStartup; } @@ -86,6 +87,7 @@ public abstract class ConnectionManagerSupport implements SmartLifecycle { * Return the phase in which this endpoint connection factory will be auto-connected * and stopped. */ + @Override public int getPhase() { return this.phase; } @@ -97,6 +99,7 @@ public abstract class ConnectionManagerSupport implements SmartLifecycle { /** * Return whether this ConnectionManager has been started. */ + @Override public boolean isRunning() { synchronized (this.lifecycleMonitor) { return this.isRunning; @@ -107,6 +110,7 @@ public abstract class ConnectionManagerSupport implements SmartLifecycle { * Connect to the configured {@link #setDefaultUri(URI) default URI}. If already * connected, the method has no impact. */ + @Override public final void start() { synchronized (this.lifecycleMonitor) { if (!isRunning()) { @@ -139,6 +143,7 @@ public abstract class ConnectionManagerSupport implements SmartLifecycle { protected abstract void openConnection() throws Exception; + @Override public final void stop() { synchronized (this.lifecycleMonitor) { if (isRunning()) { @@ -168,6 +173,7 @@ public abstract class ConnectionManagerSupport implements SmartLifecycle { protected abstract void closeConnection() throws Exception; + @Override public final void stop(Runnable callback) { synchronized (this.lifecycleMonitor) { this.stop(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractServerSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractServerSockJsSession.java index 710e5e7d337..e401b4bfec3 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractServerSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractServerSockJsSession.java @@ -51,6 +51,7 @@ public abstract class AbstractServerSockJsSession extends AbstractSockJsSession return this.sockJsConfig; } + @Override public final synchronized void sendMessage(WebSocketMessage message) throws IOException { Assert.isTrue(!isClosed(), "Cannot send a message when session is closed"); Assert.isInstanceOf(TextMessage.class, message, "Expected text message: " + message); @@ -132,6 +133,7 @@ public abstract class AbstractServerSockJsSession extends AbstractSockJsSession } Date time = new Date(System.currentTimeMillis() + getSockJsConfig().getHeartbeatTime()); this.heartbeatTask = getSockJsConfig().getTaskScheduler().schedule(new Runnable() { + @Override public void run() { try { sendHeartbeat(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsService.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsService.java index 0abf1cc5230..ea8089ccd16 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsService.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsService.java @@ -130,6 +130,7 @@ public abstract class AbstractSockJsService implements SockJsService, SockJsConf // sort with longest prefix at the top Collections.sort(this.sockJsPrefixes, Collections.reverseOrder(new Comparator() { + @Override public int compare(String o1, String o2) { return new Integer(o1.length()).compareTo(new Integer(o2.length())); } @@ -166,6 +167,7 @@ public abstract class AbstractSockJsService implements SockJsService, SockJsConf return this; } + @Override public int getStreamBytesLimit() { return streamBytesLimit; } @@ -196,10 +198,12 @@ public abstract class AbstractSockJsService implements SockJsService, SockJsConf return this; } + @Override public long getHeartbeatTime() { return this.heartbeatTime; } + @Override public TaskScheduler getTaskScheduler() { return this.taskScheduler; } @@ -249,6 +253,7 @@ public abstract class AbstractSockJsService implements SockJsService, SockJsConf * * @throws Exception */ + @Override public final void handleRequest(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler handler) throws IOException, TransportErrorException { @@ -438,6 +443,7 @@ public abstract class AbstractSockJsService implements SockJsService, SockJsConf private static final String INFO_CONTENT = "{\"entropy\":%s,\"origins\":[\"*:*\"],\"cookie_needed\":%s,\"websocket\":%s}"; + @Override public void handle(ServerHttpRequest request, ServerHttpResponse response) throws IOException { if (HttpMethod.GET.equals(request.getMethod())) { @@ -483,6 +489,7 @@ public abstract class AbstractSockJsService implements SockJsService, SockJsConf "\n" + ""; + @Override public void handle(ServerHttpRequest request, ServerHttpResponse response) throws IOException { if (!HttpMethod.GET.equals(request.getMethod())) { diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsSession.java index eb461db0727..571dc8ea584 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/AbstractSockJsSession.java @@ -70,6 +70,7 @@ public abstract class AbstractSockJsSession implements ConfigurableWebSocketSess this.handler = webSocketHandler; } + @Override public String getId() { return this.id; } @@ -89,26 +90,32 @@ public abstract class AbstractSockJsSession implements ConfigurableWebSocketSess return "wss".equals(this.uri.getSchemeSpecificPart()); } + @Override public String getRemoteHostName() { return this.remoteHostName; } + @Override public void setRemoteHostName(String remoteHostName) { this.remoteHostName = remoteHostName; } + @Override public String getRemoteAddress() { return this.remoteAddress; } + @Override public void setRemoteAddress(String remoteAddress) { this.remoteAddress = remoteAddress; } + @Override public Principal getPrincipal() { return this.principal; } + @Override public void setPrincipal(Principal principal) { this.principal = principal; } @@ -117,6 +124,7 @@ public abstract class AbstractSockJsSession implements ConfigurableWebSocketSess return State.NEW.equals(this.state); } + @Override public boolean isOpen() { return State.OPEN.equals(this.state); } @@ -216,6 +224,7 @@ public abstract class AbstractSockJsSession implements ConfigurableWebSocketSess * {@inheritDoc} *

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

    Performs cleanup and notifies the {@link SockJsHandler}. */ + @Override public final void close(CloseStatus status) throws IOException { if (isOpen()) { if (logger.isDebugEnabled()) { diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsFrame.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsFrame.java index c1a52ef37dc..d70a5002322 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsFrame.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsFrame.java @@ -107,6 +107,7 @@ public class SockJsFrame { || (ch >= '\uFFF0' && ch <= '\uFFFF') || (ch >= '\uD800' && ch <= '\uDFFF'); } + @Override public String toString() { String result = this.content; if (result.length() > 80) { @@ -161,6 +162,7 @@ public class SockJsFrame { * frame content is to be inserted; e.g. "data: %s\r\n\r\n" * @return new SockJsFrame instance with the formatted content */ + @Override public SockJsFrame format(SockJsFrame frame) { String content = String.format(this.format, preProcessContent(frame.getContent())); return new SockJsFrame(content); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/DefaultSockJsService.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/DefaultSockJsService.java index 6f8e497678a..48d25224d94 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/DefaultSockJsService.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/DefaultSockJsService.java @@ -245,6 +245,7 @@ public class DefaultSockJsService extends AbstractSockJsService { private void scheduleSessionTask() { this.sessionCleanupTask = getTaskScheduler().scheduleAtFixedRate(new Runnable() { + @Override public void run() { try { int count = sessions.size(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/AbstractHttpServerSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/AbstractHttpServerSockJsSession.java index be38656c676..51b4bd42928 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/AbstractHttpServerSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/AbstractHttpServerSockJsSession.java @@ -117,6 +117,7 @@ public abstract class AbstractHttpServerSockJsSession extends AbstractServerSock } + @Override public synchronized boolean isActive() { return ((this.asyncRequest != null) && (!this.asyncRequest.isAsyncCompleted())); } @@ -133,6 +134,7 @@ public abstract class AbstractHttpServerSockJsSession extends AbstractServerSock return this.response; } + @Override protected final synchronized void sendMessageInternal(String message) throws IOException { this.messageCache.add(message); tryFlushCache(); @@ -170,6 +172,7 @@ public abstract class AbstractHttpServerSockJsSession extends AbstractServerSock this.response = null; } + @Override protected synchronized void writeFrameInternal(SockJsFrame frame) throws IOException { if (isActive()) { frame = this.frameFormat.format(frame); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/StreamingServerSockJsSession.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/StreamingServerSockJsSession.java index fe37568a61b..c0f176b8918 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/StreamingServerSockJsSession.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/StreamingServerSockJsSession.java @@ -48,6 +48,7 @@ public class StreamingServerSockJsSession extends AbstractHttpServerSockJsSessio } } + @Override protected void flushCache() throws IOException { cancelHeartbeat(); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/XhrPollingTransportHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/XhrPollingTransportHandler.java index 93adce579e8..1c5bc97f8df 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/XhrPollingTransportHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/XhrPollingTransportHandler.java @@ -50,6 +50,7 @@ public class XhrPollingTransportHandler extends AbstractHttpSendingTransportHand return new DefaultFrameFormat("%s\n"); } + @Override public PollingServerSockJsSession createSession(String sessionId, WebSocketHandler handler) { Assert.notNull(getSockJsConfig(), "This transport requires SockJsConfiguration"); return new PollingServerSockJsSession(sessionId, getSockJsConfig(), handler); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/AbstractSockJsServiceTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/AbstractSockJsServiceTests.java index fcc53251275..01169740e97 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/AbstractSockJsServiceTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/AbstractSockJsServiceTests.java @@ -40,6 +40,7 @@ public class AbstractSockJsServiceTests extends AbstractHttpRequestTests { private WebSocketHandler handler; + @Override @Before public void setUp() { super.setUp(); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubSockJsConfig.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubSockJsConfig.java index 0f2a4c4f05b..5b002846391 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubSockJsConfig.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/StubSockJsConfig.java @@ -32,6 +32,7 @@ public class StubSockJsConfig implements SockJsConfiguration { private TaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); + @Override public int getStreamBytesLimit() { return streamBytesLimit; } @@ -40,6 +41,7 @@ public class StubSockJsConfig implements SockJsConfiguration { this.streamBytesLimit = streamBytesLimit; } + @Override public long getHeartbeatTime() { return heartbeatTime; } @@ -48,6 +50,7 @@ public class StubSockJsConfig implements SockJsConfiguration { this.heartbeatTime = heartbeatTime; } + @Override public TaskScheduler getTaskScheduler() { return taskScheduler; } diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java index ac93207c5cf..ccf42cea435 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/DefaultSockJsServiceTests.java @@ -38,6 +38,7 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { private DefaultSockJsService service; + @Override @Before public void setUp() { super.setUp();