You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by hu...@apache.org on 2018/04/21 06:20:12 UTC

[incubator-dubbo] branch master updated: Add missing @Override to classes (#1553)

This is an automated email from the ASF dual-hosted git repository.

huxing pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/master by this push:
     new 60e3b19  Add missing @Override to classes (#1553)
60e3b19 is described below

commit 60e3b19db518483296ff73245e548ce88c84f5a5
Author: leyou240 <le...@live.cn>
AuthorDate: Sat Apr 21 14:20:09 2018 +0800

    Add missing @Override to classes (#1553)
---
 .../cluster/configurator/AbstractConfigurator.java |  3 ++
 .../configurator/absent/AbsentConfigurator.java    |  1 +
 .../absent/AbsentConfiguratorFactory.java          |  1 +
 .../override/OverrideConfigurator.java             |  1 +
 .../override/OverrideConfiguratorFactory.java      |  1 +
 .../rpc/cluster/directory/AbstractDirectory.java   |  5 +-
 .../rpc/cluster/directory/StaticDirectory.java     |  5 +-
 .../cluster/loadbalance/AbstractLoadBalance.java   |  3 +-
 .../loadbalance/LeastActiveLoadBalance.java        |  3 +-
 .../rpc/cluster/loadbalance/RandomLoadBalance.java |  3 +-
 .../cluster/loadbalance/RoundRobinLoadBalance.java |  3 +-
 .../dubbo/rpc/cluster/merger/ArrayMerger.java      |  1 +
 .../rpc/cluster/merger/BooleanArrayMerger.java     |  1 +
 .../dubbo/rpc/cluster/merger/ByteArrayMerger.java  |  1 +
 .../dubbo/rpc/cluster/merger/CharArrayMerger.java  |  1 +
 .../rpc/cluster/merger/DoubleArrayMerger.java      |  1 +
 .../dubbo/rpc/cluster/merger/FloatArrayMerger.java |  1 +
 .../dubbo/rpc/cluster/merger/IntArrayMerger.java   |  1 +
 .../dubbo/rpc/cluster/merger/ListMerger.java       |  1 +
 .../dubbo/rpc/cluster/merger/LongArrayMerger.java  |  1 +
 .../dubbo/rpc/cluster/merger/MapMerger.java        |  1 +
 .../dubbo/rpc/cluster/merger/SetMerger.java        |  1 +
 .../dubbo/rpc/cluster/merger/ShortArrayMerger.java |  1 +
 .../rpc/cluster/router/MockInvokersSelector.java   |  3 ++
 .../cluster/router/condition/ConditionRouter.java  |  5 +-
 .../router/condition/ConditionRouterFactory.java   |  3 +-
 .../rpc/cluster/router/file/FileRouterFactory.java |  3 +-
 .../rpc/cluster/router/script/ScriptRouter.java    |  5 +-
 .../cluster/router/script/ScriptRouterFactory.java |  3 +-
 .../cluster/support/AbstractClusterInvoker.java    |  5 ++
 .../rpc/cluster/support/AvailableCluster.java      |  4 +-
 .../cluster/support/AvailableClusterInvoker.java   |  3 +-
 .../rpc/cluster/support/BroadcastCluster.java      |  3 +-
 .../cluster/support/BroadcastClusterInvoker.java   |  3 +-
 .../dubbo/rpc/cluster/support/FailbackCluster.java |  3 +-
 .../cluster/support/FailbackClusterInvoker.java    |  4 +-
 .../dubbo/rpc/cluster/support/FailfastCluster.java |  3 +-
 .../cluster/support/FailfastClusterInvoker.java    |  3 +-
 .../dubbo/rpc/cluster/support/FailoverCluster.java |  3 +-
 .../cluster/support/FailoverClusterInvoker.java    |  3 +-
 .../dubbo/rpc/cluster/support/FailsafeCluster.java |  3 +-
 .../cluster/support/FailsafeClusterInvoker.java    |  3 +-
 .../dubbo/rpc/cluster/support/ForkingCluster.java  |  3 +-
 .../rpc/cluster/support/ForkingClusterInvoker.java |  4 +-
 .../rpc/cluster/support/MergeableCluster.java      |  1 +
 .../cluster/support/MergeableClusterInvoker.java   |  6 +++
 .../support/wrapper/MockClusterInvoker.java        |  5 ++
 .../support/wrapper/MockClusterWrapper.java        |  1 +
 .../dubbo/rpc/cluster/router/MockInvoker.java      |  5 +-
 .../support/AbstractClusterInvokerTest.java        |  5 +-
 .../java/com/alibaba/dubbo/common/Parameters.java  |  4 +-
 .../main/java/com/alibaba/dubbo/common/URL.java    |  1 +
 .../dubbo/common/beanutil/JavaBeanDescriptor.java  |  1 +
 .../com/alibaba/dubbo/common/bytecode/Proxy.java   |  4 +-
 .../com/alibaba/dubbo/common/bytecode/Wrapper.java | 10 +++-
 .../common/compiler/support/AbstractCompiler.java  |  1 +
 .../common/compiler/support/AdaptiveCompiler.java  |  1 +
 .../dubbo/common/compiler/support/JdkCompiler.java |  1 +
 .../factory/AdaptiveExtensionFactory.java          |  1 +
 .../extension/factory/SpiExtensionFactory.java     |  1 +
 .../extension/support/ActivateComparator.java      |  1 +
 .../com/alibaba/dubbo/common/io/StreamUtils.java   | 10 +++-
 .../common/io/UnsafeByteArrayInputStream.java      | 10 +++-
 .../common/io/UnsafeByteArrayOutputStream.java     |  6 ++-
 .../dubbo/common/io/UnsafeStringReader.java        |  6 ++-
 .../dubbo/common/json/GenericJSONConverter.java    | 38 +++++++++++++-
 .../com/alibaba/dubbo/common/json/J2oVisitor.java  | 12 ++++-
 .../com/alibaba/dubbo/common/json/JSONArray.java   |  3 +-
 .../com/alibaba/dubbo/common/json/JSONObject.java  |  3 +-
 .../alibaba/dubbo/common/logger/jcl/JclLogger.java | 20 +++++++
 .../dubbo/common/logger/jcl/JclLoggerAdapter.java  |  6 +++
 .../alibaba/dubbo/common/logger/jdk/JdkLogger.java | 22 +++++++-
 .../dubbo/common/logger/jdk/JdkLoggerAdapter.java  |  8 ++-
 .../dubbo/common/logger/log4j/Log4jLogger.java     | 22 +++++++-
 .../common/logger/log4j/Log4jLoggerAdapter.java    |  8 ++-
 .../dubbo/common/logger/slf4j/Slf4jLogger.java     | 22 +++++++-
 .../common/logger/slf4j/Slf4jLoggerAdapter.java    |  6 +++
 .../common/logger/support/FailsafeLogger.java      | 22 +++++++-
 .../common/status/support/LoadStatusChecker.java   |  3 +-
 .../common/status/support/MemoryStatusChecker.java |  3 +-
 .../common/store/support/SimpleDataStore.java      |  4 ++
 .../support/cached/CachedThreadPool.java           |  3 +-
 .../threadpool/support/fixed/FixedThreadPool.java  |  3 +-
 .../support/limited/LimitedThreadPool.java         |  1 +
 .../dubbo/common/utils/AtomicPositiveInteger.java  |  9 +++-
 .../dubbo/common/utils/CollectionUtils.java        |  3 +-
 .../dubbo/common/utils/ConcurrentHashSet.java      |  9 +++-
 .../alibaba/dubbo/common/utils/DubboAppender.java  |  1 +
 .../alibaba/dubbo/common/utils/ExecutorUtil.java   |  3 +-
 .../dubbo/common/utils/NamedThreadFactory.java     |  3 +-
 .../com/alibaba/dubbo/common/utils/PojoUtils.java  |  3 +-
 .../com/alibaba/dubbo/config/AbstractConfig.java   |  3 +-
 .../dubbo/config/AbstractReferenceConfig.java      |  4 +-
 .../dubbo/config/AbstractServiceConfig.java        |  4 +-
 .../com/alibaba/dubbo/config/ServiceConfig.java    |  1 +
 .../invoker/DelegateProviderMetaDataInvoker.java   |  5 ++
 .../dubbo/config/utils/ReferenceConfigCache.java   |  1 +
 .../alibaba/dubbo/config/support/MockProtocol.java |  7 ++-
 .../alibaba/dubbo/config/support/MockRegistry.java |  9 +++-
 .../dubbo/config/support/MockRegistryFactory.java  |  3 +-
 .../dubbo/config/spring/AnnotationBean.java        |  5 ++
 .../alibaba/dubbo/config/spring/ReferenceBean.java |  7 ++-
 .../alibaba/dubbo/config/spring/ServiceBean.java   |  8 ++-
 .../DubboClassPathBeanDefinitionScanner.java       |  2 +
 .../spring/extension/SpringExtensionFactory.java   |  1 +
 .../schema/AnnotationBeanDefinitionParser.java     |  3 ++
 .../spring/schema/DubboBeanDefinitionParser.java   |  1 +
 .../spring/schema/DubboNamespaceHandler.java       |  3 +-
 .../spring/status/DataSourceStatusChecker.java     |  3 +-
 .../config/spring/status/SpringStatusChecker.java  |  3 +-
 .../config/spring/AbstractRegistryService.java     |  7 ++-
 .../dubbo/config/spring/registry/MockRegistry.java |  7 +++
 .../spring/registry/MockRegistryFactory.java       |  1 +
 .../java/com/alibaba/dubbo/container/Main.java     |  3 +-
 .../dubbo/container/log4j/Log4jContainer.java      |  4 +-
 .../dubbo/container/logback/LogbackContainer.java  |  4 +-
 .../dubbo/container/spring/SpringContainer.java    |  4 +-
 .../dubbo/demo/provider/DemoServiceImpl.java       |  1 +
 .../alibaba/dubbo/cache/filter/CacheFilter.java    |  1 +
 .../dubbo/cache/support/AbstractCacheFactory.java  |  1 +
 .../alibaba/dubbo/cache/support/jcache/JCache.java |  2 +
 .../dubbo/cache/support/jcache/JCacheFactory.java  |  1 +
 .../alibaba/dubbo/cache/support/lru/LruCache.java  |  2 +
 .../dubbo/cache/support/lru/LruCacheFactory.java   |  1 +
 .../support/threadlocal/ThreadLocalCache.java      |  2 +
 .../threadlocal/ThreadLocalCacheFactory.java       |  1 +
 .../dubbo/validation/filter/ValidationFilter.java  |  1 +
 .../validation/support/AbstractValidation.java     |  1 +
 .../validation/support/jvalidation/JValidator.java |  1 +
 .../monitor/support/AbstractMonitorFactory.java    |  1 +
 .../dubbo/monitor/support/MonitorFilter.java       |  3 +-
 .../support/AbstractMonitorFactoryTest.java        |  4 +-
 .../dubbo/monitor/support/MonitorFilterTest.java   |  8 ++-
 .../alibaba/dubbo/monitor/dubbo/DubboMonitor.java  |  8 ++-
 .../dubbo/monitor/dubbo/DubboMonitorTest.java      |  5 +-
 .../registry/integration/RegistryDirectory.java    |  7 +++
 .../registry/integration/RegistryProtocol.java     |  9 ++++
 .../registry/status/RegistryStatusChecker.java     |  3 +-
 .../dubbo/registry/support/AbstractRegistry.java   | 12 ++++-
 .../registry/support/AbstractRegistryFactory.java  |  3 +-
 .../registry/support/ConsumerInvokerWrapper.java   |  5 ++
 .../dubbo/registry/support/FailbackRegistry.java   |  3 +-
 .../registry/support/ProviderInvokerWrapper.java   |  5 ++
 .../support/AbstractRegistryFactoryTest.java       |  9 +++-
 .../registry/support/FailbackRegistryTest.java     |  4 ++
 .../dubbo/registry/dubbo/DubboRegistry.java        | 10 +++-
 .../dubbo/registry/dubbo/DubboRegistryFactory.java |  3 +-
 .../registry/dubbo/AbstractRegistryService.java    |  7 ++-
 .../alibaba/dubbo/registry/dubbo/MockChannel.java  | 16 +++++-
 .../alibaba/dubbo/registry/dubbo/MockedClient.java | 18 ++++++-
 .../registry/dubbo/RegistryDirectoryTest.java      |  9 +++-
 .../dubbo/registry/dubbo/RegistryProtocolTest.java |  3 +-
 .../registry/multicast/MulticastRegistry.java      | 15 +++++-
 .../multicast/MulticastRegistryFactory.java        |  3 +-
 .../registry/multicast/MulticastRegistryTest.java  |  3 +-
 .../dubbo/registry/redis/RedisRegistry.java        |  2 +
 .../registry/zookeeper/ZookeeperRegistry.java      | 12 ++++-
 .../zookeeper/ZookeeperRegistryFactory.java        |  3 +-
 .../remoting/buffer/AbstractChannelBuffer.java     | 43 +++++++++++++++
 .../buffer/ByteBufferBackedChannelBuffer.java      | 18 +++++++
 .../dubbo/remoting/buffer/ChannelBuffer.java       |  1 +
 .../buffer/DirectChannelBufferFactory.java         |  3 ++
 .../remoting/buffer/DynamicChannelBuffer.java      | 18 +++++++
 .../dubbo/remoting/buffer/HeapChannelBuffer.java   | 18 +++++++
 .../remoting/buffer/HeapChannelBufferFactory.java  |  3 ++
 .../dubbo/remoting/exchange/ExchangeChannel.java   |  3 +-
 .../remoting/exchange/codec/ExchangeCodec.java     |  3 ++
 .../remoting/exchange/support/DefaultFuture.java   |  7 ++-
 .../exchange/support/ExchangeHandlerAdapter.java   |  3 +-
 .../support/ExchangeHandlerDispatcher.java         |  9 +++-
 .../exchange/support/ExchangeServerDelegate.java   | 17 +++++-
 .../remoting/exchange/support/MultiMessage.java    |  1 +
 .../exchange/support/ReplierDispatcher.java        |  3 +-
 .../remoting/exchange/support/SimpleFuture.java    |  6 ++-
 .../support/header/HeaderExchangeChannel.java      | 19 ++++++-
 .../support/header/HeaderExchangeClient.java       | 23 +++++++-
 .../support/header/HeaderExchangeHandler.java      |  8 ++-
 .../support/header/HeaderExchangeServer.java       | 18 ++++++-
 .../exchange/support/header/HeaderExchanger.java   |  4 +-
 .../exchange/support/header/HeartBeatTask.java     |  1 +
 .../exchange/support/header/HeartbeatHandler.java  |  4 ++
 .../dubbo/remoting/telnet/codec/TelnetCodec.java   |  4 +-
 .../telnet/support/TelnetHandlerAdapter.java       |  1 +
 .../telnet/support/command/ClearTelnetHandler.java |  3 +-
 .../telnet/support/command/ExitTelnetHandler.java  |  3 +-
 .../telnet/support/command/HelpTelnetHandler.java  |  3 +-
 .../telnet/support/command/LogTelnetHandler.java   |  3 +-
 .../support/command/StatusTelnetHandler.java       |  3 +-
 .../dubbo/remoting/transport/AbstractChannel.java  |  3 +-
 .../transport/AbstractChannelHandlerDelegate.java  |  6 +++
 .../dubbo/remoting/transport/AbstractClient.java   | 12 +++++
 .../dubbo/remoting/transport/AbstractEndpoint.java |  3 +-
 .../dubbo/remoting/transport/AbstractPeer.java     | 14 ++++-
 .../dubbo/remoting/transport/AbstractServer.java   |  7 ++-
 .../dubbo/remoting/transport/ChannelDelegate.java  | 16 +++++-
 .../remoting/transport/ChannelHandlerAdapter.java  |  7 ++-
 .../transport/ChannelHandlerDispatcher.java        |  7 ++-
 .../dubbo/remoting/transport/ClientDelegate.java   | 19 ++++++-
 .../dubbo/remoting/transport/DecodeHandler.java    |  1 +
 .../dubbo/remoting/transport/ServerDelegate.java   | 15 +++++-
 .../remoting/transport/codec/CodecAdapter.java     |  2 +
 .../remoting/transport/codec/TransportCodec.java   |  4 +-
 .../transport/dispatcher/ChannelEventRunnable.java |  1 +
 .../dispatcher/WrappedChannelHandler.java          |  8 ++-
 .../dispatcher/all/AllChannelHandler.java          |  6 ++-
 .../transport/dispatcher/all/AllDispatcher.java    |  3 +-
 .../ConnectionOrderedChannelHandler.java           |  6 ++-
 .../connection/ConnectionOrderedDispatcher.java    |  3 +-
 .../dispatcher/direct/DirectDispatcher.java        |  3 +-
 .../execution/ExecutionChannelHandler.java         |  6 ++-
 .../dispatcher/execution/ExecutionDispatcher.java  |  3 +-
 .../message/MessageOnlyChannelHandler.java         |  3 +-
 .../dispatcher/message/MessageOnlyDispatcher.java  |  3 +-
 .../alibaba/dubbo/remoting/ChanelHandlerTest.java  |  4 +-
 .../dubbo/remoting/PerformanceClientTest.java      |  4 +-
 .../com/alibaba/dubbo/remoting/TelnetServer.java   |  4 +-
 .../dubbo/remoting/codec/AbstractMockChannel.java  | 14 +++++
 .../exchange/support/header/MockChannel.java       | 14 +++++
 .../handler/HeaderExchangeHandlerTest.java         |  4 +-
 .../dubbo/remoting/handler/MockedChannel.java      | 14 +++++
 .../remoting/handler/MockedChannelHandler.java     |  5 ++
 .../remoting/transport/grizzly/GrizzlyChannel.java | 11 +++-
 .../remoting/transport/grizzly/GrizzlyServer.java  |  5 +-
 .../transport/grizzly/GrizzlyTransporter.java      |  4 +-
 .../dubbo/remoting/http/jetty/JettyHttpBinder.java |  3 +-
 .../dubbo/remoting/http/jetty/JettyHttpServer.java |  3 +-
 .../remoting/http/servlet/BootstrapListener.java   |  2 +
 .../remoting/http/servlet/DispatcherServlet.java   |  3 +-
 .../remoting/http/servlet/ServletHttpBinder.java   |  3 +-
 .../remoting/http/support/AbstractHttpServer.java  | 10 +++-
 .../remoting/http/tomcat/TomcatHttpBinder.java     |  3 +-
 .../remoting/http/tomcat/TomcatHttpServer.java     |  3 +-
 .../dubbo/remoting/transport/mina/MinaChannel.java | 11 +++-
 .../dubbo/remoting/transport/mina/MinaClient.java  |  3 +-
 .../remoting/transport/mina/MinaCodecAdapter.java  |  9 +++-
 .../dubbo/remoting/transport/mina/MinaServer.java  |  5 +-
 .../remoting/transport/mina/MinaTransporter.java   |  2 +
 .../transport/netty/NettyBackedChannelBuffer.java  | 61 ++++++++++++++++++++++
 .../netty/NettyBackedChannelBufferFactory.java     |  3 ++
 .../remoting/transport/netty/NettyChannel.java     | 11 +++-
 .../remoting/transport/netty/NettyClient.java      |  4 +-
 .../remoting/transport/netty/NettyHelper.java      | 12 +++++
 .../remoting/transport/netty/NettyServer.java      |  6 ++-
 .../remoting/transport/netty/NettyTransporter.java |  2 +
 .../support/header/HeartbeatHandlerTest.java       |  5 ++
 .../transport/netty/ClientReconnectTest.java       |  5 +-
 .../remoting/transport/netty/ThreadNameTest.java   |  5 ++
 .../transport/netty4/NettyBackedChannelBuffer.java | 61 ++++++++++++++++++++++
 .../remoting/transport/netty4/NettyChannel.java    | 11 +++-
 .../remoting/transport/netty4/NettyClient.java     |  2 +
 .../transport/netty4/NettyCodecAdapter.java        |  4 +-
 .../remoting/transport/netty4/NettyServer.java     |  5 +-
 .../transport/netty4/NettyTransporter.java         |  2 +
 .../transport/netty4/logging/NettyHelper.java      | 30 +++++++++++
 .../exchange/support/AbstractExchangeGroup.java    |  7 ++-
 .../p2p/exchange/support/ExchangeServerPeer.java   |  3 +-
 .../p2p/exchange/support/FileExchangeGroup.java    |  4 +-
 .../exchange/support/FileExchangeNetworker.java    |  3 +-
 .../exchange/support/MulticastExchangeGroup.java   |  3 +-
 .../support/MulticastExchangeNetworker.java        |  3 +-
 .../dubbo/remoting/p2p/support/AbstractGroup.java  |  6 ++-
 .../dubbo/remoting/p2p/support/FileGroup.java      |  5 +-
 .../dubbo/remoting/p2p/support/FileNetworker.java  |  3 +-
 .../dubbo/remoting/p2p/support/MulticastGroup.java |  3 +-
 .../remoting/p2p/support/MulticastNetworker.java   |  3 +-
 .../dubbo/remoting/p2p/support/ServerPeer.java     |  3 +-
 .../zookeeper/curator/CuratorZookeeperClient.java  | 12 +++++
 .../curator/CuratorZookeeperTransporter.java       |  1 +
 .../zookeeper/support/AbstractZookeeperClient.java |  7 +++
 .../zkclient/ZkclientZookeeperClient.java          | 13 +++++
 .../zkclient/ZkclientZookeeperTransporter.java     |  1 +
 .../java/com/alibaba/dubbo/rpc/RpcContext.java     |  8 ++-
 .../java/com/alibaba/dubbo/rpc/RpcInvocation.java  |  9 +++-
 .../main/java/com/alibaba/dubbo/rpc/RpcResult.java | 10 +++-
 .../alibaba/dubbo/rpc/filter/AccessLogFilter.java  |  4 +-
 .../dubbo/rpc/filter/ActiveLimitFilter.java        |  3 +-
 .../dubbo/rpc/filter/ClassLoaderFilter.java        |  3 +-
 .../alibaba/dubbo/rpc/filter/CompatibleFilter.java |  3 +-
 .../dubbo/rpc/filter/ConsumerContextFilter.java    |  3 +-
 .../alibaba/dubbo/rpc/filter/ContextFilter.java    |  3 +-
 .../alibaba/dubbo/rpc/filter/DeprecatedFilter.java |  3 +-
 .../com/alibaba/dubbo/rpc/filter/EchoFilter.java   |  3 +-
 .../alibaba/dubbo/rpc/filter/ExceptionFilter.java  |  3 +-
 .../dubbo/rpc/filter/ExecuteLimitFilter.java       |  3 +-
 .../alibaba/dubbo/rpc/filter/GenericFilter.java    |  3 +-
 .../dubbo/rpc/filter/GenericImplFilter.java        |  3 +-
 .../alibaba/dubbo/rpc/filter/TimeoutFilter.java    |  3 +-
 .../com/alibaba/dubbo/rpc/filter/TokenFilter.java  |  3 +-
 .../alibaba/dubbo/rpc/filter/TpsLimitFilter.java   |  1 +
 .../dubbo/rpc/filter/tps/DefaultTPSLimiter.java    |  1 +
 .../com/alibaba/dubbo/rpc/filter/tps/StatItem.java |  1 +
 .../rpc/listener/DeprecatedInvokerListener.java    |  3 +-
 .../rpc/listener/ExporterListenerAdapter.java      |  4 +-
 .../dubbo/rpc/listener/InvokerListenerAdapter.java |  4 +-
 .../rpc/listener/ListenerExporterWrapper.java      |  4 +-
 .../dubbo/rpc/listener/ListenerInvokerWrapper.java |  5 ++
 .../dubbo/rpc/protocol/AbstractExporter.java       |  5 +-
 .../dubbo/rpc/protocol/AbstractInvoker.java        |  8 ++-
 .../dubbo/rpc/protocol/AbstractProtocol.java       |  3 +-
 .../dubbo/rpc/protocol/AbstractProxyProtocol.java  |  3 ++
 .../alibaba/dubbo/rpc/protocol/InvokerWrapper.java |  7 ++-
 .../dubbo/rpc/protocol/ProtocolFilterWrapper.java  | 11 +++-
 .../rpc/protocol/ProtocolListenerWrapper.java      |  6 ++-
 .../dubbo/rpc/proxy/AbstractProxyFactory.java      |  3 +-
 .../dubbo/rpc/proxy/AbstractProxyInvoker.java      |  5 ++
 .../dubbo/rpc/proxy/InvokerInvocationHandler.java  |  3 +-
 .../rpc/proxy/javassist/JavassistProxyFactory.java |  4 +-
 .../dubbo/rpc/proxy/jdk/JdkProxyFactory.java       |  4 +-
 .../rpc/proxy/wrapper/StubProxyFactoryWrapper.java |  4 +-
 .../dubbo/rpc/support/DelegateExporter.java        |  2 +
 .../alibaba/dubbo/rpc/support/DelegateInvoker.java |  5 ++
 .../com/alibaba/dubbo/rpc/support/MockInvoker.java |  7 ++-
 .../alibaba/dubbo/rpc/support/MockProtocol.java    |  3 ++
 .../com/alibaba/dubbo/rpc/support/MyInvoker.java   |  5 +-
 .../rpc/protocol/dubbo/ChannelWrappedInvoker.java  | 18 ++++++-
 .../protocol/dubbo/DecodeableRpcInvocation.java    |  3 ++
 .../rpc/protocol/dubbo/DecodeableRpcResult.java    |  3 ++
 .../dubbo/rpc/protocol/dubbo/DubboCodec.java       |  3 +-
 .../dubbo/rpc/protocol/dubbo/DubboCountCodec.java  |  2 +
 .../dubbo/rpc/protocol/dubbo/DubboInvoker.java     |  3 +-
 .../dubbo/rpc/protocol/dubbo/DubboProtocol.java    |  7 ++-
 .../dubbo/rpc/protocol/dubbo/FutureAdapter.java    |  7 ++-
 .../protocol/dubbo/LazyConnectExchangeClient.java  | 22 +++++++-
 .../dubbo/ReferenceCountExchangeClient.java        | 23 +++++++-
 .../rpc/protocol/dubbo/filter/FutureFilter.java    |  5 +-
 .../rpc/protocol/dubbo/filter/TraceFilter.java     |  3 +-
 .../protocol/dubbo/status/ServerStatusChecker.java |  3 +-
 .../dubbo/status/ThreadPoolStatusChecker.java      |  3 +-
 .../protocol/dubbo/telnet/ChangeTelnetHandler.java |  3 +-
 .../protocol/dubbo/telnet/CountTelnetHandler.java  |  4 +-
 .../dubbo/telnet/CurrentTelnetHandler.java         |  3 +-
 .../protocol/dubbo/telnet/InvokeTelnetHandler.java |  3 +-
 .../protocol/dubbo/telnet/ListTelnetHandler.java   |  3 +-
 .../protocol/dubbo/telnet/LogTelnetHandler.java    |  3 +-
 .../protocol/dubbo/telnet/PortTelnetHandler.java   |  3 +-
 .../protocol/dubbo/telnet/TraceTelnetHandler.java  |  3 +-
 .../rpc/protocol/hessian/HessianProtocol.java      |  7 +++
 .../rpc/protocol/hessian/HttpClientConnection.java | 11 +++-
 .../hessian/HttpClientConnectionFactory.java       |  4 +-
 .../dubbo/rpc/protocol/http/HttpProtocol.java      |  9 +++-
 .../dubbo/rpc/protocol/injvm/InjvmExporter.java    |  3 +-
 .../dubbo/rpc/protocol/injvm/InjvmInvoker.java     |  3 +-
 .../dubbo/rpc/protocol/injvm/InjvmProtocol.java    |  5 +-
 .../rpc/protocol/memcached/MemcachedProtocol.java  |  5 ++
 .../dubbo/rpc/protocol/redis/RedisProtocol.java    |  5 ++
 .../dubbo/rpc/protocol/rest/BaseRestServer.java    |  3 ++
 .../dubbo/rpc/protocol/rest/DubboHttpServer.java   | 10 ++++
 .../rpc/protocol/rest/DubboResourceFactory.java    |  7 ++-
 .../dubbo/rpc/protocol/rest/NettyServer.java       |  3 ++
 .../dubbo/rpc/protocol/rest/RestProtocol.java      | 10 +++-
 .../dubbo/rpc/protocol/rest/RpcContextFilter.java  |  2 +
 .../rpc/protocol/rest/RpcExceptionMapper.java      |  1 +
 .../rpc/protocol/rest/support/LoggingFilter.java   |  6 +++
 .../dubbo/rpc/protocol/rmi/RmiProtocol.java        |  8 ++-
 .../protocol/thrift/DubboClassNameGenerator.java   |  2 +
 .../protocol/thrift/ThriftClassNameGenerator.java  |  2 +
 .../dubbo/rpc/protocol/thrift/ThriftCodec.java     |  2 +
 .../dubbo/rpc/protocol/thrift/ThriftInvoker.java   |  1 +
 .../rpc/protocol/thrift/ThriftNativeCodec.java     |  2 +
 .../dubbo/rpc/protocol/thrift/ThriftProtocol.java  |  4 ++
 .../protocol/thrift/ext/MultiServiceProcessor.java |  1 +
 .../io/RandomAccessByteArrayOutputStream.java      |  4 ++
 .../dubbo/rpc/protocol/thrift/MockedChannel.java   | 14 +++++
 .../protocol/webservice/WebServiceProtocol.java    |  8 ++-
 .../serialize/fastjson/FastJsonObjectInput.java    | 14 ++++-
 .../serialize/fastjson/FastJsonObjectOutput.java   | 14 ++++-
 .../serialize/fastjson/FastJsonSerialization.java  |  6 ++-
 .../dubbo/common/serialize/fst/FstObjectInput.java | 14 ++++-
 .../common/serialize/fst/FstObjectOutput.java      | 14 ++++-
 .../common/serialize/fst/FstSerialization.java     |  6 ++-
 .../serialize/hessian2/Hessian2ObjectInput.java    | 14 ++++-
 .../serialize/hessian2/Hessian2ObjectOutput.java   | 14 ++++-
 .../serialize/hessian2/Hessian2Serialization.java  |  6 ++-
 .../serialize/java/CompactedJavaSerialization.java |  6 ++-
 .../common/serialize/java/JavaObjectInput.java     |  7 ++-
 .../common/serialize/java/JavaObjectOutput.java    |  5 +-
 .../common/serialize/java/JavaSerialization.java   |  6 ++-
 .../nativejava/NativeJavaObjectInput.java          | 12 +++++
 .../nativejava/NativeJavaObjectOutput.java         | 12 +++++
 .../nativejava/NativeJavaSerialization.java        |  4 ++
 .../common/serialize/kryo/KryoObjectInput.java     | 15 +++++-
 .../common/serialize/kryo/KryoObjectOutput.java    | 15 +++++-
 .../common/serialize/kryo/KryoSerialization.java   |  6 ++-
 .../serialize/kryo/utils/AbstractKryoFactory.java  |  1 +
 .../serialize/kryo/utils/PrototypeKryoFactory.java |  1 +
 .../kryo/utils/ThreadLocalKryoFactory.java         |  1 +
 .../rpc/benchmark/AbstractBenchmarkServer.java     |  1 +
 .../rpc/benchmark/AbstractClientRunnable.java      |  2 +
 .../dubbo/rpc/benchmark/DemoServiceImpl.java       |  1 +
 .../dubbo/rpc/benchmark/ExchangeClientFactory.java |  1 +
 .../SimpleProcessorBenchmarkClientRunnable.java    |  2 +
 .../annotation/impl/AnnotationServiceImpl.java     |  3 +-
 .../dubbo/examples/async/AsyncConsumer.java        |  2 +
 .../examples/async/impl/AsyncServiceImpl.java      |  3 +-
 .../examples/cache/impl/CacheServiceImpl.java      |  1 +
 .../dubbo/examples/callback/CallbackConsumer.java  |  1 +
 .../callback/impl/CallbackServiceImpl.java         |  4 +-
 .../examples/generic/impl/UserServiceImpl.java     |  1 +
 .../dubbo/examples/heartbeat/HeartbeatClient.java  |  1 +
 .../dubbo/examples/heartbeat/HeartbeatServer.java  |  1 +
 .../examples/heartbeat/impl/HelloServiceImpl.java  |  1 +
 .../examples/merge/impl/MergeServiceImpl.java      |  1 +
 .../examples/merge/impl/MergeServiceImpl2.java     |  3 +-
 .../examples/merge/impl/MergeServiceImpl3.java     |  3 +-
 .../rest/api/extension/ClientTraceFilter.java      |  2 +
 .../rest/api/extension/CustomExceptionMapper.java  |  1 +
 .../rest/api/extension/DynamicTraceBinding.java    |  3 +-
 .../api/extension/DynamicTraceInterceptor.java     |  2 +
 .../examples/rest/api/extension/LogFilter.java     |  1 +
 .../examples/rest/api/extension/TraceFilter.java   |  4 +-
 .../rest/api/extension/TraceInterceptor.java       |  2 +
 .../dubbo/examples/rest/impl/UserServiceImpl.java  |  2 +
 .../AnnotationDrivenUserRestServiceImpl.java       |  2 +
 .../impl/facade/AnotherUserRestServiceImpl.java    |  2 +
 .../rest/impl/facade/UserRestServiceImpl.java      |  2 +
 .../validation/impl/ValidationServiceImpl.java     |  3 ++
 .../examples/version/impl/VersionServiceImpl.java  |  1 +
 .../examples/version/impl/VersionServiceImpl2.java |  1 +
 .../caucho/hessian/io/AbstractDeserializer.java    |  6 +++
 .../caucho/hessian/io/AbstractHessianResolver.java |  1 +
 .../hessian/io/AbstractListDeserializer.java       |  1 +
 .../caucho/hessian/io/AbstractMapDeserializer.java |  2 +
 .../com/caucho/hessian/io/AbstractSerializer.java  |  1 +
 .../com/caucho/hessian/io/ArrayDeserializer.java   |  4 ++
 .../com/caucho/hessian/io/ArraySerializer.java     |  1 +
 .../com/caucho/hessian/io/BasicDeserializer.java   |  4 ++
 .../com/caucho/hessian/io/BasicSerializer.java     |  1 +
 .../com/caucho/hessian/io/BeanDeserializer.java    |  2 +
 .../com/caucho/hessian/io/BeanSerializer.java      |  2 +
 .../caucho/hessian/io/BeanSerializerFactory.java   |  2 +
 .../com/caucho/hessian/io/CalendarSerializer.java  |  1 +
 .../com/caucho/hessian/io/ClassDeserializer.java   |  3 ++
 .../com/caucho/hessian/io/ClassSerializer.java     |  1 +
 .../caucho/hessian/io/CollectionDeserializer.java  |  3 ++
 .../caucho/hessian/io/CollectionSerializer.java    |  1 +
 .../alibaba/com/caucho/hessian/io/Deflation.java   |  9 ++++
 .../com/caucho/hessian/io/EnumDeserializer.java    |  3 ++
 .../com/caucho/hessian/io/EnumSerializer.java      |  1 +
 .../caucho/hessian/io/EnumerationDeserializer.java |  1 +
 .../caucho/hessian/io/EnumerationSerializer.java   |  1 +
 .../caucho/hessian/io/ExtSerializerFactory.java    |  2 +
 .../com/caucho/hessian/io/Hessian2Input.java       | 38 ++++++++++++++
 .../com/caucho/hessian/io/Hessian2Output.java      | 34 ++++++++++++
 .../caucho/hessian/io/Hessian2StreamingInput.java  |  2 +
 .../caucho/hessian/io/HessianDebugInputStream.java |  5 ++
 .../hessian/io/HessianDebugOutputStream.java       |  6 +++
 .../com/caucho/hessian/io/HessianDebugState.java   | 29 ++++++++++
 .../com/caucho/hessian/io/HessianInput.java        | 42 +++++++++++++++
 .../com/caucho/hessian/io/HessianOutput.java       | 35 +++++++++++++
 .../hessian/io/HessianProtocolException.java       |  1 +
 .../com/caucho/hessian/io/HessianRemote.java       |  3 ++
 .../com/caucho/hessian/io/IOExceptionWrapper.java  |  1 +
 .../caucho/hessian/io/InputStreamDeserializer.java |  1 +
 .../caucho/hessian/io/InputStreamSerializer.java   |  1 +
 .../com/caucho/hessian/io/IteratorSerializer.java  |  1 +
 .../com/caucho/hessian/io/JavaDeserializer.java    | 17 ++++++
 .../com/caucho/hessian/io/JavaSerializer.java      |  7 +++
 .../com/caucho/hessian/io/LocaleSerializer.java    |  1 +
 .../com/caucho/hessian/io/MapDeserializer.java     |  2 +
 .../com/caucho/hessian/io/MapSerializer.java       |  1 +
 .../com/caucho/hessian/io/ObjectDeserializer.java  |  5 ++
 .../com/caucho/hessian/io/RemoteSerializer.java    |  1 +
 .../com/caucho/hessian/io/SerializerFactory.java   |  1 +
 .../com/caucho/hessian/io/SqlDateDeserializer.java |  3 ++
 .../com/caucho/hessian/io/SqlDateSerializer.java   |  1 +
 .../caucho/hessian/io/StringValueDeserializer.java |  3 ++
 .../caucho/hessian/io/StringValueSerializer.java   |  1 +
 .../com/caucho/hessian/io/ThrowableSerializer.java |  1 +
 .../com/caucho/hessian/io/ValueDeserializer.java   |  2 +
 .../caucho/hessian/security/X509Encryption.java    |  9 ++++
 .../com/caucho/hessian/security/X509Signature.java |  9 ++++
 .../com/caucho/hessian/util/IdentityIntMap.java    |  1 +
 .../alibaba/com/caucho/hessian/util/IntMap.java    |  1 +
 473 files changed, 2382 insertions(+), 253 deletions(-)

diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/AbstractConfigurator.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/AbstractConfigurator.java
index 50653fe..32c6c9e 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/AbstractConfigurator.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/AbstractConfigurator.java
@@ -44,10 +44,12 @@ public abstract class AbstractConfigurator implements Configurator {
         System.out.println(URL.encode("timeout=100"));
     }
 
+    @Override
     public URL getUrl() {
         return configuratorUrl;
     }
 
+    @Override
     public URL configure(URL url) {
         if (configuratorUrl == null || configuratorUrl.getHost() == null
                 || url == null || url.getHost() == null) {
@@ -107,6 +109,7 @@ public abstract class AbstractConfigurator implements Configurator {
      * @param o
      * @return
      */
+    @Override
     public int compareTo(Configurator o) {
         if (o == null) {
             return -1;
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfigurator.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfigurator.java
index 1a62a96..d796df4 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfigurator.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfigurator.java
@@ -29,6 +29,7 @@ public class AbsentConfigurator extends AbstractConfigurator {
         super(url);
     }
 
+    @Override
     public URL doConfigure(URL currentUrl, URL configUrl) {
         return currentUrl.addParametersIfAbsent(configUrl.getParameters());
     }
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorFactory.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorFactory.java
index fe3fa6e..fbe8e98 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorFactory.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorFactory.java
@@ -26,6 +26,7 @@ import com.alibaba.dubbo.rpc.cluster.ConfiguratorFactory;
  */
 public class AbsentConfiguratorFactory implements ConfiguratorFactory {
 
+    @Override
     public Configurator getConfigurator(URL url) {
         return new AbsentConfigurator(url);
     }
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfigurator.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfigurator.java
index 5286bfa..f8c7ee8 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfigurator.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfigurator.java
@@ -29,6 +29,7 @@ public class OverrideConfigurator extends AbstractConfigurator {
         super(url);
     }
 
+    @Override
     public URL doConfigure(URL currentUrl, URL configUrl) {
         return currentUrl.addParameters(configUrl.getParameters());
     }
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorFactory.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorFactory.java
index 75b3e05..fc648a7 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorFactory.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorFactory.java
@@ -26,6 +26,7 @@ import com.alibaba.dubbo.rpc.cluster.ConfiguratorFactory;
  */
 public class OverrideConfiguratorFactory implements ConfiguratorFactory {
 
+    @Override
     public Configurator getConfigurator(URL url) {
         return new OverrideConfigurator(url);
     }
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/directory/AbstractDirectory.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/directory/AbstractDirectory.java
index db78774..6934069 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/directory/AbstractDirectory.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/directory/AbstractDirectory.java
@@ -66,6 +66,7 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
         setRouters(routers);
     }
 
+    @Override
     public List<Invoker<T>> list(Invocation invocation) throws RpcException {
         if (destroyed) {
             throw new RpcException("Directory already destroyed .url: " + getUrl());
@@ -86,6 +87,7 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
         return invokers;
     }
 
+    @Override
     public URL getUrl() {
         return url;
     }
@@ -121,10 +123,11 @@ public abstract class AbstractDirectory<T> implements Directory<T> {
         return destroyed;
     }
 
+    @Override
     public void destroy() {
         destroyed = true;
     }
 
     protected abstract List<Invoker<T>> doList(Invocation invocation) throws RpcException;
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/directory/StaticDirectory.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/directory/StaticDirectory.java
index a8563b6..ae64aa8 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/directory/StaticDirectory.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/directory/StaticDirectory.java
@@ -51,10 +51,12 @@ public class StaticDirectory<T> extends AbstractDirectory<T> {
         this.invokers = invokers;
     }
 
+    @Override
     public Class<T> getInterface() {
         return invokers.get(0).getInterface();
     }
 
+    @Override
     public boolean isAvailable() {
         if (isDestroyed()) {
             return false;
@@ -67,6 +69,7 @@ public class StaticDirectory<T> extends AbstractDirectory<T> {
         return false;
     }
 
+    @Override
     public void destroy() {
         if (isDestroyed()) {
             return;
@@ -84,4 +87,4 @@ public class StaticDirectory<T> extends AbstractDirectory<T> {
         return invokers;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/AbstractLoadBalance.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/AbstractLoadBalance.java
index 74db7bc..4e3ecec 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/AbstractLoadBalance.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/AbstractLoadBalance.java
@@ -35,6 +35,7 @@ public abstract class AbstractLoadBalance implements LoadBalance {
         return ww < 1 ? 1 : (ww > weight ? weight : ww);
     }
 
+    @Override
     public <T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) {
         if (invokers == null || invokers.isEmpty())
             return null;
@@ -60,4 +61,4 @@ public abstract class AbstractLoadBalance implements LoadBalance {
         return weight;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LeastActiveLoadBalance.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LeastActiveLoadBalance.java
index 0da2254..aa6ec12 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LeastActiveLoadBalance.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/LeastActiveLoadBalance.java
@@ -35,6 +35,7 @@ public class LeastActiveLoadBalance extends AbstractLoadBalance {
 
     private final Random random = new Random();
 
+    @Override
     protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {
         int length = invokers.size(); // Number of invokers
         int leastActive = -1; // The least active value of all invokers
@@ -83,4 +84,4 @@ public class LeastActiveLoadBalance extends AbstractLoadBalance {
         // If all invokers have the same weight value or totalWeight=0, return evenly.
         return invokers.get(leastIndexs[random.nextInt(leastCount)]);
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java
index 933428b..df2ff47 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java
@@ -33,6 +33,7 @@ public class RandomLoadBalance extends AbstractLoadBalance {
 
     private final Random random = new Random();
 
+    @Override
     protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {
         int length = invokers.size(); // Number of invokers
         int totalWeight = 0; // The sum of weights
@@ -60,4 +61,4 @@ public class RandomLoadBalance extends AbstractLoadBalance {
         return invokers.get(random.nextInt(length));
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalance.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalance.java
index 1eccbf4..9d4d026 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalance.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalance.java
@@ -37,6 +37,7 @@ public class RoundRobinLoadBalance extends AbstractLoadBalance {
 
     private final ConcurrentMap<String, AtomicPositiveInteger> sequences = new ConcurrentHashMap<String, AtomicPositiveInteger>();
 
+    @Override
     protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {
         String key = invokers.get(0).getUrl().getServiceKey() + "." + invocation.getMethodName();
         int length = invokers.size(); // Number of invokers
@@ -99,4 +100,4 @@ public class RoundRobinLoadBalance extends AbstractLoadBalance {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ArrayMerger.java
index e75adca..6ec7637 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ArrayMerger.java
@@ -24,6 +24,7 @@ public class ArrayMerger implements Merger<Object[]> {
 
     public static final ArrayMerger INSTANCE = new ArrayMerger();
 
+    @Override
     public Object[] merge(Object[]... others) {
         if (others.length == 0) {
             return null;
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/BooleanArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/BooleanArrayMerger.java
index 105717b..1b4c4b1 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/BooleanArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/BooleanArrayMerger.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.rpc.cluster.Merger;
 
 public class BooleanArrayMerger implements Merger<boolean[]> {
 
+    @Override
     public boolean[] merge(boolean[]... items) {
         int totalLen = 0;
         for (boolean[] array : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ByteArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ByteArrayMerger.java
index 2be2984..7951b8d 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ByteArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ByteArrayMerger.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.rpc.cluster.Merger;
 
 public class ByteArrayMerger implements Merger<byte[]> {
 
+    @Override
     public byte[] merge(byte[]... items) {
         int total = 0;
         for (byte[] array : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/CharArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/CharArrayMerger.java
index 565c6c1..b72c64a 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/CharArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/CharArrayMerger.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.rpc.cluster.Merger;
 
 public class CharArrayMerger implements Merger<char[]> {
 
+    @Override
     public char[] merge(char[]... items) {
         int total = 0;
         for (char[] array : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/DoubleArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/DoubleArrayMerger.java
index 4bf5c68..b249490 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/DoubleArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/DoubleArrayMerger.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.rpc.cluster.Merger;
 
 public class DoubleArrayMerger implements Merger<double[]> {
 
+    @Override
     public double[] merge(double[]... items) {
         int total = 0;
         for (double[] array : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/FloatArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/FloatArrayMerger.java
index 03dcf83..5bf14cb 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/FloatArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/FloatArrayMerger.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.rpc.cluster.Merger;
 
 public class FloatArrayMerger implements Merger<float[]> {
 
+    @Override
     public float[] merge(float[]... items) {
         int total = 0;
         for (float[] array : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/IntArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/IntArrayMerger.java
index 39fe0f5..dc23767 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/IntArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/IntArrayMerger.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.rpc.cluster.Merger;
 
 public class IntArrayMerger implements Merger<int[]> {
 
+    @Override
     public int[] merge(int[]... items) {
         int totalLen = 0;
         for (int[] item : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ListMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ListMerger.java
index abde290..bc61dae 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ListMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ListMerger.java
@@ -24,6 +24,7 @@ import java.util.List;
 
 public class ListMerger implements Merger<List<?>> {
 
+    @Override
     public List<Object> merge(List<?>... items) {
         List<Object> result = new ArrayList<Object>();
         for (List<?> item : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/LongArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/LongArrayMerger.java
index 35ce7ed..a5ad107 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/LongArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/LongArrayMerger.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.rpc.cluster.Merger;
 
 public class LongArrayMerger implements Merger<long[]> {
 
+    @Override
     public long[] merge(long[]... items) {
         int total = 0;
         for (long[] array : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/MapMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/MapMerger.java
index 5c9121c..b8affc9 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/MapMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/MapMerger.java
@@ -23,6 +23,7 @@ import java.util.Map;
 
 public class MapMerger implements Merger<Map<?, ?>> {
 
+    @Override
     public Map<?, ?> merge(Map<?, ?>... items) {
         if (items.length == 0) {
             return null;
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/SetMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/SetMerger.java
index 8365173..ec72bb8 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/SetMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/SetMerger.java
@@ -23,6 +23,7 @@ import java.util.Set;
 
 public class SetMerger implements Merger<Set<?>> {
 
+    @Override
     public Set<Object> merge(Set<?>... items) {
 
         Set<Object> result = new HashSet<Object>();
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ShortArrayMerger.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ShortArrayMerger.java
index 7834364..77342fc 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ShortArrayMerger.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/merger/ShortArrayMerger.java
@@ -21,6 +21,7 @@ import com.alibaba.dubbo.rpc.cluster.Merger;
 
 public class ShortArrayMerger implements Merger<short[]> {
 
+    @Override
     public short[] merge(short[]... items) {
         int total = 0;
         for (short[] array : items) {
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/MockInvokersSelector.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/MockInvokersSelector.java
index 9239ce6..d406f78 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/MockInvokersSelector.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/MockInvokersSelector.java
@@ -33,6 +33,7 @@ import java.util.List;
  */
 public class MockInvokersSelector implements Router {
 
+    @Override
     public <T> List<Invoker<T>> route(final List<Invoker<T>> invokers,
                                       URL url, final Invocation invocation) throws RpcException {
         if (invocation.getAttachments() == null) {
@@ -86,10 +87,12 @@ public class MockInvokersSelector implements Router {
         return hasMockProvider;
     }
 
+    @Override
     public URL getUrl() {
         return null;
     }
 
+    @Override
     public int compareTo(Router o) {
         return 1;
     }
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouter.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouter.java
index 927849f..05f1d71 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouter.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouter.java
@@ -142,6 +142,7 @@ public class ConditionRouter implements Router, Comparable<Router> {
         return condition;
     }
 
+    @Override
     public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation)
             throws RpcException {
         if (invokers == null || invokers.isEmpty()) {
@@ -173,10 +174,12 @@ public class ConditionRouter implements Router, Comparable<Router> {
         return invokers;
     }
 
+    @Override
     public URL getUrl() {
         return url;
     }
 
+    @Override
     public int compareTo(Router o) {
         if (o == null || o.getClass() != ConditionRouter.class) {
             return 1;
@@ -266,4 +269,4 @@ public class ConditionRouter implements Router, Comparable<Router> {
             return false;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouterFactory.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouterFactory.java
index b34a0e1..08ebb57 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouterFactory.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/condition/ConditionRouterFactory.java
@@ -28,8 +28,9 @@ public class ConditionRouterFactory implements RouterFactory {
 
     public static final String NAME = "condition";
 
+    @Override
     public Router getRouter(URL url) {
         return new ConditionRouter(url);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/file/FileRouterFactory.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/file/FileRouterFactory.java
index d78ca0b..b91f4f6 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/file/FileRouterFactory.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/file/FileRouterFactory.java
@@ -37,6 +37,7 @@ public class FileRouterFactory implements RouterFactory {
         this.routerFactory = routerFactory;
     }
 
+    @Override
     public Router getRouter(URL url) {
         try {
             // Transform File URL into Script Route URL, and Load
@@ -61,4 +62,4 @@ public class FileRouterFactory implements RouterFactory {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouter.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouter.java
index 7359e6c..74938c6 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouter.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouter.java
@@ -79,10 +79,12 @@ public class ScriptRouter implements Router {
         this.rule = rule;
     }
 
+    @Override
     public URL getUrl() {
         return url;
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {
         try {
@@ -112,6 +114,7 @@ public class ScriptRouter implements Router {
         }
     }
 
+    @Override
     public int compareTo(Router o) {
         if (o == null || o.getClass() != ScriptRouter.class) {
             return 1;
@@ -120,4 +123,4 @@ public class ScriptRouter implements Router {
         return this.priority == c.priority ? rule.compareTo(c.rule) : (this.priority > c.priority ? 1 : -1);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouterFactory.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouterFactory.java
index 18a6c97..2cda98e 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouterFactory.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/router/script/ScriptRouterFactory.java
@@ -37,8 +37,9 @@ public class ScriptRouterFactory implements RouterFactory {
 
     public static final String NAME = "script";
 
+    @Override
     public Router getRouter(URL url) {
         return new ScriptRouter(url);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
index f2cd281..68ed406 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvoker.java
@@ -64,14 +64,17 @@ public abstract class AbstractClusterInvoker<T> implements Invoker<T> {
         this.availablecheck = url.getParameter(Constants.CLUSTER_AVAILABLE_CHECK_KEY, Constants.DEFAULT_CLUSTER_AVAILABLE_CHECK);
     }
 
+    @Override
     public Class<T> getInterface() {
         return directory.getInterface();
     }
 
+    @Override
     public URL getUrl() {
         return directory.getUrl();
     }
 
+    @Override
     public boolean isAvailable() {
         Invoker<T> invoker = stickyInvoker;
         if (invoker != null) {
@@ -80,6 +83,7 @@ public abstract class AbstractClusterInvoker<T> implements Invoker<T> {
         return directory.isAvailable();
     }
 
+    @Override
     public void destroy() {
         if (destroyed.compareAndSet(false, true)) {
             directory.destroy();
@@ -221,6 +225,7 @@ public abstract class AbstractClusterInvoker<T> implements Invoker<T> {
         return null;
     }
 
+    @Override
     public Result invoke(final Invocation invocation) throws RpcException {
         checkWhetherDestroyed();
         LoadBalance loadbalance = null;
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AvailableCluster.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AvailableCluster.java
index 7c6c5f4..4040bac 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AvailableCluster.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AvailableCluster.java
@@ -34,9 +34,11 @@ public class AvailableCluster implements Cluster {
 
     public static final String NAME = "available";
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
 
         return new AbstractClusterInvoker<T>(directory) {
+            @Override
             public Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
                 for (Invoker<T> invoker : invokers) {
                     if (invoker.isAvailable()) {
@@ -49,4 +51,4 @@ public class AvailableCluster implements Cluster {
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AvailableClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AvailableClusterInvoker.java
index d67958f..ff37f72 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AvailableClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/AvailableClusterInvoker.java
@@ -35,6 +35,7 @@ public class AvailableClusterInvoker<T> extends AbstractClusterInvoker<T> {
         super(directory);
     }
 
+    @Override
     public Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
         for (Invoker<T> invoker : invokers) {
             if (invoker.isAvailable()) {
@@ -44,4 +45,4 @@ public class AvailableClusterInvoker<T> extends AbstractClusterInvoker<T> {
         throw new RpcException("No provider available in " + invokers);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/BroadcastCluster.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/BroadcastCluster.java
index 1e10f53..598aa94 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/BroadcastCluster.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/BroadcastCluster.java
@@ -27,8 +27,9 @@ import com.alibaba.dubbo.rpc.cluster.Directory;
  */
 public class BroadcastCluster implements Cluster {
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
         return new BroadcastClusterInvoker<T>(directory);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/BroadcastClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/BroadcastClusterInvoker.java
index da79ace..4771e6a 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/BroadcastClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/BroadcastClusterInvoker.java
@@ -40,6 +40,7 @@ public class BroadcastClusterInvoker<T> extends AbstractClusterInvoker<T> {
         super(directory);
     }
 
+    @Override
     @SuppressWarnings({"unchecked", "rawtypes"})
     public Result doInvoke(final Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
         checkInvokers(invokers, invocation);
@@ -63,4 +64,4 @@ public class BroadcastClusterInvoker<T> extends AbstractClusterInvoker<T> {
         return result;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailbackCluster.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailbackCluster.java
index 13d0dc9..f188b4d 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailbackCluster.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailbackCluster.java
@@ -29,8 +29,9 @@ public class FailbackCluster implements Cluster {
 
     public final static String NAME = "failback";
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
         return new FailbackClusterInvoker<T>(directory);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailbackClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailbackClusterInvoker.java
index acdd62d..17b50ff 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailbackClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailbackClusterInvoker.java
@@ -64,6 +64,7 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
                 if (retryFuture == null) {
                     retryFuture = scheduledExecutorService.scheduleWithFixedDelay(new Runnable() {
 
+                        @Override
                         public void run() {
                             // collect retry statistics
                             try {
@@ -96,6 +97,7 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
         }
     }
 
+    @Override
     protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
         try {
             checkInvokers(invokers, invocation);
@@ -109,4 +111,4 @@ public class FailbackClusterInvoker<T> extends AbstractClusterInvoker<T> {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailfastCluster.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailfastCluster.java
index f47c602..a1e3dba 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailfastCluster.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailfastCluster.java
@@ -29,8 +29,9 @@ public class FailfastCluster implements Cluster {
 
     public final static String NAME = "failfast";
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
         return new FailfastClusterInvoker<T>(directory);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailfastClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailfastClusterInvoker.java
index d1307be..8616ef4 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailfastClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailfastClusterInvoker.java
@@ -40,6 +40,7 @@ public class FailfastClusterInvoker<T> extends AbstractClusterInvoker<T> {
         super(directory);
     }
 
+    @Override
     public Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
         checkInvokers(invokers, invocation);
         Invoker<T> invoker = select(loadbalance, invocation, invokers, null);
@@ -52,4 +53,4 @@ public class FailfastClusterInvoker<T> extends AbstractClusterInvoker<T> {
             throw new RpcException(e instanceof RpcException ? ((RpcException) e).getCode() : 0, "Failfast invoke providers " + invoker.getUrl() + " " + loadbalance.getClass().getSimpleName() + " select from all providers " + invokers + " for service " + getInterface().getName() + " method " + invocation.getMethodName() + " on consumer " + NetUtils.getLocalHost() + " use dubbo version " + Version.getVersion() + ", but no luck to perform the invocation. Last error is: " + e.getMessage(),  [...]
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailoverCluster.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailoverCluster.java
index 64d731f..4dbfe1f 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailoverCluster.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailoverCluster.java
@@ -29,8 +29,9 @@ public class FailoverCluster implements Cluster {
 
     public final static String NAME = "failover";
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
         return new FailoverClusterInvoker<T>(directory);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailoverClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailoverClusterInvoker.java
index 90a9a37..525f3d0 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailoverClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailoverClusterInvoker.java
@@ -49,6 +49,7 @@ public class FailoverClusterInvoker<T> extends AbstractClusterInvoker<T> {
         super(directory);
     }
 
+    @Override
     @SuppressWarnings({"unchecked", "rawtypes"})
     public Result doInvoke(Invocation invocation, final List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
         List<Invoker<T>> copyinvokers = invokers;
@@ -108,4 +109,4 @@ public class FailoverClusterInvoker<T> extends AbstractClusterInvoker<T> {
                 + (le != null ? le.getMessage() : ""), le != null && le.getCause() != null ? le.getCause() : le);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailsafeCluster.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailsafeCluster.java
index a085eb8..c406967 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailsafeCluster.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailsafeCluster.java
@@ -29,8 +29,9 @@ public class FailsafeCluster implements Cluster {
 
     public final static String NAME = "failsafe";
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
         return new FailsafeClusterInvoker<T>(directory);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailsafeClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailsafeClusterInvoker.java
index bfdc80d..069fa03 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailsafeClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/FailsafeClusterInvoker.java
@@ -42,6 +42,7 @@ public class FailsafeClusterInvoker<T> extends AbstractClusterInvoker<T> {
         super(directory);
     }
 
+    @Override
     public Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
         try {
             checkInvokers(invokers, invocation);
@@ -52,4 +53,4 @@ public class FailsafeClusterInvoker<T> extends AbstractClusterInvoker<T> {
             return new RpcResult(); // ignore
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/ForkingCluster.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/ForkingCluster.java
index e0da296..6e02908 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/ForkingCluster.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/ForkingCluster.java
@@ -29,8 +29,9 @@ public class ForkingCluster implements Cluster {
 
     public final static String NAME = "forking";
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
         return new ForkingClusterInvoker<T>(directory);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/ForkingClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/ForkingClusterInvoker.java
index 307d82a..dd6b901 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/ForkingClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/ForkingClusterInvoker.java
@@ -49,6 +49,7 @@ public class ForkingClusterInvoker<T> extends AbstractClusterInvoker<T> {
         super(directory);
     }
 
+    @Override
     @SuppressWarnings({"unchecked", "rawtypes"})
     public Result doInvoke(final Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {
         checkInvokers(invokers, invocation);
@@ -72,6 +73,7 @@ public class ForkingClusterInvoker<T> extends AbstractClusterInvoker<T> {
         final BlockingQueue<Object> ref = new LinkedBlockingQueue<Object>();
         for (final Invoker<T> invoker : selected) {
             executor.execute(new Runnable() {
+                @Override
                 public void run() {
                     try {
                         Result result = invoker.invoke(invocation);
@@ -96,4 +98,4 @@ public class ForkingClusterInvoker<T> extends AbstractClusterInvoker<T> {
             throw new RpcException("Failed to forking invoke provider " + selected + ", but no luck to perform the invocation. Last error is: " + e.getMessage(), e);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/MergeableCluster.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/MergeableCluster.java
index 7f9f05a..ec942b7 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/MergeableCluster.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/MergeableCluster.java
@@ -25,6 +25,7 @@ public class MergeableCluster implements Cluster {
 
     public static final String NAME = "mergeable";
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
         return new MergeableClusterInvoker<T>(directory);
     }
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/MergeableClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/MergeableClusterInvoker.java
index 048d255..cb76f1c 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/MergeableClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/MergeableClusterInvoker.java
@@ -57,6 +57,7 @@ public class MergeableClusterInvoker<T> implements Invoker<T> {
         this.directory = directory;
     }
 
+    @Override
     @SuppressWarnings("rawtypes")
     public Result invoke(final Invocation invocation) throws RpcException {
         List<Invoker<T>> invokers = directory.list(invocation);
@@ -82,6 +83,7 @@ public class MergeableClusterInvoker<T> implements Invoker<T> {
         Map<String, Future<Result>> results = new HashMap<String, Future<Result>>();
         for (final Invoker<T> invoker : invokers) {
             Future<Result> future = executor.submit(new Callable<Result>() {
+                @Override
                 public Result call() throws Exception {
                     return invoker.invoke(new RpcInvocation(invocation, invoker));
                 }
@@ -168,18 +170,22 @@ public class MergeableClusterInvoker<T> implements Invoker<T> {
         return new RpcResult(result);
     }
 
+    @Override
     public Class<T> getInterface() {
         return directory.getInterface();
     }
 
+    @Override
     public URL getUrl() {
         return directory.getUrl();
     }
 
+    @Override
     public boolean isAvailable() {
         return directory.isAvailable();
     }
 
+    @Override
     public void destroy() {
         directory.destroy();
     }
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterInvoker.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterInvoker.java
index 0269c2b..18d9ded 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterInvoker.java
@@ -45,22 +45,27 @@ public class MockClusterInvoker<T> implements Invoker<T> {
         this.invoker = invoker;
     }
 
+    @Override
     public URL getUrl() {
         return directory.getUrl();
     }
 
+    @Override
     public boolean isAvailable() {
         return directory.isAvailable();
     }
 
+    @Override
     public void destroy() {
         this.invoker.destroy();
     }
 
+    @Override
     public Class<T> getInterface() {
         return directory.getInterface();
     }
 
+    @Override
     public Result invoke(Invocation invocation) throws RpcException {
         Result result = null;
 
diff --git a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterWrapper.java b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterWrapper.java
index b2b3488..9692cbb 100644
--- a/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterWrapper.java
+++ b/dubbo-cluster/src/main/java/com/alibaba/dubbo/rpc/cluster/support/wrapper/MockClusterWrapper.java
@@ -33,6 +33,7 @@ public class MockClusterWrapper implements Cluster {
         this.cluster = cluster;
     }
 
+    @Override
     public <T> Invoker<T> join(Directory<T> directory) throws RpcException {
         return new MockClusterInvoker<T>(directory,
                 this.cluster.join(directory));
diff --git a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/MockInvoker.java b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/MockInvoker.java
index cba7230..1f5926a 100644
--- a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/MockInvoker.java
+++ b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/router/MockInvoker.java
@@ -38,6 +38,7 @@ public class MockInvoker<T> implements Invoker<T> {
         this.available = available;
     }
 
+    @Override
     public Class<T> getInterface() {
         return null;
     }
@@ -46,6 +47,7 @@ public class MockInvoker<T> implements Invoker<T> {
         return url;
     }
 
+    @Override
     public boolean isAvailable() {
         return available;
     }
@@ -54,6 +56,7 @@ public class MockInvoker<T> implements Invoker<T> {
         return null;
     }
 
+    @Override
     public void destroy() {
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
index 901b84c..664dbc8 100644
--- a/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
+++ b/dubbo-cluster/src/test/java/com/alibaba/dubbo/rpc/cluster/support/AbstractClusterInvokerTest.java
@@ -407,6 +407,7 @@ public class AbstractClusterInvokerTest {
         List<Invoker<DemoService>> invokers = new ArrayList<Invoker<DemoService>>();
         invokers.add(new Invoker<DemoService>() {
 
+            @Override
             public Class<DemoService> getInterface() {
                 return DemoService.class;
             }
@@ -415,6 +416,7 @@ public class AbstractClusterInvokerTest {
                 return URL.valueOf("dubbo://" + NetUtils.getLocalHost() + ":20880/" + DemoService.class.getName());
             }
 
+            @Override
             public boolean isAvailable() {
                 return false;
             }
@@ -423,6 +425,7 @@ public class AbstractClusterInvokerTest {
                 throw new RpcException(RpcException.TIMEOUT_EXCEPTION, "test timeout");
             }
 
+            @Override
             public void destroy() {
             }
         });
@@ -470,4 +473,4 @@ public class AbstractClusterInvokerTest {
 
     public static interface IHelloService {
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/Parameters.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/Parameters.java
index ec23130..daea5b5 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/Parameters.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/Parameters.java
@@ -247,10 +247,12 @@ public class Parameters {
         return value != null && value.length() > 0;
     }
 
+    @Override
     public boolean equals(Object o) {
         return parameters.equals(o);
     }
 
+    @Override
     public int hashCode() {
         return parameters.hashCode();
     }
@@ -260,4 +262,4 @@ public class Parameters {
         return StringUtils.toQueryString(getParameters());
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java
index cb8e92b..f96946d 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/URL.java
@@ -1080,6 +1080,7 @@ public final class URL implements Serializable {
         return map;
     }
 
+    @Override
     public String toString() {
         if (string != null) {
             return string;
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/beanutil/JavaBeanDescriptor.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/beanutil/JavaBeanDescriptor.java
index 1bdeaab..6a9cfcf 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/beanutil/JavaBeanDescriptor.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/beanutil/JavaBeanDescriptor.java
@@ -182,6 +182,7 @@ public final class JavaBeanDescriptor implements Serializable, Iterable<Map.Entr
         return properties.containsKey(propertyName);
     }
 
+    @Override
     public Iterator<Map.Entry<Object, Object>> iterator() {
         return properties.entrySet().iterator();
     }
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/bytecode/Proxy.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/bytecode/Proxy.java
index f6761f7..a7456e8 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/bytecode/Proxy.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/bytecode/Proxy.java
@@ -39,11 +39,13 @@ import java.util.concurrent.atomic.AtomicLong;
 
 public abstract class Proxy {
     public static final InvocationHandler RETURN_NULL_INVOKER = new InvocationHandler() {
+        @Override
         public Object invoke(Object proxy, Method method, Object[] args) {
             return null;
         }
     };
     public static final InvocationHandler THROW_UNSUPPORTED_INVOKER = new InvocationHandler() {
+        @Override
         public Object invoke(Object proxy, Method method, Object[] args) {
             throw new UnsupportedOperationException("Method [" + ReflectUtils.getName(method) + "] unimplemented.");
         }
@@ -256,4 +258,4 @@ public abstract class Proxy {
      * @return instance.
      */
     abstract public Object newInstance(InvocationHandler handler);
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/bytecode/Wrapper.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/bytecode/Wrapper.java
index 25ddddb..0aafaba 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/bytecode/Wrapper.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/bytecode/Wrapper.java
@@ -40,34 +40,42 @@ public abstract class Wrapper {
     private static final String[] EMPTY_STRING_ARRAY = new String[0];
     private static final String[] OBJECT_METHODS = new String[]{"getClass", "hashCode", "toString", "equals"};
     private static final Wrapper OBJECT_WRAPPER = new Wrapper() {
+        @Override
         public String[] getMethodNames() {
             return OBJECT_METHODS;
         }
 
+        @Override
         public String[] getDeclaredMethodNames() {
             return OBJECT_METHODS;
         }
 
+        @Override
         public String[] getPropertyNames() {
             return EMPTY_STRING_ARRAY;
         }
 
+        @Override
         public Class<?> getPropertyType(String pn) {
             return null;
         }
 
+        @Override
         public Object getPropertyValue(Object instance, String pn) throws NoSuchPropertyException {
             throw new NoSuchPropertyException("Property [" + pn + "] not found.");
         }
 
+        @Override
         public void setPropertyValue(Object instance, String pn, Object pv) throws NoSuchPropertyException {
             throw new NoSuchPropertyException("Property [" + pn + "] not found.");
         }
 
+        @Override
         public boolean hasProperty(String name) {
             return false;
         }
 
+        @Override
         public Object invokeMethod(Object instance, String mn, Class<?>[] types, Object[] args) throws NoSuchMethodException {
             if ("getClass".equals(mn)) return instance.getClass();
             if ("hashCode".equals(mn)) return instance.hashCode();
@@ -413,4 +421,4 @@ public abstract class Wrapper {
      * @return return value.
      */
     abstract public Object invokeMethod(Object instance, String mn, Class<?>[] types, Object[] args) throws NoSuchMethodException, InvocationTargetException;
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/AbstractCompiler.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/AbstractCompiler.java
index b007244..2e94b90 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/AbstractCompiler.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/AbstractCompiler.java
@@ -31,6 +31,7 @@ public abstract class AbstractCompiler implements Compiler {
 
     private static final Pattern CLASS_PATTERN = Pattern.compile("class\\s+([$_a-zA-Z][$_a-zA-Z0-9]*)\\s+");
 
+    @Override
     public Class<?> compile(String code, ClassLoader classLoader) {
         code = code.trim();
         Matcher matcher = PACKAGE_PATTERN.matcher(code);
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/AdaptiveCompiler.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/AdaptiveCompiler.java
index a088256..c8dcfb2 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/AdaptiveCompiler.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/AdaptiveCompiler.java
@@ -33,6 +33,7 @@ public class AdaptiveCompiler implements Compiler {
         DEFAULT_COMPILER = compiler;
     }
 
+    @Override
     public Class<?> compile(String code, ClassLoader classLoader) {
         Compiler compiler;
         ExtensionLoader<Compiler> loader = ExtensionLoader.getExtensionLoader(Compiler.class);
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/JdkCompiler.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/JdkCompiler.java
index 461172d..9a370a6 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/JdkCompiler.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/compiler/support/JdkCompiler.java
@@ -87,6 +87,7 @@ public class JdkCompiler extends AbstractCompiler {
             }
         }
         classLoader = AccessController.doPrivileged(new PrivilegedAction<ClassLoaderImpl>() {
+            @Override
             public ClassLoaderImpl run() {
                 return new ClassLoaderImpl(loader);
             }
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/factory/AdaptiveExtensionFactory.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/factory/AdaptiveExtensionFactory.java
index c9235bd..55bbf5b 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/factory/AdaptiveExtensionFactory.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/factory/AdaptiveExtensionFactory.java
@@ -41,6 +41,7 @@ public class AdaptiveExtensionFactory implements ExtensionFactory {
         factories = Collections.unmodifiableList(list);
     }
 
+    @Override
     public <T> T getExtension(Class<T> type, String name) {
         for (ExtensionFactory factory : factories) {
             T extension = factory.getExtension(type, name);
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/factory/SpiExtensionFactory.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/factory/SpiExtensionFactory.java
index 0fc857e..f8d7ba5 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/factory/SpiExtensionFactory.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/factory/SpiExtensionFactory.java
@@ -25,6 +25,7 @@ import com.alibaba.dubbo.common.extension.SPI;
  */
 public class SpiExtensionFactory implements ExtensionFactory {
 
+    @Override
     public <T> T getExtension(Class<T> type, String name) {
         if (type.isInterface() && type.isAnnotationPresent(SPI.class)) {
             ExtensionLoader<T> loader = ExtensionLoader.getExtensionLoader(type);
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/support/ActivateComparator.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/support/ActivateComparator.java
index 809e883..7cf7a1b 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/support/ActivateComparator.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/support/ActivateComparator.java
@@ -29,6 +29,7 @@ public class ActivateComparator implements Comparator<Object> {
 
     public static final Comparator<Object> COMPARATOR = new ActivateComparator();
 
+    @Override
     public int compare(Object o1, Object o2) {
         if (o1 == null && o2 == null) {
             return 0;
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/StreamUtils.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/StreamUtils.java
index 0b8536e..4c988d0 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/StreamUtils.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/StreamUtils.java
@@ -30,6 +30,7 @@ public class StreamUtils {
         return new InputStream() {
             private int mPosition = 0, mMark = 0, mLimit = Math.min(limit, is.available());
 
+            @Override
             public int read() throws IOException {
                 if (mPosition < mLimit) {
                     mPosition++;
@@ -38,6 +39,7 @@ public class StreamUtils {
                 return -1;
             }
 
+            @Override
             public int read(byte b[], int off, int len) throws IOException {
                 if (b == null)
                     throw new NullPointerException();
@@ -59,6 +61,7 @@ public class StreamUtils {
                 return len;
             }
 
+            @Override
             public long skip(long len) throws IOException {
                 if (mPosition + len > mLimit)
                     len = mLimit - mPosition;
@@ -71,24 +74,29 @@ public class StreamUtils {
                 return len;
             }
 
+            @Override
             public int available() {
                 return mLimit - mPosition;
             }
 
+            @Override
             public boolean markSupported() {
                 return is.markSupported();
             }
 
+            @Override
             public void mark(int readlimit) {
                 is.mark(readlimit);
                 mMark = mPosition;
             }
 
+            @Override
             public void reset() throws IOException {
                 is.reset();
                 mPosition = mMark;
             }
 
+            @Override
             public void close() throws IOException {
             }
         };
@@ -203,4 +211,4 @@ public class StreamUtils {
             is.skip(is.available());
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeByteArrayInputStream.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeByteArrayInputStream.java
index 556c76f..8f30e9c 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeByteArrayInputStream.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeByteArrayInputStream.java
@@ -41,10 +41,12 @@ public class UnsafeByteArrayInputStream extends InputStream {
         mLimit = Math.min(offset + length, buf.length);
     }
 
+    @Override
     public int read() {
         return (mPosition < mLimit) ? (mData[mPosition++] & 0xff) : -1;
     }
 
+    @Override
     public int read(byte b[], int off, int len) {
         if (b == null)
             throw new NullPointerException();
@@ -61,6 +63,7 @@ public class UnsafeByteArrayInputStream extends InputStream {
         return len;
     }
 
+    @Override
     public long skip(long len) {
         if (mPosition + len > mLimit)
             len = mLimit - mPosition;
@@ -70,22 +73,27 @@ public class UnsafeByteArrayInputStream extends InputStream {
         return len;
     }
 
+    @Override
     public int available() {
         return mLimit - mPosition;
     }
 
+    @Override
     public boolean markSupported() {
         return true;
     }
 
+    @Override
     public void mark(int readAheadLimit) {
         mMark = mPosition;
     }
 
+    @Override
     public void reset() {
         mPosition = mMark;
     }
 
+    @Override
     public void close() throws IOException {
     }
 
@@ -100,4 +108,4 @@ public class UnsafeByteArrayInputStream extends InputStream {
     public int size() {
         return mData == null ? 0 : mData.length;
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeByteArrayOutputStream.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeByteArrayOutputStream.java
index 1c1d0a6..cdfc5ed 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeByteArrayOutputStream.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeByteArrayOutputStream.java
@@ -39,6 +39,7 @@ public class UnsafeByteArrayOutputStream extends OutputStream {
         mBuffer = new byte[size];
     }
 
+    @Override
     public void write(int b) {
         int newcount = mCount + 1;
         if (newcount > mBuffer.length)
@@ -47,6 +48,7 @@ public class UnsafeByteArrayOutputStream extends OutputStream {
         mCount = newcount;
     }
 
+    @Override
     public void write(byte b[], int off, int len) {
         if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0))
             throw new IndexOutOfBoundsException();
@@ -79,6 +81,7 @@ public class UnsafeByteArrayOutputStream extends OutputStream {
         out.write(mBuffer, 0, mCount);
     }
 
+    @Override
     public String toString() {
         return new String(mBuffer, 0, mCount);
     }
@@ -87,6 +90,7 @@ public class UnsafeByteArrayOutputStream extends OutputStream {
         return new String(mBuffer, 0, mCount, charset);
     }
 
+    @Override
     public void close() throws IOException {
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeStringReader.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeStringReader.java
index ac78050..4c0e68b 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeStringReader.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/io/UnsafeStringReader.java
@@ -61,6 +61,7 @@ public class UnsafeStringReader extends Reader {
         return n;
     }
 
+    @Override
     public long skip(long ns) throws IOException {
         ensureOpen();
         if (mPosition >= mLimit)
@@ -72,6 +73,7 @@ public class UnsafeStringReader extends Reader {
         return n;
     }
 
+    @Override
     public boolean ready() throws IOException {
         ensureOpen();
         return true;
@@ -82,6 +84,7 @@ public class UnsafeStringReader extends Reader {
         return true;
     }
 
+    @Override
     public void mark(int readAheadLimit) throws IOException {
         if (readAheadLimit < 0)
             throw new IllegalArgumentException("Read-ahead limit < 0");
@@ -90,6 +93,7 @@ public class UnsafeStringReader extends Reader {
         mMark = mPosition;
     }
 
+    @Override
     public void reset() throws IOException {
         ensureOpen();
         mPosition = mMark;
@@ -104,4 +108,4 @@ public class UnsafeStringReader extends Reader {
         if (mString == null)
             throw new IOException("Stream closed");
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/GenericJSONConverter.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/GenericJSONConverter.java
index 362464a..8a67d71 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/GenericJSONConverter.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/GenericJSONConverter.java
@@ -41,6 +41,7 @@ public class GenericJSONConverter implements JSONConverter {
     static {
         // init encoder map.
         Encoder e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueBoolean((Boolean) obj);
             }
@@ -49,6 +50,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalEncoderMap.put(Boolean.class, e);
 
         e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueInt(((Number) obj).intValue());
             }
@@ -62,6 +64,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalEncoderMap.put(AtomicInteger.class, e);
 
         e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueString(Character.toString((Character) obj));
             }
@@ -70,6 +73,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalEncoderMap.put(Character.class, e);
 
         e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueLong(((Number) obj).longValue());
             }
@@ -80,6 +84,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalEncoderMap.put(BigInteger.class, e);
 
         e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueFloat(((Number) obj).floatValue());
             }
@@ -88,6 +93,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalEncoderMap.put(Float.class, e);
 
         e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueDouble(((Number) obj).doubleValue());
             }
@@ -97,6 +103,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalEncoderMap.put(BigDecimal.class, e);
 
         e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueString(obj.toString());
             }
@@ -106,6 +113,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalEncoderMap.put(StringBuffer.class, e);
 
         e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueString(Bytes.bytes2base64((byte[]) obj));
             }
@@ -113,6 +121,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalEncoderMap.put(byte[].class, e);
 
         e = new Encoder() {
+            @Override
             public void encode(Object obj, JSONWriter jb) throws IOException {
                 jb.valueString(new SimpleDateFormat(DATE_FORMAT).format((Date) obj));
             }
@@ -121,6 +130,7 @@ public class GenericJSONConverter implements JSONConverter {
 
         // init decoder map.
         Decoder d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 return jv.toString();
             }
@@ -128,6 +138,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(String.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Boolean) return ((Boolean) jv).booleanValue();
                 return false;
@@ -136,6 +147,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(boolean.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Boolean) return (Boolean) jv;
                 return (Boolean) null;
@@ -144,6 +156,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Boolean.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof String && ((String) jv).length() > 0) return ((String) jv).charAt(0);
                 return (char) 0;
@@ -152,6 +165,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(char.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof String && ((String) jv).length() > 0) return ((String) jv).charAt(0);
                 return (Character) null;
@@ -160,6 +174,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Character.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return ((Number) jv).intValue();
                 return 0;
@@ -168,6 +183,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(int.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return Integer.valueOf(((Number) jv).intValue());
                 return (Integer) null;
@@ -176,6 +192,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Integer.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return ((Number) jv).shortValue();
                 return (short) 0;
@@ -184,6 +201,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(short.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return Short.valueOf(((Number) jv).shortValue());
                 return (Short) null;
@@ -192,6 +210,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Short.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return ((Number) jv).longValue();
                 return (long) 0;
@@ -200,6 +219,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(long.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return Long.valueOf(((Number) jv).longValue());
                 return (Long) null;
@@ -208,6 +228,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Long.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return ((Number) jv).floatValue();
                 return (float) 0;
@@ -216,6 +237,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(float.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return new Float(((Number) jv).floatValue());
                 return (Float) null;
@@ -224,6 +246,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Float.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return ((Number) jv).doubleValue();
                 return (double) 0;
@@ -232,6 +255,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(double.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return new Double(((Number) jv).doubleValue());
                 return (Double) null;
@@ -240,6 +264,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Double.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return ((Number) jv).byteValue();
                 return (byte) 0;
@@ -248,6 +273,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(byte.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) {
                 if (jv instanceof Number) return Byte.valueOf(((Number) jv).byteValue());
                 return (Byte) null;
@@ -256,6 +282,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Byte.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) throws IOException {
                 if (jv instanceof String) return Bytes.base642bytes((String) jv);
                 return (byte[]) null;
@@ -264,6 +291,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(byte[].class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) throws IOException {
                 return new StringBuilder(jv.toString());
             }
@@ -271,6 +299,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(StringBuilder.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) throws IOException {
                 return new StringBuffer(jv.toString());
             }
@@ -278,6 +307,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(StringBuffer.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) throws IOException {
                 if (jv instanceof Number) return BigInteger.valueOf(((Number) jv).longValue());
                 return (BigInteger) null;
@@ -286,6 +316,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(BigInteger.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) throws IOException {
                 if (jv instanceof Number) return BigDecimal.valueOf(((Number) jv).doubleValue());
                 return (BigDecimal) null;
@@ -294,6 +325,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(BigDecimal.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) throws IOException {
                 if (jv instanceof Number) return new AtomicInteger(((Number) jv).intValue());
                 return (AtomicInteger) null;
@@ -302,6 +334,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(AtomicInteger.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) throws IOException {
                 if (jv instanceof Number) return new AtomicLong(((Number) jv).longValue());
                 return (AtomicLong) null;
@@ -310,6 +343,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(AtomicLong.class, d);
 
         d = new Decoder() {
+            @Override
             public Object decode(Object jv) throws IOException {
                 if (jv instanceof String) {
                     try {
@@ -326,6 +360,7 @@ public class GenericJSONConverter implements JSONConverter {
         GlobalDecoderMap.put(Date.class, d);
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public void writeValue(Object obj, JSONWriter jb, boolean writeClass) throws IOException {
         if (obj == null) {
@@ -403,6 +438,7 @@ public class GenericJSONConverter implements JSONConverter {
         }
     }
 
+    @Override
     @SuppressWarnings({"unchecked", "rawtypes"})
     public Object readValue(Class<?> c, Object jv) throws IOException {
         if (jv == null) {
@@ -425,4 +461,4 @@ public class GenericJSONConverter implements JSONConverter {
     protected interface Decoder {
         Object decode(Object jv) throws IOException;
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/J2oVisitor.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/J2oVisitor.java
index f0b3d10..f0a8b29 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/J2oVisitor.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/J2oVisitor.java
@@ -196,9 +196,11 @@ class J2oVisitor implements JSONVisitor {
         return sb.toString();
     }
 
+    @Override
     public void begin() {
     }
 
+    @Override
     public Object end(Object obj, boolean isValue) throws ParseException {
         mStack.clear();
         try {
@@ -208,6 +210,7 @@ class J2oVisitor implements JSONVisitor {
         }
     }
 
+    @Override
     public void objectBegin() throws ParseException {
         mStack.push(mValue);
         mStack.push(mType);
@@ -238,6 +241,7 @@ class J2oVisitor implements JSONVisitor {
         }
     }
 
+    @Override
     public Object objectEnd(int count) {
         Object ret = mValue;
         mWrapper = (Wrapper) mStack.pop();
@@ -246,11 +250,13 @@ class J2oVisitor implements JSONVisitor {
         return ret;
     }
 
+    @Override
     public void objectItem(String name) {
         mStack.push(name); // push name.
         mType = (mWrapper == null ? Object.class : mWrapper.getPropertyType(name));
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public void objectItemValue(Object obj, boolean isValue) throws ParseException {
         String name = (String) mStack.pop();  // pop name.
@@ -284,6 +290,7 @@ class J2oVisitor implements JSONVisitor {
         }
     }
 
+    @Override
     public void arrayBegin() throws ParseException {
         mStack.push(mType);
 
@@ -295,6 +302,7 @@ class J2oVisitor implements JSONVisitor {
             throw new ParseException("Convert error, can not load json array data into class [" + mType.getName() + "].");
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public Object arrayEnd(int count) throws ParseException {
         Object ret;
@@ -331,6 +339,7 @@ class J2oVisitor implements JSONVisitor {
         return ret;
     }
 
+    @Override
     public void arrayItem(int index) throws ParseException {
         if (mTypes != null && mStack.size() == index + 1) {
             if (index < mTypes.length)
@@ -340,6 +349,7 @@ class J2oVisitor implements JSONVisitor {
         }
     }
 
+    @Override
     public void arrayItemValue(int index, Object obj, boolean isValue) throws ParseException {
         if (isValue && obj != null) {
             try {
@@ -351,4 +361,4 @@ class J2oVisitor implements JSONVisitor {
 
         mStack.push(obj);
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/JSONArray.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/JSONArray.java
index 6003664..42edfb4 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/JSONArray.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/JSONArray.java
@@ -168,6 +168,7 @@ public class JSONArray implements JSONNode {
      * @param jc json converter
      * @param jb json builder.
      */
+    @Override
     public void writeJSON(JSONConverter jc, JSONWriter jb, boolean writeClass) throws IOException {
         jb.arrayBegin();
         for (Object item : mArray) {
@@ -178,4 +179,4 @@ public class JSONArray implements JSONNode {
         }
         jb.arrayEnd();
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/JSONObject.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/JSONObject.java
index bfa32b3..68757fc 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/JSONObject.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/json/JSONObject.java
@@ -187,6 +187,7 @@ public class JSONObject implements JSONNode {
      * @param jc json converter.
      * @param jb json builder.
      */
+    @Override
     public void writeJSON(JSONConverter jc, JSONWriter jb, boolean writeClass) throws IOException {
         String key;
         Object value;
@@ -202,4 +203,4 @@ public class JSONObject implements JSONNode {
         }
         jb.objectEnd();
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jcl/JclLogger.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jcl/JclLogger.java
index 8d8625a..428fd3d 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jcl/JclLogger.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jcl/JclLogger.java
@@ -35,82 +35,102 @@ public class JclLogger implements Logger, Serializable {
         this.logger = logger;
     }
 
+    @Override
     public void trace(String msg) {
         logger.trace(msg);
     }
 
+    @Override
     public void trace(Throwable e) {
         logger.trace(e);
     }
 
+    @Override
     public void trace(String msg, Throwable e) {
         logger.trace(msg, e);
     }
 
+    @Override
     public void debug(String msg) {
         logger.debug(msg);
     }
 
+    @Override
     public void debug(Throwable e) {
         logger.debug(e);
     }
 
+    @Override
     public void debug(String msg, Throwable e) {
         logger.debug(msg, e);
     }
 
+    @Override
     public void info(String msg) {
         logger.info(msg);
     }
 
+    @Override
     public void info(Throwable e) {
         logger.info(e);
     }
 
+    @Override
     public void info(String msg, Throwable e) {
         logger.info(msg, e);
     }
 
+    @Override
     public void warn(String msg) {
         logger.warn(msg);
     }
 
+    @Override
     public void warn(Throwable e) {
         logger.warn(e);
     }
 
+    @Override
     public void warn(String msg, Throwable e) {
         logger.warn(msg, e);
     }
 
+    @Override
     public void error(String msg) {
         logger.error(msg);
     }
 
+    @Override
     public void error(Throwable e) {
         logger.error(e);
     }
 
+    @Override
     public void error(String msg, Throwable e) {
         logger.error(msg, e);
     }
 
+    @Override
     public boolean isTraceEnabled() {
         return logger.isTraceEnabled();
     }
 
+    @Override
     public boolean isDebugEnabled() {
         return logger.isDebugEnabled();
     }
 
+    @Override
     public boolean isInfoEnabled() {
         return logger.isInfoEnabled();
     }
 
+    @Override
     public boolean isWarnEnabled() {
         return logger.isWarnEnabled();
     }
 
+    @Override
     public boolean isErrorEnabled() {
         return logger.isErrorEnabled();
     }
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jcl/JclLoggerAdapter.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jcl/JclLoggerAdapter.java
index 5c07380..52a062e 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jcl/JclLoggerAdapter.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jcl/JclLoggerAdapter.java
@@ -28,26 +28,32 @@ public class JclLoggerAdapter implements LoggerAdapter {
     private Level level;
     private File file;
 
+    @Override
     public Logger getLogger(String key) {
         return new JclLogger(LogFactory.getLog(key));
     }
 
+    @Override
     public Logger getLogger(Class<?> key) {
         return new JclLogger(LogFactory.getLog(key));
     }
 
+    @Override
     public Level getLevel() {
         return level;
     }
 
+    @Override
     public void setLevel(Level level) {
         this.level = level;
     }
 
+    @Override
     public File getFile() {
         return file;
     }
 
+    @Override
     public void setFile(File file) {
         this.file = file;
     }
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jdk/JdkLogger.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jdk/JdkLogger.java
index 71c8f27..547f87f 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jdk/JdkLogger.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jdk/JdkLogger.java
@@ -28,84 +28,104 @@ public class JdkLogger implements Logger {
         this.logger = logger;
     }
 
+    @Override
     public void trace(String msg) {
         logger.log(Level.FINER, msg);
     }
 
+    @Override
     public void trace(Throwable e) {
         logger.log(Level.FINER, e.getMessage(), e);
     }
 
+    @Override
     public void trace(String msg, Throwable e) {
         logger.log(Level.FINER, msg, e);
     }
 
+    @Override
     public void debug(String msg) {
         logger.log(Level.FINE, msg);
     }
 
+    @Override
     public void debug(Throwable e) {
         logger.log(Level.FINE, e.getMessage(), e);
     }
 
+    @Override
     public void debug(String msg, Throwable e) {
         logger.log(Level.FINE, msg, e);
     }
 
+    @Override
     public void info(String msg) {
         logger.log(Level.INFO, msg);
     }
 
+    @Override
     public void info(String msg, Throwable e) {
         logger.log(Level.INFO, msg, e);
     }
 
+    @Override
     public void warn(String msg) {
         logger.log(Level.WARNING, msg);
     }
 
+    @Override
     public void warn(String msg, Throwable e) {
         logger.log(Level.WARNING, msg, e);
     }
 
+    @Override
     public void error(String msg) {
         logger.log(Level.SEVERE, msg);
     }
 
+    @Override
     public void error(String msg, Throwable e) {
         logger.log(Level.SEVERE, msg, e);
     }
 
+    @Override
     public void error(Throwable e) {
         logger.log(Level.SEVERE, e.getMessage(), e);
     }
 
+    @Override
     public void info(Throwable e) {
         logger.log(Level.INFO, e.getMessage(), e);
     }
 
+    @Override
     public void warn(Throwable e) {
         logger.log(Level.WARNING, e.getMessage(), e);
     }
 
+    @Override
     public boolean isTraceEnabled() {
         return logger.isLoggable(Level.FINER);
     }
 
+    @Override
     public boolean isDebugEnabled() {
         return logger.isLoggable(Level.FINE);
     }
 
+    @Override
     public boolean isInfoEnabled() {
         return logger.isLoggable(Level.INFO);
     }
 
+    @Override
     public boolean isWarnEnabled() {
         return logger.isLoggable(Level.WARNING);
     }
 
+    @Override
     public boolean isErrorEnabled() {
         return logger.isLoggable(Level.SEVERE);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jdk/JdkLoggerAdapter.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jdk/JdkLoggerAdapter.java
index 9c4cb55..35c0e4c 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jdk/JdkLoggerAdapter.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/jdk/JdkLoggerAdapter.java
@@ -94,28 +94,34 @@ public class JdkLoggerAdapter implements LoggerAdapter {
         return Level.OFF;
     }
 
+    @Override
     public Logger getLogger(Class<?> key) {
         return new JdkLogger(java.util.logging.Logger.getLogger(key == null ? "" : key.getName()));
     }
 
+    @Override
     public Logger getLogger(String key) {
         return new JdkLogger(java.util.logging.Logger.getLogger(key));
     }
 
+    @Override
     public Level getLevel() {
         return fromJdkLevel(java.util.logging.Logger.getLogger(GLOBAL_LOGGER_NAME).getLevel());
     }
 
+    @Override
     public void setLevel(Level level) {
         java.util.logging.Logger.getLogger(GLOBAL_LOGGER_NAME).setLevel(toJdkLevel(level));
     }
 
+    @Override
     public File getFile() {
         return file;
     }
 
+    @Override
     public void setFile(File file) {
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/log4j/Log4jLogger.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/log4j/Log4jLogger.java
index e92fb1a..aceb8cc 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/log4j/Log4jLogger.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/log4j/Log4jLogger.java
@@ -31,84 +31,104 @@ public class Log4jLogger implements Logger {
         this.logger = logger;
     }
 
+    @Override
     public void trace(String msg) {
         logger.log(FQCN, Level.TRACE, msg, null);
     }
 
+    @Override
     public void trace(Throwable e) {
         logger.log(FQCN, Level.TRACE, e == null ? null : e.getMessage(), e);
     }
 
+    @Override
     public void trace(String msg, Throwable e) {
         logger.log(FQCN, Level.TRACE, msg, e);
     }
 
+    @Override
     public void debug(String msg) {
         logger.log(FQCN, Level.DEBUG, msg, null);
     }
 
+    @Override
     public void debug(Throwable e) {
         logger.log(FQCN, Level.DEBUG, e == null ? null : e.getMessage(), e);
     }
 
+    @Override
     public void debug(String msg, Throwable e) {
         logger.log(FQCN, Level.DEBUG, msg, e);
     }
 
+    @Override
     public void info(String msg) {
         logger.log(FQCN, Level.INFO, msg, null);
     }
 
+    @Override
     public void info(Throwable e) {
         logger.log(FQCN, Level.INFO, e == null ? null : e.getMessage(), e);
     }
 
+    @Override
     public void info(String msg, Throwable e) {
         logger.log(FQCN, Level.INFO, msg, e);
     }
 
+    @Override
     public void warn(String msg) {
         logger.log(FQCN, Level.WARN, msg, null);
     }
 
+    @Override
     public void warn(Throwable e) {
         logger.log(FQCN, Level.WARN, e == null ? null : e.getMessage(), e);
     }
 
+    @Override
     public void warn(String msg, Throwable e) {
         logger.log(FQCN, Level.WARN, msg, e);
     }
 
+    @Override
     public void error(String msg) {
         logger.log(FQCN, Level.ERROR, msg, null);
     }
 
+    @Override
     public void error(Throwable e) {
         logger.log(FQCN, Level.ERROR, e == null ? null : e.getMessage(), e);
     }
 
+    @Override
     public void error(String msg, Throwable e) {
         logger.log(FQCN, Level.ERROR, msg, e);
     }
 
+    @Override
     public boolean isTraceEnabled() {
         return logger.isTraceEnabled();
     }
 
+    @Override
     public boolean isDebugEnabled() {
         return logger.isDebugEnabled();
     }
 
+    @Override
     public boolean isInfoEnabled() {
         return logger.isInfoEnabled();
     }
 
+    @Override
     public boolean isWarnEnabled() {
         return logger.isEnabledFor(Level.WARN);
     }
 
+    @Override
     public boolean isErrorEnabled() {
         return logger.isEnabledFor(Level.ERROR);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/log4j/Log4jLoggerAdapter.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/log4j/Log4jLoggerAdapter.java
index f051a09..3877db6 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/log4j/Log4jLoggerAdapter.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/log4j/Log4jLoggerAdapter.java
@@ -87,28 +87,34 @@ public class Log4jLoggerAdapter implements LoggerAdapter {
         return Level.OFF;
     }
 
+    @Override
     public Logger getLogger(Class<?> key) {
         return new Log4jLogger(LogManager.getLogger(key));
     }
 
+    @Override
     public Logger getLogger(String key) {
         return new Log4jLogger(LogManager.getLogger(key));
     }
 
+    @Override
     public Level getLevel() {
         return fromLog4jLevel(LogManager.getRootLogger().getLevel());
     }
 
+    @Override
     public void setLevel(Level level) {
         LogManager.getRootLogger().setLevel(toLog4jLevel(level));
     }
 
+    @Override
     public File getFile() {
         return file;
     }
 
+    @Override
     public void setFile(File file) {
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/slf4j/Slf4jLogger.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/slf4j/Slf4jLogger.java
index 563deea..f41032b 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/slf4j/Slf4jLogger.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/slf4j/Slf4jLogger.java
@@ -42,6 +42,7 @@ public class Slf4jLogger implements Logger, Serializable {
         this.logger = logger;
     }
 
+    @Override
     public void trace(String msg) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.TRACE_INT, msg, null, null);
@@ -50,6 +51,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.trace(msg);
     }
 
+    @Override
     public void trace(Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.TRACE_INT, e.getMessage(), null, e);
@@ -58,6 +60,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.trace(e.getMessage(), e);
     }
 
+    @Override
     public void trace(String msg, Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.TRACE_INT, msg, null, e);
@@ -66,6 +69,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.trace(msg, e);
     }
 
+    @Override
     public void debug(String msg) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.DEBUG_INT, msg, null, null);
@@ -74,6 +78,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.debug(msg);
     }
 
+    @Override
     public void debug(Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.DEBUG_INT, e.getMessage(), null, e);
@@ -82,6 +87,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.debug(e.getMessage(), e);
     }
 
+    @Override
     public void debug(String msg, Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.DEBUG_INT, msg, null, e);
@@ -90,6 +96,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.debug(msg, e);
     }
 
+    @Override
     public void info(String msg) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.INFO_INT, msg, null, null);
@@ -98,6 +105,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.info(msg);
     }
 
+    @Override
     public void info(Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.INFO_INT, e.getMessage(), null, e);
@@ -106,6 +114,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.info(e.getMessage(), e);
     }
 
+    @Override
     public void info(String msg, Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.INFO_INT, msg, null, e);
@@ -114,6 +123,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.info(msg, e);
     }
 
+    @Override
     public void warn(String msg) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.WARN_INT, msg, null, null);
@@ -122,6 +132,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.warn(msg);
     }
 
+    @Override
     public void warn(Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.WARN_INT, e.getMessage(), null, e);
@@ -130,6 +141,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.warn(e.getMessage(), e);
     }
 
+    @Override
     public void warn(String msg, Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.WARN_INT, msg, null, e);
@@ -138,6 +150,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.warn(msg, e);
     }
 
+    @Override
     public void error(String msg) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.ERROR_INT, msg, null, null);
@@ -146,6 +159,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.error(msg);
     }
 
+    @Override
     public void error(Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.ERROR_INT, e.getMessage(), null, e);
@@ -154,6 +168,7 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.error(e.getMessage(), e);
     }
 
+    @Override
     public void error(String msg, Throwable e) {
         if (locationAwareLogger != null) {
             locationAwareLogger.log(null, FQCN, LocationAwareLogger.ERROR_INT, msg, null, e);
@@ -162,24 +177,29 @@ public class Slf4jLogger implements Logger, Serializable {
         logger.error(msg, e);
     }
 
+    @Override
     public boolean isTraceEnabled() {
         return logger.isTraceEnabled();
     }
 
+    @Override
     public boolean isDebugEnabled() {
         return logger.isDebugEnabled();
     }
 
+    @Override
     public boolean isInfoEnabled() {
         return logger.isInfoEnabled();
     }
 
+    @Override
     public boolean isWarnEnabled() {
         return logger.isWarnEnabled();
     }
 
+    @Override
     public boolean isErrorEnabled() {
         return logger.isErrorEnabled();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/slf4j/Slf4jLoggerAdapter.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/slf4j/Slf4jLoggerAdapter.java
index a9eb18a..7889203 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/slf4j/Slf4jLoggerAdapter.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/slf4j/Slf4jLoggerAdapter.java
@@ -27,26 +27,32 @@ public class Slf4jLoggerAdapter implements LoggerAdapter {
     private Level level;
     private File file;
 
+    @Override
     public Logger getLogger(String key) {
         return new Slf4jLogger(org.slf4j.LoggerFactory.getLogger(key));
     }
 
+    @Override
     public Logger getLogger(Class<?> key) {
         return new Slf4jLogger(org.slf4j.LoggerFactory.getLogger(key));
     }
 
+    @Override
     public Level getLevel() {
         return level;
     }
 
+    @Override
     public void setLevel(Level level) {
         this.level = level;
     }
 
+    @Override
     public File getFile() {
         return file;
     }
 
+    @Override
     public void setFile(File file) {
         this.file = file;
     }
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/support/FailsafeLogger.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/support/FailsafeLogger.java
index b964693..f37579f 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/support/FailsafeLogger.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/logger/support/FailsafeLogger.java
@@ -40,6 +40,7 @@ public class FailsafeLogger implements Logger {
         return " [DUBBO] " + msg + ", dubbo version: " + Version.getVersion() + ", current host: " + NetUtils.getLocalHost();
     }
 
+    @Override
     public void trace(String msg, Throwable e) {
         try {
             logger.trace(appendContextMessage(msg), e);
@@ -47,6 +48,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void trace(Throwable e) {
         try {
             logger.trace(e);
@@ -54,6 +56,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void trace(String msg) {
         try {
             logger.trace(appendContextMessage(msg));
@@ -61,6 +64,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void debug(String msg, Throwable e) {
         try {
             logger.debug(appendContextMessage(msg), e);
@@ -68,6 +72,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void debug(Throwable e) {
         try {
             logger.debug(e);
@@ -75,6 +80,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void debug(String msg) {
         try {
             logger.debug(appendContextMessage(msg));
@@ -82,6 +88,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void info(String msg, Throwable e) {
         try {
             logger.info(appendContextMessage(msg), e);
@@ -89,6 +96,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void info(String msg) {
         try {
             logger.info(appendContextMessage(msg));
@@ -96,6 +104,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void warn(String msg, Throwable e) {
         try {
             logger.warn(appendContextMessage(msg), e);
@@ -103,6 +112,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void warn(String msg) {
         try {
             logger.warn(appendContextMessage(msg));
@@ -110,6 +120,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void error(String msg, Throwable e) {
         try {
             logger.error(appendContextMessage(msg), e);
@@ -117,6 +128,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void error(String msg) {
         try {
             logger.error(appendContextMessage(msg));
@@ -124,6 +136,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void error(Throwable e) {
         try {
             logger.error(e);
@@ -131,6 +144,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void info(Throwable e) {
         try {
             logger.info(e);
@@ -138,6 +152,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public void warn(Throwable e) {
         try {
             logger.warn(e);
@@ -145,6 +160,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public boolean isTraceEnabled() {
         try {
             return logger.isTraceEnabled();
@@ -153,6 +169,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public boolean isDebugEnabled() {
         try {
             return logger.isDebugEnabled();
@@ -161,6 +178,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public boolean isInfoEnabled() {
         try {
             return logger.isInfoEnabled();
@@ -169,6 +187,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public boolean isWarnEnabled() {
         try {
             return logger.isWarnEnabled();
@@ -177,6 +196,7 @@ public class FailsafeLogger implements Logger {
         }
     }
 
+    @Override
     public boolean isErrorEnabled() {
         try {
             return logger.isErrorEnabled();
@@ -185,4 +205,4 @@ public class FailsafeLogger implements Logger {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java
index b2ce564..018bce7 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/LoadStatusChecker.java
@@ -30,6 +30,7 @@ import java.lang.reflect.Method;
 @Activate
 public class LoadStatusChecker implements StatusChecker {
 
+    @Override
     public Status check() {
         OperatingSystemMXBean operatingSystemMXBean = ManagementFactory.getOperatingSystemMXBean();
         double load;
@@ -43,4 +44,4 @@ public class LoadStatusChecker implements StatusChecker {
         return new Status(load < 0 ? Status.Level.UNKNOWN : (load < cpu ? Status.Level.OK : Status.Level.WARN), (load < 0 ? "" : "load:" + load + ",") + "cpu:" + cpu);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/MemoryStatusChecker.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/MemoryStatusChecker.java
index c8ea8f3..65b4baa 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/MemoryStatusChecker.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/status/support/MemoryStatusChecker.java
@@ -26,6 +26,7 @@ import com.alibaba.dubbo.common.status.StatusChecker;
 @Activate
 public class MemoryStatusChecker implements StatusChecker {
 
+    @Override
     public Status check() {
         Runtime runtime = Runtime.getRuntime();
         long freeMemory = runtime.freeMemory();
@@ -37,4 +38,4 @@ public class MemoryStatusChecker implements StatusChecker {
         return new Status(ok ? Status.Level.OK : Status.Level.WARN, msg);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/store/support/SimpleDataStore.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/store/support/SimpleDataStore.java
index 69c38d1..d070875 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/store/support/SimpleDataStore.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/store/support/SimpleDataStore.java
@@ -30,6 +30,7 @@ public class SimpleDataStore implements DataStore {
     private ConcurrentMap<String, ConcurrentMap<String, Object>> data =
             new ConcurrentHashMap<String, ConcurrentMap<String, Object>>();
 
+    @Override
     public Map<String, Object> get(String componentName) {
         ConcurrentMap<String, Object> value = data.get(componentName);
         if (value == null) return new HashMap<String, Object>();
@@ -37,6 +38,7 @@ public class SimpleDataStore implements DataStore {
         return new HashMap<String, Object>(value);
     }
 
+    @Override
     public Object get(String componentName, String key) {
         if (!data.containsKey(componentName)) {
             return null;
@@ -44,6 +46,7 @@ public class SimpleDataStore implements DataStore {
         return data.get(componentName).get(key);
     }
 
+    @Override
     public void put(String componentName, String key, Object value) {
         Map<String, Object> componentData = data.get(componentName);
         if (null == componentData) {
@@ -53,6 +56,7 @@ public class SimpleDataStore implements DataStore {
         componentData.put(key, value);
     }
 
+    @Override
     public void remove(String componentName, String key) {
         if (!data.containsKey(componentName)) {
             return;
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/cached/CachedThreadPool.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/cached/CachedThreadPool.java
index f63bda0..f808ab9 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/cached/CachedThreadPool.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/cached/CachedThreadPool.java
@@ -36,6 +36,7 @@ import java.util.concurrent.TimeUnit;
  */
 public class CachedThreadPool implements ThreadPool {
 
+    @Override
     public Executor getExecutor(URL url) {
         String name = url.getParameter(Constants.THREAD_NAME_KEY, Constants.DEFAULT_THREAD_NAME);
         int cores = url.getParameter(Constants.CORE_THREADS_KEY, Constants.DEFAULT_CORE_THREADS);
@@ -49,4 +50,4 @@ public class CachedThreadPool implements ThreadPool {
                 new NamedThreadFactory(name, true), new AbortPolicyWithReport(name, url));
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/fixed/FixedThreadPool.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/fixed/FixedThreadPool.java
index c8fe922..15ebb20 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/fixed/FixedThreadPool.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/fixed/FixedThreadPool.java
@@ -35,6 +35,7 @@ import java.util.concurrent.TimeUnit;
  */
 public class FixedThreadPool implements ThreadPool {
 
+    @Override
     public Executor getExecutor(URL url) {
         String name = url.getParameter(Constants.THREAD_NAME_KEY, Constants.DEFAULT_THREAD_NAME);
         int threads = url.getParameter(Constants.THREADS_KEY, Constants.DEFAULT_THREADS);
@@ -46,4 +47,4 @@ public class FixedThreadPool implements ThreadPool {
                 new NamedThreadFactory(name, true), new AbortPolicyWithReport(name, url));
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/limited/LimitedThreadPool.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/limited/LimitedThreadPool.java
index d1d9156..aa5a71f 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/limited/LimitedThreadPool.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/threadpool/support/limited/LimitedThreadPool.java
@@ -35,6 +35,7 @@ import java.util.concurrent.TimeUnit;
  */
 public class LimitedThreadPool implements ThreadPool {
 
+    @Override
     public Executor getExecutor(URL url) {
         String name = url.getParameter(Constants.THREAD_NAME_KEY, Constants.DEFAULT_THREAD_NAME);
         int cores = url.getParameter(Constants.CORE_THREADS_KEY, Constants.DEFAULT_CORE_THREADS);
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/AtomicPositiveInteger.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/AtomicPositiveInteger.java
index f9bc27a..016efc8 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/AtomicPositiveInteger.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/AtomicPositiveInteger.java
@@ -133,30 +133,37 @@ public class AtomicPositiveInteger extends Number {
         return i.weakCompareAndSet(expect, update);
     }
 
+    @Override
     public byte byteValue() {
         return i.byteValue();
     }
 
+    @Override
     public short shortValue() {
         return i.shortValue();
     }
 
+    @Override
     public int intValue() {
         return i.intValue();
     }
 
+    @Override
     public long longValue() {
         return i.longValue();
     }
 
+    @Override
     public float floatValue() {
         return i.floatValue();
     }
 
+    @Override
     public double doubleValue() {
         return i.doubleValue();
     }
 
+    @Override
     public String toString() {
         return i.toString();
     }
@@ -177,4 +184,4 @@ public class AtomicPositiveInteger extends Number {
         return i.intValue() == other.i.intValue();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/CollectionUtils.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/CollectionUtils.java
index 300235f..314560d 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/CollectionUtils.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/CollectionUtils.java
@@ -27,6 +27,7 @@ import java.util.Map;
 public class CollectionUtils {
 
     private static final Comparator<String> SIMPLE_NAME_COMPARATOR = new Comparator<String>() {
+        @Override
         public int compare(String s1, String s2) {
             if (s1 == null && s2 == null) {
                 return 0;
@@ -206,4 +207,4 @@ public class CollectionUtils {
         return collection != null && !collection.isEmpty();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/ConcurrentHashSet.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/ConcurrentHashSet.java
index 2295d65..7eab158 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/ConcurrentHashSet.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/ConcurrentHashSet.java
@@ -46,6 +46,7 @@ public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java
      * @return an Iterator over the elements in this set
      * @see ConcurrentModificationException
      */
+    @Override
     public Iterator<E> iterator() {
         return map.keySet().iterator();
     }
@@ -55,6 +56,7 @@ public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java
      *
      * @return the number of elements in this set (its cardinality)
      */
+    @Override
     public int size() {
         return map.size();
     }
@@ -64,6 +66,7 @@ public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java
      *
      * @return <tt>true</tt> if this set contains no elements
      */
+    @Override
     public boolean isEmpty() {
         return map.isEmpty();
     }
@@ -77,6 +80,7 @@ public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java
      * @param o element whose presence in this set is to be tested
      * @return <tt>true</tt> if this set contains the specified element
      */
+    @Override
     public boolean contains(Object o) {
         return map.containsKey(o);
     }
@@ -93,6 +97,7 @@ public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java
      * @return <tt>true</tt> if this set did not already contain the specified
      * element
      */
+    @Override
     public boolean add(E e) {
         return map.put(e, PRESENT) == null;
     }
@@ -108,6 +113,7 @@ public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java
      * @param o object to be removed from this set, if present
      * @return <tt>true</tt> if the set contained the specified element
      */
+    @Override
     public boolean remove(Object o) {
         return map.remove(o) == PRESENT;
     }
@@ -116,8 +122,9 @@ public class ConcurrentHashSet<E> extends AbstractSet<E> implements Set<E>, java
      * Removes all of the elements from this set. The set will be empty after
      * this call returns.
      */
+    @Override
     public void clear() {
         map.clear();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/DubboAppender.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/DubboAppender.java
index 1d740f1..96e8949 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/DubboAppender.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/DubboAppender.java
@@ -40,6 +40,7 @@ public class DubboAppender extends ConsoleAppender {
         logList.clear();
     }
 
+    @Override
     public void append(LoggingEvent event) {
         super.append(event);
         if (available) {
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/ExecutorUtil.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/ExecutorUtil.java
index d777c0f..19d581f 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/ExecutorUtil.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/ExecutorUtil.java
@@ -93,6 +93,7 @@ public class ExecutorUtil {
     private static void newThreadToCloseExecutor(final ExecutorService es) {
         if (!isShutdown(es)) {
             shutdownExecutor.execute(new Runnable() {
+                @Override
                 public void run() {
                     try {
                         for (int i = 0; i < 1000; i++) {
@@ -122,4 +123,4 @@ public class ExecutorUtil {
         url = url.addParameter(Constants.THREAD_NAME_KEY, name);
         return url;
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/NamedThreadFactory.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/NamedThreadFactory.java
index 1443a39..3d30a03 100755
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/NamedThreadFactory.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/NamedThreadFactory.java
@@ -48,6 +48,7 @@ public class NamedThreadFactory implements ThreadFactory {
         mGroup = (s == null) ? Thread.currentThread().getThreadGroup() : s.getThreadGroup();
     }
 
+    @Override
     public Thread newThread(Runnable runnable) {
         String name = mPrefix + mThreadNum.getAndIncrement();
         Thread ret = new Thread(mGroup, runnable, name, 0);
@@ -58,4 +59,4 @@ public class NamedThreadFactory implements ThreadFactory {
     public ThreadGroup getThreadGroup() {
         return mGroup;
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/PojoUtils.java b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/PojoUtils.java
index 30290c7..754fd2d 100644
--- a/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/PojoUtils.java
+++ b/dubbo-common/src/main/java/com/alibaba/dubbo/common/utils/PojoUtils.java
@@ -204,6 +204,7 @@ public class PojoUtils {
             this.map = map;
         }
 
+        @Override
         @SuppressWarnings("unchecked")
         public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
             if (method.getDeclaringClass() == Object.class) {
@@ -589,4 +590,4 @@ public class PojoUtils {
                 && !Map.class.isAssignableFrom(cls);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractConfig.java b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractConfig.java
index caa14a5..657eebd 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractConfig.java
@@ -75,6 +75,7 @@ public abstract class AbstractConfig implements Serializable {
 
     static {
         Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
+            @Override
             public void run() {
                 if (logger.isInfoEnabled()) {
                     logger.info("Run shutdown hook now.");
@@ -491,4 +492,4 @@ public abstract class AbstractConfig implements Serializable {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractReferenceConfig.java
index c3f0264..f5ebd6b 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractReferenceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractReferenceConfig.java
@@ -114,11 +114,13 @@ public abstract class AbstractReferenceConfig extends AbstractInterfaceConfig {
         this.injvm = injvm;
     }
 
+    @Override
     @Parameter(key = Constants.REFERENCE_FILTER_KEY, append = true)
     public String getFilter() {
         return super.getFilter();
     }
 
+    @Override
     @Parameter(key = Constants.INVOKER_LISTENER_KEY, append = true)
     public String getListener() {
         return super.getListener();
@@ -196,4 +198,4 @@ public abstract class AbstractReferenceConfig extends AbstractInterfaceConfig {
         this.group = group;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractServiceConfig.java
index 00aed94..7dcd94a 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/AbstractServiceConfig.java
@@ -198,11 +198,13 @@ public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {
         this.executes = executes;
     }
 
+    @Override
     @Parameter(key = Constants.SERVICE_FILTER_KEY, append = true)
     public String getFilter() {
         return super.getFilter();
     }
 
+    @Override
     @Parameter(key = Constants.EXPORTER_LISTENER_KEY, append = true)
     public String getListener() {
         return super.getListener();
@@ -238,4 +240,4 @@ public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {
         this.serialization = serialization;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/ServiceConfig.java
index aeb7ba6..daf8f16 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/ServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/ServiceConfig.java
@@ -207,6 +207,7 @@ public class ServiceConfig<T> extends AbstractServiceConfig {
 
         if (delay != null && delay > 0) {
             delayExportExecutor.schedule(new Runnable() {
+                @Override
                 public void run() {
                     doExport();
                 }
diff --git a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java
index 14bfa50..0157f4c 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java
@@ -32,22 +32,27 @@ public class DelegateProviderMetaDataInvoker<T> implements Invoker {
         this.metadata = metadata;
     }
 
+    @Override
     public Class<T> getInterface() {
         return invoker.getInterface();
     }
 
+    @Override
     public URL getUrl() {
         return invoker.getUrl();
     }
 
+    @Override
     public boolean isAvailable() {
         return invoker.isAvailable();
     }
 
+    @Override
     public Result invoke(Invocation invocation) throws RpcException {
         return invoker.invoke(invocation);
     }
 
+    @Override
     public void destroy() {
         invoker.destroy();
     }
diff --git a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/utils/ReferenceConfigCache.java b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/utils/ReferenceConfigCache.java
index 9e5f759..ece1ddc 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/utils/ReferenceConfigCache.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/com/alibaba/dubbo/config/utils/ReferenceConfigCache.java
@@ -40,6 +40,7 @@ public class ReferenceConfigCache {
      * key example: <code>group1/com.alibaba.foo.FooService:1.0.0</code>.
      */
     public static final KeyGenerator DEFAULT_KEY_GENERATOR = new KeyGenerator() {
+        @Override
         public String generateKey(ReferenceConfig<?> referenceConfig) {
             String iName = referenceConfig.getInterface();
             if (StringUtils.isBlank(iName)) {
diff --git a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockProtocol.java b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockProtocol.java
index aabbbf9..83d03b8 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockProtocol.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockProtocol.java
@@ -29,6 +29,7 @@ public class MockProtocol implements Protocol {
     /* (non-Javadoc)
      * @see com.alibaba.dubbo.rpc.Protocol#getDefaultPort()
      */
+    @Override
     public int getDefaultPort() {
 
         return 0;
@@ -49,6 +50,7 @@ public class MockProtocol implements Protocol {
         final URL u = url;
 
         return new Invoker<T>() {
+            @Override
             public Class<T> getInterface() {
                 return null;
             }
@@ -57,6 +59,7 @@ public class MockProtocol implements Protocol {
                 return u;
             }
 
+            @Override
             public boolean isAvailable() {
                 return true;
             }
@@ -65,6 +68,7 @@ public class MockProtocol implements Protocol {
                 return null;
             }
 
+            @Override
             public void destroy() {
 
             }
@@ -74,8 +78,9 @@ public class MockProtocol implements Protocol {
     /* (non-Javadoc)
      * @see com.alibaba.dubbo.rpc.Protocol#destroy()
      */
+    @Override
     public void destroy() {
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockRegistry.java b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockRegistry.java
index c63b504..deba44a 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockRegistry.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockRegistry.java
@@ -45,6 +45,7 @@ public class MockRegistry implements Registry {
     /* 
      * @see com.alibaba.dubbo.common.Node#isAvailable()
      */
+    @Override
     public boolean isAvailable() {
         return true;
     }
@@ -52,6 +53,7 @@ public class MockRegistry implements Registry {
     /* 
      * @see com.alibaba.dubbo.common.Node#destroy()
      */
+    @Override
     public void destroy() {
 
     }
@@ -59,6 +61,7 @@ public class MockRegistry implements Registry {
     /* 
      * @see com.alibaba.dubbo.registry.RegistryService#register(com.alibaba.dubbo.common.URL)
      */
+    @Override
     public void register(URL url) {
 
     }
@@ -66,6 +69,7 @@ public class MockRegistry implements Registry {
     /* 
      * @see com.alibaba.dubbo.registry.RegistryService#unregister(com.alibaba.dubbo.common.URL)
      */
+    @Override
     public void unregister(URL url) {
 
     }
@@ -73,6 +77,7 @@ public class MockRegistry implements Registry {
     /* 
      * @see com.alibaba.dubbo.registry.RegistryService#subscribe(com.alibaba.dubbo.common.URL, com.alibaba.dubbo.registry.NotifyListener)
      */
+    @Override
     public void subscribe(URL url, NotifyListener listener) {
         this.subscribedUrl = url;
         List<URL> urls = new ArrayList<URL>();
@@ -87,6 +92,7 @@ public class MockRegistry implements Registry {
     /* 
      * @see com.alibaba.dubbo.registry.RegistryService#unsubscribe(com.alibaba.dubbo.common.URL, com.alibaba.dubbo.registry.NotifyListener)
      */
+    @Override
     public void unsubscribe(URL url, NotifyListener listener) {
 
     }
@@ -94,8 +100,9 @@ public class MockRegistry implements Registry {
     /* 
      * @see com.alibaba.dubbo.registry.RegistryService#lookup(com.alibaba.dubbo.common.URL)
      */
+    @Override
     public List<URL> lookup(URL url) {
         return null;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockRegistryFactory.java b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockRegistryFactory.java
index b08b427..b3b364f 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockRegistryFactory.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/com/alibaba/dubbo/config/support/MockRegistryFactory.java
@@ -28,9 +28,10 @@ public class MockRegistryFactory implements RegistryFactory {
     /* 
      * @see com.alibaba.dubbo.registry.RegistryFactory#getRegistry(com.alibaba.dubbo.common.URL)
      */
+    @Override
     public Registry getRegistry(URL url) {
 
         return new MockRegistry();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/AnnotationBean.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/AnnotationBean.java
index f19428c..e14fc4b 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/AnnotationBean.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/AnnotationBean.java
@@ -78,10 +78,12 @@ public class AnnotationBean extends AbstractConfig implements DisposableBean, Be
                 : Constants.COMMA_SPLIT_PATTERN.split(annotationPackage);
     }
 
+    @Override
     public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
         this.applicationContext = applicationContext;
     }
 
+    @Override
     public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
             throws BeansException {
         if (annotationPackage == null || annotationPackage.length() == 0) {
@@ -107,6 +109,7 @@ public class AnnotationBean extends AbstractConfig implements DisposableBean, Be
         }
     }
 
+    @Override
     public void destroy() throws Exception {
         for (ServiceConfig<?> serviceConfig : serviceConfigs) {
             try {
@@ -124,6 +127,7 @@ public class AnnotationBean extends AbstractConfig implements DisposableBean, Be
         }
     }
 
+    @Override
     public Object postProcessAfterInitialization(Object bean, String beanName)
             throws BeansException {
         if (!isMatchPackage(bean)) {
@@ -192,6 +196,7 @@ public class AnnotationBean extends AbstractConfig implements DisposableBean, Be
         return bean;
     }
 
+    @Override
     public Object postProcessBeforeInitialization(Object bean, String beanName)
             throws BeansException {
         if (!isMatchPackage(bean)) {
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ReferenceBean.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ReferenceBean.java
index f3aa9b0..b2e548d 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ReferenceBean.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ReferenceBean.java
@@ -56,24 +56,29 @@ public class ReferenceBean<T> extends ReferenceConfig<T> implements FactoryBean,
         super(reference);
     }
 
+    @Override
     public void setApplicationContext(ApplicationContext applicationContext) {
         this.applicationContext = applicationContext;
         SpringExtensionFactory.addApplicationContext(applicationContext);
     }
 
+    @Override
     public Object getObject() throws Exception {
         return get();
     }
 
+    @Override
     public Class<?> getObjectType() {
         return getInterfaceClass();
     }
 
+    @Override
     @Parameter(excluded = true)
     public boolean isSingleton() {
         return true;
     }
 
+    @Override
     @SuppressWarnings({"unchecked"})
     public void afterPropertiesSet() throws Exception {
         if (getConsumer() == null) {
@@ -177,4 +182,4 @@ public class ReferenceBean<T> extends ReferenceConfig<T> implements FactoryBean,
     public void destroy() {
         // do nothing
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ServiceBean.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ServiceBean.java
index 2e614ef..00986f6 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ServiceBean.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/ServiceBean.java
@@ -75,6 +75,7 @@ public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean
         return SPRING_CONTEXT;
     }
 
+    @Override
     public void setApplicationContext(ApplicationContext applicationContext) {
         this.applicationContext = applicationContext;
         SpringExtensionFactory.addApplicationContext(applicationContext);
@@ -100,6 +101,7 @@ public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean
         }
     }
 
+    @Override
     public void setBeanName(String name) {
         this.beanName = name;
     }
@@ -113,6 +115,7 @@ public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean
         return service;
     }
 
+    @Override
     public void onApplicationEvent(ContextRefreshedEvent event) {
         if (isDelay() && !isExported() && !isUnexported()) {
             if (logger.isInfoEnabled()) {
@@ -131,6 +134,7 @@ public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean
         return supportedApplicationListener && (delay == null || delay == -1);
     }
 
+    @Override
     @SuppressWarnings({"unchecked", "deprecation"})
     public void afterPropertiesSet() throws Exception {
         if (getProvider() == null) {
@@ -262,6 +266,7 @@ public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean
         }
     }
 
+    @Override
     public void destroy() throws Exception {
         // This will only be called for singleton scope bean, and expected to be called by spring shutdown hook when BeanFactory/ApplicationContext destroys.
         // We will guarantee dubbo related resources being released with dubbo shutdown hook.
@@ -269,10 +274,11 @@ public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean
     }
 
     // merged from dubbox
+    @Override
     protected Class getServiceClass(T ref) {
         if (AopUtils.isAopProxy(ref)) {
             return AopUtils.getTargetClass(ref);
         }
         return super.getServiceClass(ref);
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboClassPathBeanDefinitionScanner.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboClassPathBeanDefinitionScanner.java
index e6aaee3..4f0928e 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboClassPathBeanDefinitionScanner.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/context/annotation/DubboClassPathBeanDefinitionScanner.java
@@ -57,10 +57,12 @@ public class DubboClassPathBeanDefinitionScanner extends ClassPathBeanDefinition
 
     }
 
+    @Override
     public Set<BeanDefinitionHolder> doScan(String... basePackages) {
         return super.doScan(basePackages);
     }
 
+    @Override
     public boolean checkCandidate(String beanName, BeanDefinition beanDefinition) throws IllegalStateException {
         return super.checkCandidate(beanName, beanDefinition);
     }
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/extension/SpringExtensionFactory.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/extension/SpringExtensionFactory.java
index 3d13de4..a4c05c3 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/extension/SpringExtensionFactory.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/extension/SpringExtensionFactory.java
@@ -37,6 +37,7 @@ public class SpringExtensionFactory implements ExtensionFactory {
         contexts.remove(context);
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public <T> T getExtension(Class<T> type, String name) {
         for (ApplicationContext context : contexts) {
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java
index fb249a1..cf4ef36 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java
@@ -51,6 +51,7 @@ public class AnnotationBeanDefinitionParser extends AbstractSingleBeanDefinition
      * @param parserContext
      * @param builder
      */
+    @Override
     protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {
 
         String packageToScan = element.getAttribute("package");
@@ -66,6 +67,7 @@ public class AnnotationBeanDefinitionParser extends AbstractSingleBeanDefinition
 
     }
 
+    @Override
     protected boolean shouldGenerateIdAsFallback() {
         return true;
     }
@@ -83,6 +85,7 @@ public class AnnotationBeanDefinitionParser extends AbstractSingleBeanDefinition
 
     }
 
+    @Override
     protected Class<?> getBeanClass(Element element) {
         return ServiceAnnotationBeanPostProcessor.class;
     }
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboBeanDefinitionParser.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
index 34de12d..c9c912d 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboBeanDefinitionParser.java
@@ -411,6 +411,7 @@ public class DubboBeanDefinitionParser implements BeanDefinitionParser {
         }
     }
 
+    @Override
     public BeanDefinition parse(Element element, ParserContext parserContext) {
         return parse(element, parserContext, beanClass, required);
     }
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandler.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandler.java
index 3172dc5..81c0995 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandler.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/schema/DubboNamespaceHandler.java
@@ -39,6 +39,7 @@ public class DubboNamespaceHandler extends NamespaceHandlerSupport {
         Version.checkDuplicate(DubboNamespaceHandler.class);
     }
 
+    @Override
     public void init() {
         registerBeanDefinitionParser("application", new DubboBeanDefinitionParser(ApplicationConfig.class, true));
         registerBeanDefinitionParser("module", new DubboBeanDefinitionParser(ModuleConfig.class, true));
@@ -52,4 +53,4 @@ public class DubboNamespaceHandler extends NamespaceHandlerSupport {
         registerBeanDefinitionParser("annotation", new AnnotationBeanDefinitionParser());
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusChecker.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusChecker.java
index 198122a..99c42ab 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusChecker.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/DataSourceStatusChecker.java
@@ -38,6 +38,7 @@ public class DataSourceStatusChecker implements StatusChecker {
 
     private static final Logger logger = LoggerFactory.getLogger(DataSourceStatusChecker.class);
 
+    @Override
     @SuppressWarnings("unchecked")
     public Status check() {
         ApplicationContext context = ServiceBean.getSpringContext();
@@ -85,4 +86,4 @@ public class DataSourceStatusChecker implements StatusChecker {
         return new Status(level, buf.toString());
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/SpringStatusChecker.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/SpringStatusChecker.java
index 0303ed0..3bdc996 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/SpringStatusChecker.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/status/SpringStatusChecker.java
@@ -35,6 +35,7 @@ public class SpringStatusChecker implements StatusChecker {
 
     private static final Logger logger = LoggerFactory.getLogger(SpringStatusChecker.class);
 
+    @Override
     public Status check() {
         ApplicationContext context = ServiceBean.getSpringContext();
         if (context == null) {
@@ -81,4 +82,4 @@ public class SpringStatusChecker implements StatusChecker {
         return new Status(level, buf.toString());
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/AbstractRegistryService.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/AbstractRegistryService.java
index 0e98691..410441c 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/AbstractRegistryService.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/AbstractRegistryService.java
@@ -54,6 +54,7 @@ public abstract class AbstractRegistryService implements RegistryService {
     // Map<serviceName, List<notificationListener>>
     private final ConcurrentMap<String, List<NotifyListener>> notifyListeners = new ConcurrentHashMap<String, List<NotifyListener>>();
 
+    @Override
     public void register(URL url) {
         if (logger.isInfoEnabled()) {
             logger.info("Register service: " + url.getServiceKey() + ",url:" + url);
@@ -61,6 +62,7 @@ public abstract class AbstractRegistryService implements RegistryService {
         register(url.getServiceKey(), url);
     }
 
+    @Override
     public void unregister(URL url) {
         if (logger.isInfoEnabled()) {
             logger.info("Unregister service: " + url.getServiceKey() + ",url:" + url);
@@ -68,6 +70,7 @@ public abstract class AbstractRegistryService implements RegistryService {
         unregister(url.getServiceKey(), url);
     }
 
+    @Override
     public void subscribe(URL url, NotifyListener listener) {
         if (logger.isInfoEnabled()) {
             logger.info("Subscribe service: " + url.getServiceKey() + ",url:" + url);
@@ -75,6 +78,7 @@ public abstract class AbstractRegistryService implements RegistryService {
         subscribe(url.getServiceKey(), url, listener);
     }
 
+    @Override
     public void unsubscribe(URL url, NotifyListener listener) {
         if (logger.isInfoEnabled()) {
             logger.info("Unsubscribe service: " + url.getServiceKey() + ",url:" + url);
@@ -82,6 +86,7 @@ public abstract class AbstractRegistryService implements RegistryService {
         unsubscribe(url.getServiceKey(), url, listener);
     }
 
+    @Override
     public List<URL> lookup(URL url) {
         return getRegistered(url.getServiceKey());
     }
@@ -235,4 +240,4 @@ public abstract class AbstractRegistryService implements RegistryService {
         return Collections.unmodifiableMap(notifyListeners);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/registry/MockRegistry.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/registry/MockRegistry.java
index b0427f5..559a4e8 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/registry/MockRegistry.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/registry/MockRegistry.java
@@ -50,30 +50,37 @@ public class MockRegistry implements Registry {
         return url;
     }
 
+    @Override
     public boolean isAvailable() {
         return true;
     }
 
+    @Override
     public void destroy() {
 
     }
 
+    @Override
     public void register(URL url) {
         registered.add(url);
     }
 
+    @Override
     public void unregister(URL url) {
         registered.remove(url);
     }
 
+    @Override
     public void subscribe(URL url, NotifyListener listener) {
         subscribered.add(url);
     }
 
+    @Override
     public void unsubscribe(URL url, NotifyListener listener) {
         subscribered.remove(url);
     }
 
+    @Override
     public List<URL> lookup(URL url) {
         return null;
     }
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/registry/MockRegistryFactory.java b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/registry/MockRegistryFactory.java
index f493d3c..f6082bf 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/registry/MockRegistryFactory.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/com/alibaba/dubbo/config/spring/registry/MockRegistryFactory.java
@@ -36,6 +36,7 @@ public class MockRegistryFactory implements RegistryFactory {
         registries.clear();
     }
 
+    @Override
     public Registry getRegistry(URL url) {
         MockRegistry registry = new MockRegistry(url);
         registries.put(url, registry);
diff --git a/dubbo-container/dubbo-container-api/src/main/java/com/alibaba/dubbo/container/Main.java b/dubbo-container/dubbo-container-api/src/main/java/com/alibaba/dubbo/container/Main.java
index 27d1f3d..266ddc1 100644
--- a/dubbo-container/dubbo-container-api/src/main/java/com/alibaba/dubbo/container/Main.java
+++ b/dubbo-container/dubbo-container-api/src/main/java/com/alibaba/dubbo/container/Main.java
@@ -62,6 +62,7 @@ public class Main {
 
             if ("true".equals(System.getProperty(SHUTDOWN_HOOK_KEY))) {
                 Runtime.getRuntime().addShutdownHook(new Thread() {
+                    @Override
                     public void run() {
                         for (Container container : containers) {
                             try {
@@ -101,4 +102,4 @@ public class Main {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-container/dubbo-container-log4j/src/main/java/com/alibaba/dubbo/container/log4j/Log4jContainer.java b/dubbo-container/dubbo-container-log4j/src/main/java/com/alibaba/dubbo/container/log4j/Log4jContainer.java
index b4b21c0..378e958 100644
--- a/dubbo-container/dubbo-container-log4j/src/main/java/com/alibaba/dubbo/container/log4j/Log4jContainer.java
+++ b/dubbo-container/dubbo-container-log4j/src/main/java/com/alibaba/dubbo/container/log4j/Log4jContainer.java
@@ -40,6 +40,7 @@ public class Log4jContainer implements Container {
 
     public static final String DEFAULT_LOG4J_LEVEL = "ERROR";
 
+    @Override
     @SuppressWarnings("unchecked")
     public void start() {
         String file = ConfigUtils.getProperty(LOG4J_FILE);
@@ -92,7 +93,8 @@ public class Log4jContainer implements Container {
         }
     }
 
+    @Override
     public void stop() {
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-container/dubbo-container-logback/src/main/java/com/alibaba/dubbo/container/logback/LogbackContainer.java b/dubbo-container/dubbo-container-logback/src/main/java/com/alibaba/dubbo/container/logback/LogbackContainer.java
index 46b7eef..d4ae533 100644
--- a/dubbo-container/dubbo-container-logback/src/main/java/com/alibaba/dubbo/container/logback/LogbackContainer.java
+++ b/dubbo-container/dubbo-container-logback/src/main/java/com/alibaba/dubbo/container/logback/LogbackContainer.java
@@ -42,6 +42,7 @@ public class LogbackContainer implements Container {
 
     public static final String DEFAULT_LOGBACK_LEVEL = "ERROR";
 
+    @Override
     public void start() {
         String file = ConfigUtils.getProperty(LOGBACK_FILE);
         if (file != null && file.length() > 0) {
@@ -56,6 +57,7 @@ public class LogbackContainer implements Container {
         }
     }
 
+    @Override
     public void stop() {
     }
 
@@ -101,4 +103,4 @@ public class LogbackContainer implements Container {
         rootLogger.setAdditive(false);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-container/dubbo-container-spring/src/main/java/com/alibaba/dubbo/container/spring/SpringContainer.java b/dubbo-container/dubbo-container-spring/src/main/java/com/alibaba/dubbo/container/spring/SpringContainer.java
index ca00ce2..d21f3a5 100644
--- a/dubbo-container/dubbo-container-spring/src/main/java/com/alibaba/dubbo/container/spring/SpringContainer.java
+++ b/dubbo-container/dubbo-container-spring/src/main/java/com/alibaba/dubbo/container/spring/SpringContainer.java
@@ -37,6 +37,7 @@ public class SpringContainer implements Container {
         return context;
     }
 
+    @Override
     public void start() {
         String configPath = ConfigUtils.getProperty(SPRING_CONFIG);
         if (configPath == null || configPath.length() == 0) {
@@ -46,6 +47,7 @@ public class SpringContainer implements Container {
         context.start();
     }
 
+    @Override
     public void stop() {
         try {
             if (context != null) {
@@ -58,4 +60,4 @@ public class SpringContainer implements Container {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-demo/dubbo-demo-provider/src/main/java/com/alibaba/dubbo/demo/provider/DemoServiceImpl.java b/dubbo-demo/dubbo-demo-provider/src/main/java/com/alibaba/dubbo/demo/provider/DemoServiceImpl.java
index 59281a8..c501196 100644
--- a/dubbo-demo/dubbo-demo-provider/src/main/java/com/alibaba/dubbo/demo/provider/DemoServiceImpl.java
+++ b/dubbo-demo/dubbo-demo-provider/src/main/java/com/alibaba/dubbo/demo/provider/DemoServiceImpl.java
@@ -24,6 +24,7 @@ import java.util.Date;
 
 public class DemoServiceImpl implements DemoService {
 
+    @Override
     public String sayHello(String name) {
         System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] Hello " + name + ", request from consumer: " + RpcContext.getContext().getRemoteAddress());
         return "Hello " + name + ", response from provider: " + RpcContext.getContext().getLocalAddress();
diff --git a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/filter/CacheFilter.java b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/filter/CacheFilter.java
index f1f6668..5e064e4 100644
--- a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/filter/CacheFilter.java
+++ b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/filter/CacheFilter.java
@@ -41,6 +41,7 @@ public class CacheFilter implements Filter {
         this.cacheFactory = cacheFactory;
     }
 
+    @Override
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
         if (cacheFactory != null && ConfigUtils.isNotEmpty(invoker.getUrl().getMethodParameter(invocation.getMethodName(), Constants.CACHE_KEY))) {
             Cache cache = cacheFactory.getCache(invoker.getUrl(), invocation);
diff --git a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/AbstractCacheFactory.java b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/AbstractCacheFactory.java
index 7a6558e..e4cc98a 100644
--- a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/AbstractCacheFactory.java
+++ b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/AbstractCacheFactory.java
@@ -32,6 +32,7 @@ public abstract class AbstractCacheFactory implements CacheFactory {
 
     private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap<String, Cache>();
 
+    @Override
     public Cache getCache(URL url, Invocation invocation) {
         url = url.addParameter(Constants.METHOD_KEY, invocation.getMethodName());
         String key = url.toFullString();
diff --git a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/jcache/JCache.java b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/jcache/JCache.java
index 8ad802b..314c650 100644
--- a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/jcache/JCache.java
+++ b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/jcache/JCache.java
@@ -65,10 +65,12 @@ public class JCache implements com.alibaba.dubbo.cache.Cache {
         this.store = cache;
     }
 
+    @Override
     public void put(Object key, Object value) {
         store.put(key, value);
     }
 
+    @Override
     public Object get(Object key) {
         return store.get(key);
     }
diff --git a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/jcache/JCacheFactory.java b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/jcache/JCacheFactory.java
index 5ccc6ac..737d192 100644
--- a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/jcache/JCacheFactory.java
+++ b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/jcache/JCacheFactory.java
@@ -25,6 +25,7 @@ import com.alibaba.dubbo.common.URL;
  */
 public class JCacheFactory extends AbstractCacheFactory {
 
+    @Override
     protected Cache createCache(URL url) {
         return new JCache(url);
     }
diff --git a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/lru/LruCache.java b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/lru/LruCache.java
index a56aa0c..4fe5248 100644
--- a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/lru/LruCache.java
+++ b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/lru/LruCache.java
@@ -34,10 +34,12 @@ public class LruCache implements Cache {
         this.store = new LRUCache<Object, Object>(max);
     }
 
+    @Override
     public void put(Object key, Object value) {
         store.put(key, value);
     }
 
+    @Override
     public Object get(Object key) {
         return store.get(key);
     }
diff --git a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/lru/LruCacheFactory.java b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/lru/LruCacheFactory.java
index 376423b..2c7b28d 100644
--- a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/lru/LruCacheFactory.java
+++ b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/lru/LruCacheFactory.java
@@ -25,6 +25,7 @@ import com.alibaba.dubbo.common.URL;
  */
 public class LruCacheFactory extends AbstractCacheFactory {
 
+    @Override
     protected Cache createCache(URL url) {
         return new LruCache(url);
     }
diff --git a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/threadlocal/ThreadLocalCache.java b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/threadlocal/ThreadLocalCache.java
index bffdd17..bf8fbab 100644
--- a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/threadlocal/ThreadLocalCache.java
+++ b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/threadlocal/ThreadLocalCache.java
@@ -38,10 +38,12 @@ public class ThreadLocalCache implements Cache {
         };
     }
 
+    @Override
     public void put(Object key, Object value) {
         store.get().put(key, value);
     }
 
+    @Override
     public Object get(Object key) {
         return store.get().get(key);
     }
diff --git a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/threadlocal/ThreadLocalCacheFactory.java b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/threadlocal/ThreadLocalCacheFactory.java
index 2460666..693d33e 100644
--- a/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/threadlocal/ThreadLocalCacheFactory.java
+++ b/dubbo-filter/dubbo-filter-cache/src/main/java/com/alibaba/dubbo/cache/support/threadlocal/ThreadLocalCacheFactory.java
@@ -25,6 +25,7 @@ import com.alibaba.dubbo.common.URL;
  */
 public class ThreadLocalCacheFactory extends AbstractCacheFactory {
 
+    @Override
     protected Cache createCache(URL url) {
         return new ThreadLocalCache(url);
     }
diff --git a/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/filter/ValidationFilter.java b/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/filter/ValidationFilter.java
index d26d018..1fe717c 100644
--- a/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/filter/ValidationFilter.java
+++ b/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/filter/ValidationFilter.java
@@ -40,6 +40,7 @@ public class ValidationFilter implements Filter {
         this.validation = validation;
     }
 
+    @Override
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
         if (validation != null && !invocation.getMethodName().startsWith("$")
                 && ConfigUtils.isNotEmpty(invoker.getUrl().getMethodParameter(invocation.getMethodName(), Constants.VALIDATION_KEY))) {
diff --git a/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/support/AbstractValidation.java b/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/support/AbstractValidation.java
index f299eb9..4ffad49 100644
--- a/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/support/AbstractValidation.java
+++ b/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/support/AbstractValidation.java
@@ -30,6 +30,7 @@ public abstract class AbstractValidation implements Validation {
 
     private final ConcurrentMap<String, Validator> validators = new ConcurrentHashMap<String, Validator>();
 
+    @Override
     public Validator getValidator(URL url) {
         String key = url.toFullString();
         Validator validator = validators.get(key);
diff --git a/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/support/jvalidation/JValidator.java b/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/support/jvalidation/JValidator.java
index 9010d37..0d188a2 100644
--- a/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/support/jvalidation/JValidator.java
+++ b/dubbo-filter/dubbo-filter-validation/src/main/java/com/alibaba/dubbo/validation/support/jvalidation/JValidator.java
@@ -233,6 +233,7 @@ public class JValidator implements Validator {
         return memberValue;
     }
 
+    @Override
     public void validate(String methodName, Class<?>[] parameterTypes, Object[] arguments) throws Exception {
         List<Class<?>> groups = new ArrayList<Class<?>>();
         String methodClassName = clazz.getName() + "$" + toUpperMethoName(methodName);
diff --git a/dubbo-monitor/dubbo-monitor-api/src/main/java/com/alibaba/dubbo/monitor/support/AbstractMonitorFactory.java b/dubbo-monitor/dubbo-monitor-api/src/main/java/com/alibaba/dubbo/monitor/support/AbstractMonitorFactory.java
index 9839e2d..0a60951 100644
--- a/dubbo-monitor/dubbo-monitor-api/src/main/java/com/alibaba/dubbo/monitor/support/AbstractMonitorFactory.java
+++ b/dubbo-monitor/dubbo-monitor-api/src/main/java/com/alibaba/dubbo/monitor/support/AbstractMonitorFactory.java
@@ -60,6 +60,7 @@ public abstract class AbstractMonitorFactory implements MonitorFactory {
         return Collections.unmodifiableCollection(MONITORS.values());
     }
 
+    @Override
     public Monitor getMonitor(URL url) {
         url = url.setPath(MonitorService.class.getName()).addParameter(Constants.INTERFACE_KEY, MonitorService.class.getName());
         String key = url.toServiceStringWithoutResolving();
diff --git a/dubbo-monitor/dubbo-monitor-api/src/main/java/com/alibaba/dubbo/monitor/support/MonitorFilter.java b/dubbo-monitor/dubbo-monitor-api/src/main/java/com/alibaba/dubbo/monitor/support/MonitorFilter.java
index 679b25c..221c869 100644
--- a/dubbo-monitor/dubbo-monitor-api/src/main/java/com/alibaba/dubbo/monitor/support/MonitorFilter.java
+++ b/dubbo-monitor/dubbo-monitor-api/src/main/java/com/alibaba/dubbo/monitor/support/MonitorFilter.java
@@ -54,6 +54,7 @@ public class MonitorFilter implements Filter {
     }
 
     // intercepting invocation
+    @Override
     public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
         if (invoker.getUrl().hasParameter(Constants.MONITOR_KEY)) {
             RpcContext context = RpcContext.getContext(); // provider must fetch context before invoke() gets called
@@ -142,4 +143,4 @@ public class MonitorFilter implements Filter {
         return concurrent;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-monitor/dubbo-monitor-api/src/test/java/com/alibaba/dubbo/monitor/support/AbstractMonitorFactoryTest.java b/dubbo-monitor/dubbo-monitor-api/src/test/java/com/alibaba/dubbo/monitor/support/AbstractMonitorFactoryTest.java
index a4e48ae..cc19f5a 100644
--- a/dubbo-monitor/dubbo-monitor-api/src/test/java/com/alibaba/dubbo/monitor/support/AbstractMonitorFactoryTest.java
+++ b/dubbo-monitor/dubbo-monitor-api/src/test/java/com/alibaba/dubbo/monitor/support/AbstractMonitorFactoryTest.java
@@ -40,10 +40,12 @@ public class AbstractMonitorFactoryTest {
                     return url;
                 }
 
+                @Override
                 public boolean isAvailable() {
                     return true;
                 }
 
+                @Override
                 public void destroy() {
                 }
 
@@ -98,4 +100,4 @@ public class AbstractMonitorFactoryTest {
         Assert.assertNotSame(monitor1, monitor2);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-monitor/dubbo-monitor-api/src/test/java/com/alibaba/dubbo/monitor/support/MonitorFilterTest.java b/dubbo-monitor/dubbo-monitor-api/src/test/java/com/alibaba/dubbo/monitor/support/MonitorFilterTest.java
index 9654301..5b8a303 100644
--- a/dubbo-monitor/dubbo-monitor-api/src/test/java/com/alibaba/dubbo/monitor/support/MonitorFilterTest.java
+++ b/dubbo-monitor/dubbo-monitor-api/src/test/java/com/alibaba/dubbo/monitor/support/MonitorFilterTest.java
@@ -47,6 +47,7 @@ public class MonitorFilterTest {
     private volatile Invocation lastInvocation;
 
     private final Invoker<MonitorService> serviceInvoker = new Invoker<MonitorService>() {
+        @Override
         public Class<MonitorService> getInterface() {
             return MonitorService.class;
         }
@@ -59,6 +60,7 @@ public class MonitorFilterTest {
             }
         }
 
+        @Override
         public boolean isAvailable() {
             return false;
         }
@@ -68,21 +70,25 @@ public class MonitorFilterTest {
             return null;
         }
 
+        @Override
         public void destroy() {
         }
     };
 
     private MonitorFactory monitorFactory = new MonitorFactory() {
+        @Override
         public Monitor getMonitor(final URL url) {
             return new Monitor() {
                 public URL getUrl() {
                     return url;
                 }
 
+                @Override
                 public boolean isAvailable() {
                     return true;
                 }
 
+                @Override
                 public void destroy() {
                 }
 
@@ -141,4 +147,4 @@ public class MonitorFilterTest {
         Assert.assertEquals(invocation, lastInvocation);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-monitor/dubbo-monitor-default/src/main/java/com/alibaba/dubbo/monitor/dubbo/DubboMonitor.java b/dubbo-monitor/dubbo-monitor-default/src/main/java/com/alibaba/dubbo/monitor/dubbo/DubboMonitor.java
index b320492..122e777 100644
--- a/dubbo-monitor/dubbo-monitor-default/src/main/java/com/alibaba/dubbo/monitor/dubbo/DubboMonitor.java
+++ b/dubbo-monitor/dubbo-monitor-default/src/main/java/com/alibaba/dubbo/monitor/dubbo/DubboMonitor.java
@@ -62,6 +62,7 @@ public class DubboMonitor implements Monitor {
         this.monitorInterval = monitorInvoker.getUrl().getPositiveParameter("interval", 60000);
         // collect timer for collecting statistics data
         sendFuture = scheduledExecutorService.scheduleWithFixedDelay(new Runnable() {
+            @Override
             public void run() {
                 // collect data
                 try {
@@ -136,6 +137,7 @@ public class DubboMonitor implements Monitor {
         }
     }
 
+    @Override
     public void collect(URL url) {
         // data to collect from url
         int success = url.getParameter(MonitorService.SUCCESS, 0);
@@ -182,18 +184,22 @@ public class DubboMonitor implements Monitor {
         } while (!reference.compareAndSet(current, update));
     }
 
+    @Override
     public List<URL> lookup(URL query) {
         return monitorService.lookup(query);
     }
 
+    @Override
     public URL getUrl() {
         return monitorInvoker.getUrl();
     }
 
+    @Override
     public boolean isAvailable() {
         return monitorInvoker.isAvailable();
     }
 
+    @Override
     public void destroy() {
         try {
             sendFuture.cancel(true);
@@ -203,4 +209,4 @@ public class DubboMonitor implements Monitor {
         monitorInvoker.destroy();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-monitor/dubbo-monitor-default/src/test/java/com/alibaba/dubbo/monitor/dubbo/DubboMonitorTest.java b/dubbo-monitor/dubbo-monitor-default/src/test/java/com/alibaba/dubbo/monitor/dubbo/DubboMonitorTest.java
index 496b46d..2915419 100644
--- a/dubbo-monitor/dubbo-monitor-default/src/test/java/com/alibaba/dubbo/monitor/dubbo/DubboMonitorTest.java
+++ b/dubbo-monitor/dubbo-monitor-default/src/test/java/com/alibaba/dubbo/monitor/dubbo/DubboMonitorTest.java
@@ -41,6 +41,7 @@ import java.util.List;
 public class DubboMonitorTest {
 
     private final Invoker<MonitorService> monitorInvoker = new Invoker<MonitorService>() {
+        @Override
         public Class<MonitorService> getInterface() {
             return MonitorService.class;
         }
@@ -49,6 +50,7 @@ public class DubboMonitorTest {
             return URL.valueOf("dubbo://127.0.0.1:7070?interval=20");
         }
 
+        @Override
         public boolean isAvailable() {
             return false;
         }
@@ -57,6 +59,7 @@ public class DubboMonitorTest {
             return null;
         }
 
+        @Override
         public void destroy() {
         }
     };
@@ -156,4 +159,4 @@ public class DubboMonitorTest {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryDirectory.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryDirectory.java
index ee37c85..e832dae 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryDirectory.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryDirectory.java
@@ -159,6 +159,7 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
         registry.subscribe(url, this);
     }
 
+    @Override
     public void destroy() {
         if (isDestroyed()) {
             return;
@@ -179,6 +180,7 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
         }
     }
 
+    @Override
     public synchronized void notify(List<URL> urls) {
         List<URL> invokerUrls = new ArrayList<URL>();
         List<URL> routerUrls = new ArrayList<URL>();
@@ -566,6 +568,7 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
         }
     }
 
+    @Override
     public List<Invoker<T>> doList(Invocation invocation) {
         if (forbidden) {
             // 1. No service provider 2. Service providers are disabled
@@ -598,14 +601,17 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
         return invokers == null ? new ArrayList<Invoker<T>>(0) : invokers;
     }
 
+    @Override
     public Class<T> getInterface() {
         return serviceType;
     }
 
+    @Override
     public URL getUrl() {
         return this.overrideDirectoryUrl;
     }
 
+    @Override
     public boolean isAvailable() {
         if (isDestroyed()) {
             return false;
@@ -646,6 +652,7 @@ public class RegistryDirectory<T> extends AbstractDirectory<T> implements Notify
             return comparator;
         }
 
+        @Override
         public int compare(Invoker<?> o1, Invoker<?> o2) {
             return o1.getUrl().toString().compareTo(o2.getUrl().toString());
         }
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryProtocol.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryProtocol.java
index adf4284..3f5b731 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryProtocol.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/integration/RegistryProtocol.java
@@ -111,6 +111,7 @@ public class RegistryProtocol implements Protocol {
         this.proxyFactory = proxyFactory;
     }
 
+    @Override
     public int getDefaultPort() {
         return 9090;
     }
@@ -124,6 +125,7 @@ public class RegistryProtocol implements Protocol {
         registry.register(registedProviderUrl);
     }
 
+    @Override
     public <T> Exporter<T> export(final Invoker<T> originInvoker) throws RpcException {
         //export invoker
         final ExporterChangeableWrapper<T> exporter = doLocalExport(originInvoker);
@@ -263,6 +265,7 @@ public class RegistryProtocol implements Protocol {
         return key;
     }
 
+    @Override
     @SuppressWarnings("unchecked")
     public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {
         url = url.setProtocol(url.getParameter(Constants.REGISTRY_KEY, Constants.DEFAULT_REGISTRY)).removeParameter(Constants.REGISTRY_KEY);
@@ -309,6 +312,7 @@ public class RegistryProtocol implements Protocol {
         return invoker;
     }
 
+    @Override
     public void destroy() {
         List<Exporter<?>> exporters = new ArrayList<Exporter<?>>(bounds.values());
         for (Exporter<?> exporter : exporters) {
@@ -357,6 +361,7 @@ public class RegistryProtocol implements Protocol {
         /**
          * @param urls The list of registered information , is always not empty, The meaning is the same as the return value of {@link com.alibaba.dubbo.registry.RegistryService#lookup(URL)}.
          */
+        @Override
         public synchronized void notify(List<URL> urls) {
             logger.debug("original override urls: " + urls);
             List<URL> matchedUrls = getMatchedUrls(urls, subscribeUrl);
@@ -438,6 +443,7 @@ public class RegistryProtocol implements Protocol {
             return originInvoker;
         }
 
+        @Override
         public Invoker<T> getInvoker() {
             return exporter.getInvoker();
         }
@@ -446,6 +452,7 @@ public class RegistryProtocol implements Protocol {
             this.exporter = exporter;
         }
 
+        @Override
         public void unexport() {
             String key = getCacheKey(this.originInvoker);
             bounds.remove(key);
@@ -469,10 +476,12 @@ public class RegistryProtocol implements Protocol {
             this.registerUrl = registerUrl;
         }
 
+        @Override
         public Invoker<T> getInvoker() {
             return exporter.getInvoker();
         }
 
+        @Override
         public void unexport() {
             Registry registry = RegistryProtocol.INSTANCE.getRegistry(originInvoker);
             try {
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/status/RegistryStatusChecker.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/status/RegistryStatusChecker.java
index 998d6cf..3298656 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/status/RegistryStatusChecker.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/status/RegistryStatusChecker.java
@@ -31,6 +31,7 @@ import java.util.Collection;
 @Activate
 public class RegistryStatusChecker implements StatusChecker {
 
+    @Override
     public Status check() {
         Collection<Registry> regsitries = AbstractRegistryFactory.getRegistries();
         if (regsitries == null || regsitries.isEmpty()) {
@@ -53,4 +54,4 @@ public class RegistryStatusChecker implements StatusChecker {
         return new Status(level, buf.toString());
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistry.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistry.java
index 7b9acfb..8ece0a6 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistry.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistry.java
@@ -103,6 +103,7 @@ public abstract class AbstractRegistry implements Registry {
         return urls;
     }
 
+    @Override
     public URL getUrl() {
         return registryUrl;
     }
@@ -230,6 +231,7 @@ public abstract class AbstractRegistry implements Registry {
         return null;
     }
 
+    @Override
     public List<URL> lookup(URL url) {
         List<URL> result = new ArrayList<URL>();
         Map<String, List<URL>> notifiedUrls = getNotified().get(url);
@@ -244,6 +246,7 @@ public abstract class AbstractRegistry implements Registry {
         } else {
             final AtomicReference<List<URL>> reference = new AtomicReference<List<URL>>();
             NotifyListener listener = new NotifyListener() {
+                @Override
                 public void notify(List<URL> urls) {
                     reference.set(urls);
                 }
@@ -261,6 +264,7 @@ public abstract class AbstractRegistry implements Registry {
         return result;
     }
 
+    @Override
     public void register(URL url) {
         if (url == null) {
             throw new IllegalArgumentException("register url == null");
@@ -271,6 +275,7 @@ public abstract class AbstractRegistry implements Registry {
         registered.add(url);
     }
 
+    @Override
     public void unregister(URL url) {
         if (url == null) {
             throw new IllegalArgumentException("unregister url == null");
@@ -281,6 +286,7 @@ public abstract class AbstractRegistry implements Registry {
         registered.remove(url);
     }
 
+    @Override
     public void subscribe(URL url, NotifyListener listener) {
         if (url == null) {
             throw new IllegalArgumentException("subscribe url == null");
@@ -299,6 +305,7 @@ public abstract class AbstractRegistry implements Registry {
         listeners.add(listener);
     }
 
+    @Override
     public void unsubscribe(URL url, NotifyListener listener) {
         if (url == null) {
             throw new IllegalArgumentException("unsubscribe url == null");
@@ -438,6 +445,7 @@ public abstract class AbstractRegistry implements Registry {
         }
     }
 
+    @Override
     public void destroy() {
         if (logger.isInfoEnabled()) {
             logger.info("Destroy registry:" + getUrl());
@@ -475,6 +483,7 @@ public abstract class AbstractRegistry implements Registry {
         }
     }
 
+    @Override
     public String toString() {
         return getUrl().toString();
     }
@@ -486,9 +495,10 @@ public abstract class AbstractRegistry implements Registry {
             this.version = version;
         }
 
+        @Override
         public void run() {
             doSaveProperties(version);
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
index 1fa4429..5bf35f7 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java
@@ -80,6 +80,7 @@ public abstract class AbstractRegistryFactory implements RegistryFactory {
         }
     }
 
+    @Override
     public Registry getRegistry(URL url) {
         url = url.setPath(RegistryService.class.getName())
                 .addParameter(Constants.INTERFACE_KEY, RegistryService.class.getName())
@@ -106,4 +107,4 @@ public abstract class AbstractRegistryFactory implements RegistryFactory {
 
     protected abstract Registry createRegistry(URL url);
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/ConsumerInvokerWrapper.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/ConsumerInvokerWrapper.java
index e0cb8e1..879ea28 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/ConsumerInvokerWrapper.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/ConsumerInvokerWrapper.java
@@ -41,22 +41,27 @@ public class ConsumerInvokerWrapper<T> implements Invoker {
         this.registryDirectory = registryDirectory;
     }
 
+    @Override
     public Class<T> getInterface() {
         return invoker.getInterface();
     }
 
+    @Override
     public URL getUrl() {
         return invoker.getUrl();
     }
 
+    @Override
     public boolean isAvailable() {
         return invoker.isAvailable();
     }
 
+    @Override
     public Result invoke(Invocation invocation) throws RpcException {
         return invoker.invoke(invocation);
     }
 
+    @Override
     public void destroy() {
         invoker.destroy();
     }
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/FailbackRegistry.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/FailbackRegistry.java
index 86afffd..ced0efa 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/FailbackRegistry.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/FailbackRegistry.java
@@ -61,6 +61,7 @@ public abstract class FailbackRegistry extends AbstractRegistry {
         super(url);
         int retryPeriod = url.getParameter(Constants.REGISTRY_RETRY_PERIOD_KEY, Constants.DEFAULT_REGISTRY_RETRY_PERIOD);
         this.retryFuture = retryExecutor.scheduleWithFixedDelay(new Runnable() {
+            @Override
             public void run() {
                 // Check and connect to the registry
                 try {
@@ -451,4 +452,4 @@ public abstract class FailbackRegistry extends AbstractRegistry {
 
     protected abstract void doUnsubscribe(URL url, NotifyListener listener);
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/ProviderInvokerWrapper.java b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/ProviderInvokerWrapper.java
index b60fdf5..10d5957 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/ProviderInvokerWrapper.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/com/alibaba/dubbo/registry/support/ProviderInvokerWrapper.java
@@ -39,22 +39,27 @@ public class ProviderInvokerWrapper<T> implements Invoker {
         this.providerUrl = providerUrl;
     }
 
+    @Override
     public Class<T> getInterface() {
         return invoker.getInterface();
     }
 
+    @Override
     public URL getUrl() {
         return invoker.getUrl();
     }
 
+    @Override
     public boolean isAvailable() {
         return invoker.isAvailable();
     }
 
+    @Override
     public Result invoke(Invocation invocation) throws RpcException {
         return invoker.invoke(invocation);
     }
 
+    @Override
     public void destroy() {
         invoker.destroy();
     }
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
index eb7f843..cb2a454 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/AbstractRegistryFactoryTest.java
@@ -43,25 +43,32 @@ public class AbstractRegistryFactoryTest {
                     return url;
                 }
 
+                @Override
                 public boolean isAvailable() {
                     return false;
                 }
 
+                @Override
                 public void destroy() {
                 }
 
+                @Override
                 public void register(URL url) {
                 }
 
+                @Override
                 public void unregister(URL url) {
                 }
 
+                @Override
                 public void subscribe(URL url, NotifyListener listener) {
                 }
 
+                @Override
                 public void unsubscribe(URL url, NotifyListener listener) {
                 }
 
+                @Override
                 public List<URL> lookup(URL url) {
                     return null;
                 }
@@ -92,4 +99,4 @@ public class AbstractRegistryFactoryTest {
         Assert.assertNotSame(registry1, registry2);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/FailbackRegistryTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/FailbackRegistryTest.java
index 4d4306d..ed01fce 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/FailbackRegistryTest.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/com/alibaba/dubbo/registry/support/FailbackRegistryTest.java
@@ -64,6 +64,7 @@ public class FailbackRegistryTest {
         final CountDownLatch latch = new CountDownLatch(3);//All of them are called 3 times. Successful attempts to reduce the failure of 1. subscribe register will not be done again
 
         NotifyListener listner = new NotifyListener() {
+            @Override
             public void notify(List<URL> urls) {
                 notified.set(Boolean.TRUE);
             }
@@ -121,6 +122,7 @@ public class FailbackRegistryTest {
         final CountDownLatch latch = new CountDownLatch(1);//All of them are called 4 times. A successful attempt to lose 1. subscribe will not be done
 
         NotifyListener listner = new NotifyListener() {
+            @Override
             public void notify(List<URL> urls) {
                 notified.set(Boolean.TRUE);
             }
@@ -155,6 +157,7 @@ public class FailbackRegistryTest {
         final AtomicInteger count = new AtomicInteger(0);
 
         NotifyListener listner = new NotifyListener() {
+            @Override
             public void notify(List<URL> urls) {
                 count.incrementAndGet();
                 //The exception is thrown for the first time to see if the back will be called again to incrementAndGet
@@ -246,6 +249,7 @@ public class FailbackRegistryTest {
             latch.countDown();
         }
 
+        @Override
         public boolean isAvailable() {
             return true;
         }
diff --git a/dubbo-registry/dubbo-registry-default/src/main/java/com/alibaba/dubbo/registry/dubbo/DubboRegistry.java b/dubbo-registry/dubbo-registry-default/src/main/java/com/alibaba/dubbo/registry/dubbo/DubboRegistry.java
index 6a52187..9d5ab70 100644
--- a/dubbo-registry/dubbo-registry-default/src/main/java/com/alibaba/dubbo/registry/dubbo/DubboRegistry.java
+++ b/dubbo-registry/dubbo-registry-default/src/main/java/com/alibaba/dubbo/registry/dubbo/DubboRegistry.java
@@ -66,6 +66,7 @@ public class DubboRegistry extends FailbackRegistry {
         // Start reconnection timer
         int reconnectPeriod = registryInvoker.getUrl().getParameter(Constants.REGISTRY_RECONNECT_PERIOD_KEY, RECONNECT_PERIOD_DEFAULT);
         reconnectFuture = scheduledExecutorService.scheduleWithFixedDelay(new Runnable() {
+            @Override
             public void run() {
                 // Check and connect to the registry
                 try {
@@ -107,12 +108,14 @@ public class DubboRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     public boolean isAvailable() {
         if (registryInvoker == null)
             return false;
         return registryInvoker.isAvailable();
     }
 
+    @Override
     public void destroy() {
         super.destroy();
         try {
@@ -126,24 +129,29 @@ public class DubboRegistry extends FailbackRegistry {
         registryInvoker.destroy();
     }
 
+    @Override
     protected void doRegister(URL url) {
         registryService.register(url);
     }
 
+    @Override
     protected void doUnregister(URL url) {
         registryService.unregister(url);
     }
 
+    @Override
     protected void doSubscribe(URL url, NotifyListener listener) {
         registryService.subscribe(url, listener);
     }
 
+    @Override
     protected void doUnsubscribe(URL url, NotifyListener listener) {
         registryService.unsubscribe(url, listener);
     }
 
+    @Override
     public List<URL> lookup(URL url) {
         return registryService.lookup(url);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-default/src/main/java/com/alibaba/dubbo/registry/dubbo/DubboRegistryFactory.java b/dubbo-registry/dubbo-registry-default/src/main/java/com/alibaba/dubbo/registry/dubbo/DubboRegistryFactory.java
index c5be79c..6a2d5ca 100644
--- a/dubbo-registry/dubbo-registry-default/src/main/java/com/alibaba/dubbo/registry/dubbo/DubboRegistryFactory.java
+++ b/dubbo-registry/dubbo-registry-default/src/main/java/com/alibaba/dubbo/registry/dubbo/DubboRegistryFactory.java
@@ -75,6 +75,7 @@ public class DubboRegistryFactory extends AbstractRegistryFactory {
         this.cluster = cluster;
     }
 
+    @Override
     public Registry createRegistry(URL url) {
         url = getRegistryURL(url);
         List<URL> urls = new ArrayList<URL>();
@@ -96,4 +97,4 @@ public class DubboRegistryFactory extends AbstractRegistryFactory {
         directory.subscribe(new URL(Constants.CONSUMER_PROTOCOL, NetUtils.getLocalHost(), 0, RegistryService.class.getName(), url.getParameters()));
         return registry;
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/AbstractRegistryService.java b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/AbstractRegistryService.java
index 5afca44..67665b3 100644
--- a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/AbstractRegistryService.java
+++ b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/AbstractRegistryService.java
@@ -55,6 +55,7 @@ public abstract class AbstractRegistryService implements RegistryService {
     // Map<serviceName, List<notificationListener>>
     private final ConcurrentMap<String, List<NotifyListener>> notifyListeners = new ConcurrentHashMap<String, List<NotifyListener>>();
 
+    @Override
     public void register(URL url) {
         if (logger.isInfoEnabled()) {
             logger.info("Register service: " + url.getServiceKey() + ",url:" + url);
@@ -62,6 +63,7 @@ public abstract class AbstractRegistryService implements RegistryService {
         register(url.getServiceKey(), url);
     }
 
+    @Override
     public void unregister(URL url) {
         if (logger.isInfoEnabled()) {
             logger.info("Unregister service: " + url.getServiceKey() + ",url:" + url);
@@ -69,6 +71,7 @@ public abstract class AbstractRegistryService implements RegistryService {
         unregister(url.getServiceKey(), url);
     }
 
+    @Override
     public void subscribe(URL url, NotifyListener listener) {
         if (logger.isInfoEnabled()) {
             logger.info("Subscribe service: " + url.getServiceKey() + ",url:" + url);
@@ -76,6 +79,7 @@ public abstract class AbstractRegistryService implements RegistryService {
         subscribe(url.getServiceKey(), url, listener);
     }
 
+    @Override
     public void unsubscribe(URL url, NotifyListener listener) {
         if (logger.isInfoEnabled()) {
             logger.info("Unsubscribe service: " + url.getServiceKey() + ",url:" + url);
@@ -83,6 +87,7 @@ public abstract class AbstractRegistryService implements RegistryService {
         unsubscribe(url.getServiceKey(), url, listener);
     }
 
+    @Override
     public List<URL> lookup(URL url) {
         return getRegistered(url.getServiceKey());
     }
@@ -237,4 +242,4 @@ public abstract class AbstractRegistryService implements RegistryService {
         return Collections.unmodifiableMap(notifyListeners);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/MockChannel.java b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/MockChannel.java
index e5c286b..581a4ff 100644
--- a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/MockChannel.java
+++ b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/MockChannel.java
@@ -38,25 +38,31 @@ public class MockChannel implements ExchangeChannel {
         closed = false;
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return localAddress;
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return remoteAddress;
     }
 
+    @Override
     public boolean isConnected() {
         return true;
     }
 
+    @Override
     public void close() {
         closed = true;
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
     }
 
+    @Override
     public void close(int timeout) {
     }
 
@@ -65,6 +71,7 @@ public class MockChannel implements ExchangeChannel {
         closing = true;
     }
 
+    @Override
     public URL getUrl() {
         return null;
     }
@@ -73,6 +80,7 @@ public class MockChannel implements ExchangeChannel {
         return null;
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return null;
     }
@@ -89,28 +97,34 @@ public class MockChannel implements ExchangeChannel {
         return null;
     }
 
+    @Override
     public Object getAttribute(String key) {
         return null;
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
 
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return false;
     }
 
+    @Override
     public boolean isClosed() {
         return false;
     }
 
+    @Override
     public void removeAttribute(String key) {
 
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
 
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/MockedClient.java b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/MockedClient.java
index fd3bbda..f1a2e53 100644
--- a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/MockedClient.java
+++ b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/MockedClient.java
@@ -69,10 +69,12 @@ public class MockedClient implements ExchangeClient {
     public void open() {
     }
 
+    @Override
     public void close() {
         this.closed = true;
     }
 
+    @Override
     public void send(Object msg) throws RemotingException {
         this.sent = msg;
     }
@@ -117,6 +119,7 @@ public class MockedClient implements ExchangeClient {
         //this.listener = null;
     }
 
+    @Override
     public boolean isConnected() {
         return connected;
     }
@@ -140,6 +143,7 @@ public class MockedClient implements ExchangeClient {
         return invoked;
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return address;
     }
@@ -148,6 +152,7 @@ public class MockedClient implements ExchangeClient {
         return "mocked";
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return null;
     }
@@ -159,6 +164,7 @@ public class MockedClient implements ExchangeClient {
     public void setTimeout(int timeout) {
     }
 
+    @Override
     public void close(int timeout) {
         close();
     }
@@ -200,6 +206,7 @@ public class MockedClient implements ExchangeClient {
     public void setThreadCount(int threadCount) {
     }
 
+    @Override
     public URL getUrl() {
         return null;
     }
@@ -208,6 +215,7 @@ public class MockedClient implements ExchangeClient {
         return null;
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return null;
     }
@@ -223,25 +231,31 @@ public class MockedClient implements ExchangeClient {
         return null;
     }
 
+    @Override
     public void reconnect() throws RemotingException {
     }
 
+    @Override
     public Object getAttribute(String key) {
         return null;
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
 
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return false;
     }
 
+    @Override
     public boolean isClosed() {
         return closed;
     }
 
+    @Override
     public void removeAttribute(String key) {
 
     }
@@ -260,9 +274,11 @@ public class MockedClient implements ExchangeClient {
         this.received = received;
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
     }
 
+    @Override
     public void reset(URL url) {
     }
 
@@ -270,4 +286,4 @@ public class MockedClient implements ExchangeClient {
     public void reset(com.alibaba.dubbo.common.Parameters parameters) {
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/RegistryDirectoryTest.java b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/RegistryDirectoryTest.java
index 298d301..3463407 100644
--- a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/RegistryDirectoryTest.java
+++ b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/RegistryDirectoryTest.java
@@ -1035,22 +1035,27 @@ public class RegistryDirectoryTest {
             this.destroyWithError = destroyWithError;
         }
 
+        @Override
         public void register(URL url) {
 
         }
 
+        @Override
         public void unregister(URL url) {
 
         }
 
+        @Override
         public void subscribe(URL url, NotifyListener listener) {
 
         }
 
+        @Override
         public void unsubscribe(URL url, NotifyListener listener) {
             if (latch != null) latch.countDown();
         }
 
+        @Override
         public List<URL> lookup(URL url) {
             return null;
         }
@@ -1059,14 +1064,16 @@ public class RegistryDirectoryTest {
             return null;
         }
 
+        @Override
         public boolean isAvailable() {
             return true;
         }
 
+        @Override
         public void destroy() {
             if (destroyWithError) {
                 throw new RpcException("test exception ignore.");
             }
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/RegistryProtocolTest.java b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/RegistryProtocolTest.java
index f55ac41..57eb695 100644
--- a/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/RegistryProtocolTest.java
+++ b/dubbo-registry/dubbo-registry-default/src/test/java/com/alibaba/dubbo/registry/dubbo/RegistryProtocolTest.java
@@ -181,9 +181,10 @@ public class RegistryProtocolTest {
             super(url);
         }
 
+        @Override
         public boolean isAvailable() {
             return true;
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistry.java b/dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistry.java
index e90edef..aa499fc 100644
--- a/dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistry.java
+++ b/dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistry.java
@@ -88,6 +88,7 @@ public class MulticastRegistry extends FailbackRegistry {
             mutilcastSocket.setLoopbackMode(false);
             mutilcastSocket.joinGroup(mutilcastAddress);
             Thread thread = new Thread(new Runnable() {
+                @Override
                 public void run() {
                     byte[] buf = new byte[2048];
                     DatagramPacket recv = new DatagramPacket(buf, buf.length);
@@ -117,6 +118,7 @@ public class MulticastRegistry extends FailbackRegistry {
         this.cleanPeriod = url.getParameter(Constants.SESSION_TIMEOUT_KEY, Constants.DEFAULT_SESSION_TIMEOUT);
         if (url.getParameter("clean", true)) {
             this.cleanFuture = cleanExecutor.scheduleWithFixedDelay(new Runnable() {
+                @Override
                 public void run() {
                     try {
                         clean(); // Remove the expired
@@ -254,14 +256,17 @@ public class MulticastRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     protected void doRegister(URL url) {
         broadcast(Constants.REGISTER + " " + url.toFullString());
     }
 
+    @Override
     protected void doUnregister(URL url) {
         broadcast(Constants.UNREGISTER + " " + url.toFullString());
     }
 
+    @Override
     protected void doSubscribe(URL url, NotifyListener listener) {
         if (Constants.ANY_VALUE.equals(url.getServiceInterface())) {
             admin = true;
@@ -275,6 +280,7 @@ public class MulticastRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     protected void doUnsubscribe(URL url, NotifyListener listener) {
         if (!Constants.ANY_VALUE.equals(url.getServiceInterface())
                 && url.getParameter(Constants.REGISTER_KEY, true)) {
@@ -283,6 +289,7 @@ public class MulticastRegistry extends FailbackRegistry {
         broadcast(Constants.UNSUBSCRIBE + " " + url.toFullString());
     }
 
+    @Override
     public boolean isAvailable() {
         try {
             return mutilcastSocket != null;
@@ -291,6 +298,7 @@ public class MulticastRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     public void destroy() {
         super.destroy();
         try {
@@ -367,26 +375,31 @@ public class MulticastRegistry extends FailbackRegistry {
         return list;
     }
 
+    @Override
     public void register(URL url) {
         super.register(url);
         registered(url);
     }
 
+    @Override
     public void unregister(URL url) {
         super.unregister(url);
         unregistered(url);
     }
 
+    @Override
     public void subscribe(URL url, NotifyListener listener) {
         super.subscribe(url, listener);
         subscribed(url, listener);
     }
 
+    @Override
     public void unsubscribe(URL url, NotifyListener listener) {
         super.unsubscribe(url, listener);
         received.remove(url);
     }
 
+    @Override
     public List<URL> lookup(URL url) {
         List<URL> urls = new ArrayList<URL>();
         Map<String, List<URL>> notifiedUrls = getNotified().get(url);
@@ -426,4 +439,4 @@ public class MulticastRegistry extends FailbackRegistry {
         return received;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryFactory.java b/dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryFactory.java
index 5b81456..12fd13c 100644
--- a/dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryFactory.java
+++ b/dubbo-registry/dubbo-registry-multicast/src/main/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryFactory.java
@@ -26,8 +26,9 @@ import com.alibaba.dubbo.registry.support.AbstractRegistryFactory;
  */
 public class MulticastRegistryFactory extends AbstractRegistryFactory {
 
+    @Override
     public Registry createRegistry(URL url) {
         return new MulticastRegistry(url);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-multicast/src/test/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryTest.java b/dubbo-registry/dubbo-registry-multicast/src/test/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryTest.java
index 5ddffdd..3870d54 100644
--- a/dubbo-registry/dubbo-registry-multicast/src/test/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryTest.java
+++ b/dubbo-registry/dubbo-registry-multicast/src/test/java/com/alibaba/dubbo/registry/multicast/MulticastRegistryTest.java
@@ -101,6 +101,7 @@ public class MulticastRegistryTest {
         final AtomicReference<URL> args = new AtomicReference<URL>();
         registry.subscribe(consumerUrl, new NotifyListener() {
 
+            @Override
             public void notify(List<URL> urls) {
                 // FIXME assertEquals(MulticastRegistry.this.service, service);
                 args.set(urls.get(0));
@@ -123,4 +124,4 @@ public class MulticastRegistryTest {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-redis/src/main/java/com/alibaba/dubbo/registry/redis/RedisRegistry.java b/dubbo-registry/dubbo-registry-redis/src/main/java/com/alibaba/dubbo/registry/redis/RedisRegistry.java
index 4cc87dd..ea4b22c 100644
--- a/dubbo-registry/dubbo-registry-redis/src/main/java/com/alibaba/dubbo/registry/redis/RedisRegistry.java
+++ b/dubbo-registry/dubbo-registry-redis/src/main/java/com/alibaba/dubbo/registry/redis/RedisRegistry.java
@@ -152,6 +152,7 @@ public class RedisRegistry extends FailbackRegistry {
 
         this.expirePeriod = url.getParameter(Constants.SESSION_TIMEOUT_KEY, Constants.DEFAULT_SESSION_TIMEOUT);
         this.expireFuture = expireExecutor.scheduleWithFixedDelay(new Runnable() {
+            @Override
             public void run() {
                 try {
                     deferExpired(); // Extend the expiration time
@@ -221,6 +222,7 @@ public class RedisRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     public boolean isAvailable() {
         for (JedisPool jedisPool : jedisPools.values()) {
             try {
diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/com/alibaba/dubbo/registry/zookeeper/ZookeeperRegistry.java b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/com/alibaba/dubbo/registry/zookeeper/ZookeeperRegistry.java
index dcce7e4..8bebf53 100644
--- a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/com/alibaba/dubbo/registry/zookeeper/ZookeeperRegistry.java
+++ b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/com/alibaba/dubbo/registry/zookeeper/ZookeeperRegistry.java
@@ -68,6 +68,7 @@ public class ZookeeperRegistry extends FailbackRegistry {
         this.root = group;
         zkClient = zookeeperTransporter.connect(url);
         zkClient.addStateListener(new StateListener() {
+            @Override
             public void stateChanged(int state) {
                 if (state == RECONNECTED) {
                     try {
@@ -92,10 +93,12 @@ public class ZookeeperRegistry extends FailbackRegistry {
         return address;
     }
 
+    @Override
     public boolean isAvailable() {
         return zkClient.isConnected();
     }
 
+    @Override
     public void destroy() {
         super.destroy();
         try {
@@ -105,6 +108,7 @@ public class ZookeeperRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     protected void doRegister(URL url) {
         try {
             zkClient.create(toUrlPath(url), url.getParameter(Constants.DYNAMIC_KEY, true));
@@ -113,6 +117,7 @@ public class ZookeeperRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     protected void doUnregister(URL url) {
         try {
             zkClient.delete(toUrlPath(url));
@@ -121,6 +126,7 @@ public class ZookeeperRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     protected void doSubscribe(final URL url, final NotifyListener listener) {
         try {
             if (Constants.ANY_VALUE.equals(url.getServiceInterface())) {
@@ -133,6 +139,7 @@ public class ZookeeperRegistry extends FailbackRegistry {
                 ChildListener zkListener = listeners.get(listener);
                 if (zkListener == null) {
                     listeners.putIfAbsent(listener, new ChildListener() {
+                        @Override
                         public void childChanged(String parentPath, List<String> currentChilds) {
                             for (String child : currentChilds) {
                                 child = URL.decode(child);
@@ -167,6 +174,7 @@ public class ZookeeperRegistry extends FailbackRegistry {
                     ChildListener zkListener = listeners.get(listener);
                     if (zkListener == null) {
                         listeners.putIfAbsent(listener, new ChildListener() {
+                            @Override
                             public void childChanged(String parentPath, List<String> currentChilds) {
                                 ZookeeperRegistry.this.notify(url, listener, toUrlsWithEmpty(url, parentPath, currentChilds));
                             }
@@ -186,6 +194,7 @@ public class ZookeeperRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     protected void doUnsubscribe(URL url, NotifyListener listener) {
         ConcurrentMap<NotifyListener, ChildListener> listeners = zkListeners.get(url);
         if (listeners != null) {
@@ -196,6 +205,7 @@ public class ZookeeperRegistry extends FailbackRegistry {
         }
     }
 
+    @Override
     public List<URL> lookup(URL url) {
         if (url == null) {
             throw new IllegalArgumentException("lookup url == null");
@@ -283,4 +293,4 @@ public class ZookeeperRegistry extends FailbackRegistry {
         return urls;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/com/alibaba/dubbo/registry/zookeeper/ZookeeperRegistryFactory.java b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/com/alibaba/dubbo/registry/zookeeper/ZookeeperRegistryFactory.java
index d0bba0a..94eff83 100644
--- a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/com/alibaba/dubbo/registry/zookeeper/ZookeeperRegistryFactory.java
+++ b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/com/alibaba/dubbo/registry/zookeeper/ZookeeperRegistryFactory.java
@@ -33,8 +33,9 @@ public class ZookeeperRegistryFactory extends AbstractRegistryFactory {
         this.zookeeperTransporter = zookeeperTransporter;
     }
 
+    @Override
     public Registry createRegistry(URL url) {
         return new ZookeeperRegistry(url, zookeeperTransporter);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/AbstractChannelBuffer.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/AbstractChannelBuffer.java
index 6347c0d..b924de2 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/AbstractChannelBuffer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/AbstractChannelBuffer.java
@@ -32,10 +32,12 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
 
     private int markedWriterIndex;
 
+    @Override
     public int readerIndex() {
         return readerIndex;
     }
 
+    @Override
     public void readerIndex(int readerIndex) {
         if (readerIndex < 0 || readerIndex > writerIndex) {
             throw new IndexOutOfBoundsException();
@@ -43,10 +45,12 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         this.readerIndex = readerIndex;
     }
 
+    @Override
     public int writerIndex() {
         return writerIndex;
     }
 
+    @Override
     public void writerIndex(int writerIndex) {
         if (writerIndex < readerIndex || writerIndex > capacity()) {
             throw new IndexOutOfBoundsException();
@@ -54,6 +58,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         this.writerIndex = writerIndex;
     }
 
+    @Override
     public void setIndex(int readerIndex, int writerIndex) {
         if (readerIndex < 0 || readerIndex > writerIndex || writerIndex > capacity()) {
             throw new IndexOutOfBoundsException();
@@ -62,42 +67,52 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         this.writerIndex = writerIndex;
     }
 
+    @Override
     public void clear() {
         readerIndex = writerIndex = 0;
     }
 
+    @Override
     public boolean readable() {
         return readableBytes() > 0;
     }
 
+    @Override
     public boolean writable() {
         return writableBytes() > 0;
     }
 
+    @Override
     public int readableBytes() {
         return writerIndex - readerIndex;
     }
 
+    @Override
     public int writableBytes() {
         return capacity() - writerIndex;
     }
 
+    @Override
     public void markReaderIndex() {
         markedReaderIndex = readerIndex;
     }
 
+    @Override
     public void resetReaderIndex() {
         readerIndex(markedReaderIndex);
     }
 
+    @Override
     public void markWriterIndex() {
         markedWriterIndex = writerIndex;
     }
 
+    @Override
     public void resetWriterIndex() {
         writerIndex = markedWriterIndex;
     }
 
+    @Override
     public void discardReadBytes() {
         if (readerIndex == 0) {
             return;
@@ -109,20 +124,24 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         readerIndex = 0;
     }
 
+    @Override
     public void ensureWritableBytes(int writableBytes) {
         if (writableBytes > writableBytes()) {
             throw new IndexOutOfBoundsException();
         }
     }
 
+    @Override
     public void getBytes(int index, byte[] dst) {
         getBytes(index, dst, 0, dst.length);
     }
 
+    @Override
     public void getBytes(int index, ChannelBuffer dst) {
         getBytes(index, dst, dst.writableBytes());
     }
 
+    @Override
     public void getBytes(int index, ChannelBuffer dst, int length) {
         if (length > dst.writableBytes()) {
             throw new IndexOutOfBoundsException();
@@ -131,14 +150,17 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         dst.writerIndex(dst.writerIndex() + length);
     }
 
+    @Override
     public void setBytes(int index, byte[] src) {
         setBytes(index, src, 0, src.length);
     }
 
+    @Override
     public void setBytes(int index, ChannelBuffer src) {
         setBytes(index, src, src.readableBytes());
     }
 
+    @Override
     public void setBytes(int index, ChannelBuffer src, int length) {
         if (length > src.readableBytes()) {
             throw new IndexOutOfBoundsException();
@@ -147,6 +169,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         src.readerIndex(src.readerIndex() + length);
     }
 
+    @Override
     public byte readByte() {
         if (readerIndex == writerIndex) {
             throw new IndexOutOfBoundsException();
@@ -154,6 +177,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         return getByte(readerIndex++);
     }
 
+    @Override
     public ChannelBuffer readBytes(int length) {
         checkReadableBytes(length);
         if (length == 0) {
@@ -165,20 +189,24 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         return buf;
     }
 
+    @Override
     public void readBytes(byte[] dst, int dstIndex, int length) {
         checkReadableBytes(length);
         getBytes(readerIndex, dst, dstIndex, length);
         readerIndex += length;
     }
 
+    @Override
     public void readBytes(byte[] dst) {
         readBytes(dst, 0, dst.length);
     }
 
+    @Override
     public void readBytes(ChannelBuffer dst) {
         readBytes(dst, dst.writableBytes());
     }
 
+    @Override
     public void readBytes(ChannelBuffer dst, int length) {
         if (length > dst.writableBytes()) {
             throw new IndexOutOfBoundsException();
@@ -187,12 +215,14 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         dst.writerIndex(dst.writerIndex() + length);
     }
 
+    @Override
     public void readBytes(ChannelBuffer dst, int dstIndex, int length) {
         checkReadableBytes(length);
         getBytes(readerIndex, dst, dstIndex, length);
         readerIndex += length;
     }
 
+    @Override
     public void readBytes(ByteBuffer dst) {
         int length = dst.remaining();
         checkReadableBytes(length);
@@ -200,12 +230,14 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         readerIndex += length;
     }
 
+    @Override
     public void readBytes(OutputStream out, int length) throws IOException {
         checkReadableBytes(length);
         getBytes(readerIndex, out, length);
         readerIndex += length;
     }
 
+    @Override
     public void skipBytes(int length) {
         int newReaderIndex = readerIndex + length;
         if (newReaderIndex > writerIndex) {
@@ -214,23 +246,28 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         readerIndex = newReaderIndex;
     }
 
+    @Override
     public void writeByte(int value) {
         setByte(writerIndex++, value);
     }
 
+    @Override
     public void writeBytes(byte[] src, int srcIndex, int length) {
         setBytes(writerIndex, src, srcIndex, length);
         writerIndex += length;
     }
 
+    @Override
     public void writeBytes(byte[] src) {
         writeBytes(src, 0, src.length);
     }
 
+    @Override
     public void writeBytes(ChannelBuffer src) {
         writeBytes(src, src.readableBytes());
     }
 
+    @Override
     public void writeBytes(ChannelBuffer src, int length) {
         if (length > src.readableBytes()) {
             throw new IndexOutOfBoundsException();
@@ -239,17 +276,20 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         src.readerIndex(src.readerIndex() + length);
     }
 
+    @Override
     public void writeBytes(ChannelBuffer src, int srcIndex, int length) {
         setBytes(writerIndex, src, srcIndex, length);
         writerIndex += length;
     }
 
+    @Override
     public void writeBytes(ByteBuffer src) {
         int length = src.remaining();
         setBytes(writerIndex, src);
         writerIndex += length;
     }
 
+    @Override
     public int writeBytes(InputStream in, int length) throws IOException {
         int writtenBytes = setBytes(writerIndex, in, length);
         if (writtenBytes > 0) {
@@ -258,10 +298,12 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
         return writtenBytes;
     }
 
+    @Override
     public ChannelBuffer copy() {
         return copy(readerIndex, readableBytes());
     }
 
+    @Override
     public ByteBuffer toByteBuffer() {
         return toByteBuffer(readerIndex, readableBytes());
     }
@@ -272,6 +314,7 @@ public abstract class AbstractChannelBuffer implements ChannelBuffer {
                 && ChannelBuffers.equals(this, (ChannelBuffer) o);
     }
 
+    @Override
     public int compareTo(ChannelBuffer that) {
         return ChannelBuffers.compare(this, that);
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/ByteBufferBackedChannelBuffer.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/ByteBufferBackedChannelBuffer.java
index 4d5e2eb..54447f9 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/ByteBufferBackedChannelBuffer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/ByteBufferBackedChannelBuffer.java
@@ -44,6 +44,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
         setIndex(buffer.readerIndex(), buffer.writerIndex());
     }
 
+    @Override
     public ChannelBufferFactory factory() {
         if (buffer.isDirect()) {
             return DirectChannelBufferFactory.getInstance();
@@ -53,11 +54,13 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public int capacity() {
         return capacity;
     }
 
 
+    @Override
     public ChannelBuffer copy(int index, int length) {
         ByteBuffer src;
         try {
@@ -75,11 +78,13 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public byte getByte(int index) {
         return buffer.get(index);
     }
 
 
+    @Override
     public void getBytes(int index, byte[] dst, int dstIndex, int length) {
         ByteBuffer data = buffer.duplicate();
         try {
@@ -91,6 +96,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public void getBytes(int index, ByteBuffer dst) {
         ByteBuffer data = buffer.duplicate();
         int bytesToCopy = Math.min(capacity() - index, dst.remaining());
@@ -103,6 +109,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
         if (dst instanceof ByteBufferBackedChannelBuffer) {
             ByteBufferBackedChannelBuffer bbdst = (ByteBufferBackedChannelBuffer) dst;
@@ -118,6 +125,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public void getBytes(int index, OutputStream out, int length) throws IOException {
         if (length == 0) {
             return;
@@ -136,16 +144,19 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public boolean isDirect() {
         return buffer.isDirect();
     }
 
 
+    @Override
     public void setByte(int index, int value) {
         buffer.put(index, (byte) value);
     }
 
 
+    @Override
     public void setBytes(int index, byte[] src, int srcIndex, int length) {
         ByteBuffer data = buffer.duplicate();
         data.limit(index + length).position(index);
@@ -153,6 +164,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public void setBytes(int index, ByteBuffer src) {
         ByteBuffer data = buffer.duplicate();
         data.limit(index + src.remaining()).position(index);
@@ -160,6 +172,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
         if (src instanceof ByteBufferBackedChannelBuffer) {
             ByteBufferBackedChannelBuffer bbsrc = (ByteBufferBackedChannelBuffer) src;
@@ -175,6 +188,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public ByteBuffer toByteBuffer(int index, int length) {
         if (index == 0 && length == capacity()) {
             return buffer.duplicate();
@@ -185,6 +199,7 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public int setBytes(int index, InputStream in, int length) throws IOException {
         int readBytes = 0;
 
@@ -225,16 +240,19 @@ public class ByteBufferBackedChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public byte[] array() {
         return buffer.array();
     }
 
 
+    @Override
     public boolean hasArray() {
         return buffer.hasArray();
     }
 
 
+    @Override
     public int arrayOffset() {
         return buffer.arrayOffset();
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/ChannelBuffer.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/ChannelBuffer.java
index da669cf..4771d16 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/ChannelBuffer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/ChannelBuffer.java
@@ -274,6 +274,7 @@ public interface ChannelBuffer extends Comparable<ChannelBuffer> {
      * method also returns {@code false} for {@code null} and an object which is
      * not an instance of {@link ChannelBuffer} type.
      */
+    @Override
     public boolean equals(Object o);
 
     /**
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferFactory.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferFactory.java
index 18a646e..ec67070 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferFactory.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/DirectChannelBufferFactory.java
@@ -31,6 +31,7 @@ public class DirectChannelBufferFactory implements ChannelBufferFactory {
         return INSTANCE;
     }
 
+    @Override
     public ChannelBuffer getBuffer(int capacity) {
         if (capacity < 0) {
             throw new IllegalArgumentException("capacity: " + capacity);
@@ -41,6 +42,7 @@ public class DirectChannelBufferFactory implements ChannelBufferFactory {
         return ChannelBuffers.directBuffer(capacity);
     }
 
+    @Override
     public ChannelBuffer getBuffer(byte[] array, int offset, int length) {
         if (array == null) {
             throw new NullPointerException("array");
@@ -60,6 +62,7 @@ public class DirectChannelBufferFactory implements ChannelBufferFactory {
         return buf;
     }
 
+    @Override
     public ChannelBuffer getBuffer(ByteBuffer nioBuffer) {
         if (!nioBuffer.isReadOnly() && nioBuffer.isDirect()) {
             return ChannelBuffers.wrappedBuffer(nioBuffer);
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/DynamicChannelBuffer.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/DynamicChannelBuffer.java
index 7f9c563..2cb4851 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/DynamicChannelBuffer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/DynamicChannelBuffer.java
@@ -66,11 +66,13 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public int capacity() {
         return buffer.capacity();
     }
 
 
+    @Override
     public ChannelBuffer copy(int index, int length) {
         DynamicChannelBuffer copiedBuffer = new DynamicChannelBuffer(Math.max(length, 64), factory());
         copiedBuffer.buffer = buffer.copy(index, length);
@@ -79,66 +81,79 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public ChannelBufferFactory factory() {
         return factory;
     }
 
 
+    @Override
     public byte getByte(int index) {
         return buffer.getByte(index);
     }
 
 
+    @Override
     public void getBytes(int index, byte[] dst, int dstIndex, int length) {
         buffer.getBytes(index, dst, dstIndex, length);
     }
 
 
+    @Override
     public void getBytes(int index, ByteBuffer dst) {
         buffer.getBytes(index, dst);
     }
 
 
+    @Override
     public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
         buffer.getBytes(index, dst, dstIndex, length);
     }
 
 
+    @Override
     public void getBytes(int index, OutputStream dst, int length) throws IOException {
         buffer.getBytes(index, dst, length);
     }
 
 
+    @Override
     public boolean isDirect() {
         return buffer.isDirect();
     }
 
 
+    @Override
     public void setByte(int index, int value) {
         buffer.setByte(index, value);
     }
 
 
+    @Override
     public void setBytes(int index, byte[] src, int srcIndex, int length) {
         buffer.setBytes(index, src, srcIndex, length);
     }
 
 
+    @Override
     public void setBytes(int index, ByteBuffer src) {
         buffer.setBytes(index, src);
     }
 
 
+    @Override
     public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
         buffer.setBytes(index, src, srcIndex, length);
     }
 
 
+    @Override
     public int setBytes(int index, InputStream src, int length) throws IOException {
         return buffer.setBytes(index, src, length);
     }
 
 
+    @Override
     public ByteBuffer toByteBuffer(int index, int length) {
         return buffer.toByteBuffer(index, length);
     }
@@ -174,16 +189,19 @@ public class DynamicChannelBuffer extends AbstractChannelBuffer {
     }
 
 
+    @Override
     public byte[] array() {
         return buffer.array();
     }
 
 
+    @Override
     public boolean hasArray() {
         return buffer.hasArray();
     }
 
 
+    @Override
     public int arrayOffset() {
         return buffer.arrayOffset();
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBuffer.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBuffer.java
index e61a7d0..952b693 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBuffer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBuffer.java
@@ -65,30 +65,37 @@ public class HeapChannelBuffer extends AbstractChannelBuffer {
         setIndex(readerIndex, writerIndex);
     }
 
+    @Override
     public boolean isDirect() {
         return false;
     }
 
+    @Override
     public int capacity() {
         return array.length;
     }
 
+    @Override
     public boolean hasArray() {
         return true;
     }
 
+    @Override
     public byte[] array() {
         return array;
     }
 
+    @Override
     public int arrayOffset() {
         return 0;
     }
 
+    @Override
     public byte getByte(int index) {
         return array[index];
     }
 
+    @Override
     public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
         if (dst instanceof HeapChannelBuffer) {
             getBytes(index, ((HeapChannelBuffer) dst).array, dstIndex, length);
@@ -97,14 +104,17 @@ public class HeapChannelBuffer extends AbstractChannelBuffer {
         }
     }
 
+    @Override
     public void getBytes(int index, byte[] dst, int dstIndex, int length) {
         System.arraycopy(array, index, dst, dstIndex, length);
     }
 
+    @Override
     public void getBytes(int index, ByteBuffer dst) {
         dst.put(array, index, Math.min(capacity() - index, dst.remaining()));
     }
 
+    @Override
     public void getBytes(int index, OutputStream out, int length)
             throws IOException {
         out.write(array, index, length);
@@ -115,10 +125,12 @@ public class HeapChannelBuffer extends AbstractChannelBuffer {
         return out.write(ByteBuffer.wrap(array, index, length));
     }
 
+    @Override
     public void setByte(int index, int value) {
         array[index] = (byte) value;
     }
 
+    @Override
     public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
         if (src instanceof HeapChannelBuffer) {
             setBytes(index, ((HeapChannelBuffer) src).array, srcIndex, length);
@@ -127,14 +139,17 @@ public class HeapChannelBuffer extends AbstractChannelBuffer {
         }
     }
 
+    @Override
     public void setBytes(int index, byte[] src, int srcIndex, int length) {
         System.arraycopy(src, srcIndex, array, index, length);
     }
 
+    @Override
     public void setBytes(int index, ByteBuffer src) {
         src.get(array, index, src.remaining());
     }
 
+    @Override
     public int setBytes(int index, InputStream in, int length) throws IOException {
         int readBytes = 0;
         do {
@@ -180,6 +195,7 @@ public class HeapChannelBuffer extends AbstractChannelBuffer {
         return readBytes;
     }
 
+    @Override
     public ChannelBuffer copy(int index, int length) {
         if (index < 0 || length < 0 || index + length > array.length) {
             throw new IndexOutOfBoundsException();
@@ -190,10 +206,12 @@ public class HeapChannelBuffer extends AbstractChannelBuffer {
         return new HeapChannelBuffer(copiedArray);
     }
 
+    @Override
     public ChannelBufferFactory factory() {
         return HeapChannelBufferFactory.getInstance();
     }
 
+    @Override
     public ByteBuffer toByteBuffer(int index, int length) {
         return ByteBuffer.wrap(array, index, length);
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBufferFactory.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBufferFactory.java
index d91f2c2..88628a0 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBufferFactory.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/buffer/HeapChannelBufferFactory.java
@@ -31,14 +31,17 @@ public class HeapChannelBufferFactory implements ChannelBufferFactory {
         return INSTANCE;
     }
 
+    @Override
     public ChannelBuffer getBuffer(int capacity) {
         return ChannelBuffers.buffer(capacity);
     }
 
+    @Override
     public ChannelBuffer getBuffer(byte[] array, int offset, int length) {
         return ChannelBuffers.wrappedBuffer(array, offset, length);
     }
 
+    @Override
     public ChannelBuffer getBuffer(ByteBuffer nioBuffer) {
         if (nioBuffer.hasArray()) {
             return ChannelBuffers.wrappedBuffer(nioBuffer);
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/ExchangeChannel.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/ExchangeChannel.java
index dd645c2..1ffdc78 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/ExchangeChannel.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/ExchangeChannel.java
@@ -55,6 +55,7 @@ public interface ExchangeChannel extends Channel {
      *
      * @param timeout
      */
+    @Override
     void close(int timeout);
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/codec/ExchangeCodec.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/codec/ExchangeCodec.java
index c35da1e..10025d2 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/codec/ExchangeCodec.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/codec/ExchangeCodec.java
@@ -65,6 +65,7 @@ public class ExchangeCodec extends TelnetCodec {
         return MAGIC;
     }
 
+    @Override
     public void encode(Channel channel, ChannelBuffer buffer, Object msg) throws IOException {
         if (msg instanceof Request) {
             encodeRequest(channel, buffer, (Request) msg);
@@ -75,6 +76,7 @@ public class ExchangeCodec extends TelnetCodec {
         }
     }
 
+    @Override
     public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
         int readable = buffer.readableBytes();
         byte[] header = new byte[Math.min(readable, HEADER_LENGTH)];
@@ -82,6 +84,7 @@ public class ExchangeCodec extends TelnetCodec {
         return decode(channel, buffer, readable, header);
     }
 
+    @Override
     protected Object decode(Channel channel, ChannelBuffer buffer, int readable, byte[] header) throws IOException {
         // check magic number.
         if (readable > 0 && header[0] != MAGIC_HIGH
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/DefaultFuture.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/DefaultFuture.java
index 9ce56ba..eccc86d 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/DefaultFuture.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/DefaultFuture.java
@@ -107,10 +107,12 @@ public class DefaultFuture implements ResponseFuture {
         }
     }
 
+    @Override
     public Object get() throws RemotingException {
         return get(timeout);
     }
 
+    @Override
     public Object get(int timeout) throws RemotingException {
         if (timeout <= 0) {
             timeout = Constants.DEFAULT_TIMEOUT;
@@ -145,10 +147,12 @@ public class DefaultFuture implements ResponseFuture {
         CHANNELS.remove(id);
     }
 
+    @Override
     public boolean isDone() {
         return response != null;
     }
 
+    @Override
     public void setCallback(ResponseCallback callback) {
         if (isDone()) {
             invokeCallback(callback);
@@ -276,6 +280,7 @@ public class DefaultFuture implements ResponseFuture {
 
     private static class RemotingInvocationTimeoutScan implements Runnable {
 
+        @Override
         public void run() {
             while (true) {
                 try {
@@ -301,4 +306,4 @@ public class DefaultFuture implements ResponseFuture {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java
index aaefa9a..9deb434 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java
@@ -26,8 +26,9 @@ import com.alibaba.dubbo.remoting.telnet.support.TelnetHandlerAdapter;
  */
 public abstract class ExchangeHandlerAdapter extends TelnetHandlerAdapter implements ExchangeHandler {
 
+    @Override
     public Object reply(ExchangeChannel channel, Object msg) throws RemotingException {
         return null;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java
index d770969..179ba92 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java
@@ -80,33 +80,40 @@ public class ExchangeHandlerDispatcher implements ExchangeHandler {
         return this;
     }
 
+    @Override
     @SuppressWarnings({"unchecked", "rawtypes"})
     public Object reply(ExchangeChannel channel, Object request) throws RemotingException {
         return ((Replier) replierDispatcher).reply(channel, request);
     }
 
+    @Override
     public void connected(Channel channel) {
         handlerDispatcher.connected(channel);
     }
 
+    @Override
     public void disconnected(Channel channel) {
         handlerDispatcher.disconnected(channel);
     }
 
+    @Override
     public void sent(Channel channel, Object message) {
         handlerDispatcher.sent(channel, message);
     }
 
+    @Override
     public void received(Channel channel, Object message) {
         handlerDispatcher.received(channel, message);
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) {
         handlerDispatcher.caught(channel, exception);
     }
 
+    @Override
     public String telnet(Channel channel, String message) throws RemotingException {
         return telnetHandler.telnet(channel, message);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeServerDelegate.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeServerDelegate.java
index bcb1f9e..dd563c9 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeServerDelegate.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ExchangeServerDelegate.java
@@ -48,63 +48,78 @@ public class ExchangeServerDelegate implements ExchangeServer {
         this.server = server;
     }
 
+    @Override
     public boolean isBound() {
         return server.isBound();
     }
 
+    @Override
     public void reset(URL url) {
         server.reset(url);
     }
 
+    @Override
     @Deprecated
     public void reset(com.alibaba.dubbo.common.Parameters parameters) {
         reset(getUrl().addParameters(parameters.getParameters()));
     }
 
+    @Override
     public Collection<Channel> getChannels() {
         return server.getChannels();
     }
 
+    @Override
     public Channel getChannel(InetSocketAddress remoteAddress) {
         return server.getChannel(remoteAddress);
     }
 
+    @Override
     public URL getUrl() {
         return server.getUrl();
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return server.getChannelHandler();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return server.getLocalAddress();
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         server.send(message);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         server.send(message, sent);
     }
 
+    @Override
     public void close() {
         server.close();
     }
 
+    @Override
     public boolean isClosed() {
         return server.isClosed();
     }
 
+    @Override
     public Collection<ExchangeChannel> getExchangeChannels() {
         return server.getExchangeChannels();
     }
 
+    @Override
     public ExchangeChannel getExchangeChannel(InetSocketAddress remoteAddress) {
         return server.getExchangeChannel(remoteAddress);
     }
 
+    @Override
     public void close(int timeout) {
         server.close(timeout);
     }
@@ -114,4 +129,4 @@ public class ExchangeServerDelegate implements ExchangeServer {
         server.startClose();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/MultiMessage.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/MultiMessage.java
index dc68b7e..afd41f4 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/MultiMessage.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/MultiMessage.java
@@ -78,6 +78,7 @@ public final class MultiMessage implements Iterable {
         return result;
     }
 
+    @Override
     public Iterator iterator() {
         return messages.iterator();
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ReplierDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ReplierDispatcher.java
index 9bea4ee..8d6bff5 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ReplierDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/ReplierDispatcher.java
@@ -68,9 +68,10 @@ public class ReplierDispatcher implements Replier<Object> {
         throw new IllegalStateException("Replier not found, Unsupported message object: " + type);
     }
 
+    @Override
     @SuppressWarnings({"unchecked", "rawtypes"})
     public Object reply(ExchangeChannel channel, Object request) throws RemotingException {
         return ((Replier) getReplier(request.getClass())).reply(channel, request);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/SimpleFuture.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/SimpleFuture.java
index 555c56e..a851793 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/SimpleFuture.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/SimpleFuture.java
@@ -31,20 +31,24 @@ public class SimpleFuture implements ResponseFuture {
         this.value = value;
     }
 
+    @Override
     public Object get() throws RemotingException {
         return value;
     }
 
+    @Override
     public Object get(int timeoutInMillis) throws RemotingException {
         return value;
     }
 
+    @Override
     public void setCallback(ResponseCallback callback) {
         callback.done(value);
     }
 
+    @Override
     public boolean isDone() {
         return true;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java
index 9654cef..7b6bd8c 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java
@@ -72,10 +72,12 @@ final class HeaderExchangeChannel implements ExchangeChannel {
         }
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         send(message, getUrl().getParameter(Constants.SENT_KEY, false));
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         if (closed) {
             throw new RemotingException(this.getLocalAddress(), null, "Failed to send message " + message + ", cause: The channel " + this + " is closed!");
@@ -93,10 +95,12 @@ final class HeaderExchangeChannel implements ExchangeChannel {
         }
     }
 
+    @Override
     public ResponseFuture request(Object request) throws RemotingException {
         return request(request, channel.getUrl().getPositiveParameter(Constants.TIMEOUT_KEY, Constants.DEFAULT_TIMEOUT));
     }
 
+    @Override
     public ResponseFuture request(Object request, int timeout) throws RemotingException {
         if (closed) {
             throw new RemotingException(this.getLocalAddress(), null, "Failed to send request " + request + ", cause: The channel " + this + " is closed!");
@@ -116,10 +120,12 @@ final class HeaderExchangeChannel implements ExchangeChannel {
         return future;
     }
 
+    @Override
     public boolean isClosed() {
         return closed;
     }
 
+    @Override
     public void close() {
         try {
             channel.close();
@@ -129,6 +135,7 @@ final class HeaderExchangeChannel implements ExchangeChannel {
     }
 
     // graceful close
+    @Override
     public void close(int timeout) {
         if (closed) {
             return;
@@ -153,42 +160,52 @@ final class HeaderExchangeChannel implements ExchangeChannel {
         channel.startClose();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return channel.getLocalAddress();
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return channel.getRemoteAddress();
     }
 
+    @Override
     public URL getUrl() {
         return channel.getUrl();
     }
 
+    @Override
     public boolean isConnected() {
         return channel.isConnected();
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return channel.getChannelHandler();
     }
 
+    @Override
     public ExchangeHandler getExchangeHandler() {
         return (ExchangeHandler) channel.getChannelHandler();
     }
 
+    @Override
     public Object getAttribute(String key) {
         return channel.getAttribute(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         channel.setAttribute(key, value);
     }
 
+    @Override
     public void removeAttribute(String key) {
         channel.removeAttribute(key);
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return channel.hasAttribute(key);
     }
@@ -218,4 +235,4 @@ final class HeaderExchangeChannel implements ExchangeChannel {
         return channel.toString();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeClient.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeClient.java
index d9980f3..d6009f5 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeClient.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeClient.java
@@ -70,55 +70,68 @@ public class HeaderExchangeClient implements ExchangeClient {
         }
     }
 
+    @Override
     public ResponseFuture request(Object request) throws RemotingException {
         return channel.request(request);
     }
 
+    @Override
     public URL getUrl() {
         return channel.getUrl();
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return channel.getRemoteAddress();
     }
 
+    @Override
     public ResponseFuture request(Object request, int timeout) throws RemotingException {
         return channel.request(request, timeout);
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return channel.getChannelHandler();
     }
 
+    @Override
     public boolean isConnected() {
         return channel.isConnected();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return channel.getLocalAddress();
     }
 
+    @Override
     public ExchangeHandler getExchangeHandler() {
         return channel.getExchangeHandler();
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         channel.send(message);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         channel.send(message, sent);
     }
 
+    @Override
     public boolean isClosed() {
         return channel.isClosed();
     }
 
+    @Override
     public void close() {
         doClose();
         channel.close();
     }
 
+    @Override
     public void close(int timeout) {
         // Mark the client into the closure process
         startClose();
@@ -131,31 +144,38 @@ public class HeaderExchangeClient implements ExchangeClient {
         channel.startClose();
     }
 
+    @Override
     public void reset(URL url) {
         client.reset(url);
     }
 
+    @Override
     @Deprecated
     public void reset(com.alibaba.dubbo.common.Parameters parameters) {
         reset(getUrl().addParameters(parameters.getParameters()));
     }
 
+    @Override
     public void reconnect() throws RemotingException {
         client.reconnect();
     }
 
+    @Override
     public Object getAttribute(String key) {
         return channel.getAttribute(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         channel.setAttribute(key, value);
     }
 
+    @Override
     public void removeAttribute(String key) {
         channel.removeAttribute(key);
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return channel.hasAttribute(key);
     }
@@ -165,6 +185,7 @@ public class HeaderExchangeClient implements ExchangeClient {
         if (heartbeat > 0) {
             heartbeatTimer = scheduled.scheduleWithFixedDelay(
                     new HeartBeatTask(new HeartBeatTask.ChannelProvider() {
+                        @Override
                         public Collection<Channel> getChannels() {
                             return Collections.<Channel>singletonList(HeaderExchangeClient.this);
                         }
@@ -195,4 +216,4 @@ public class HeaderExchangeClient implements ExchangeClient {
     public String toString() {
         return "HeaderExchangeClient [channel=" + channel + "]";
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
index dedd61c..3c37817 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java
@@ -103,6 +103,7 @@ public class HeaderExchangeHandler implements ChannelHandlerDelegate {
         return res;
     }
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
         channel.setAttribute(KEY_READ_TIMESTAMP, System.currentTimeMillis());
         channel.setAttribute(KEY_WRITE_TIMESTAMP, System.currentTimeMillis());
@@ -114,6 +115,7 @@ public class HeaderExchangeHandler implements ChannelHandlerDelegate {
         }
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
         channel.setAttribute(KEY_READ_TIMESTAMP, System.currentTimeMillis());
         channel.setAttribute(KEY_WRITE_TIMESTAMP, System.currentTimeMillis());
@@ -125,6 +127,7 @@ public class HeaderExchangeHandler implements ChannelHandlerDelegate {
         }
     }
 
+    @Override
     public void sent(Channel channel, Object message) throws RemotingException {
         Throwable exception = null;
         try {
@@ -154,6 +157,7 @@ public class HeaderExchangeHandler implements ChannelHandlerDelegate {
         }
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         channel.setAttribute(KEY_READ_TIMESTAMP, System.currentTimeMillis());
         ExchangeChannel exchangeChannel = HeaderExchangeChannel.getOrAddChannel(channel);
@@ -191,6 +195,7 @@ public class HeaderExchangeHandler implements ChannelHandlerDelegate {
         }
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) throws RemotingException {
         if (exception instanceof ExecutionException) {
             ExecutionException e = (ExecutionException) exception;
@@ -214,6 +219,7 @@ public class HeaderExchangeHandler implements ChannelHandlerDelegate {
         }
     }
 
+    @Override
     public ChannelHandler getHandler() {
         if (handler instanceof ChannelHandlerDelegate) {
             return ((ChannelHandlerDelegate) handler).getHandler();
@@ -221,4 +227,4 @@ public class HeaderExchangeHandler implements ChannelHandlerDelegate {
             return handler;
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeServer.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeServer.java
index 67b9ff2..2a09c5d 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeServer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchangeServer.java
@@ -77,6 +77,7 @@ public class HeaderExchangeServer implements ExchangeServer {
         return server;
     }
 
+    @Override
     public boolean isClosed() {
         return server.isClosed();
     }
@@ -91,11 +92,13 @@ public class HeaderExchangeServer implements ExchangeServer {
         return false;
     }
 
+    @Override
     public void close() {
         doClose();
         server.close();
     }
 
+    @Override
     public void close(final int timeout) {
         startClose();
         if (timeout > 0) {
@@ -151,6 +154,7 @@ public class HeaderExchangeServer implements ExchangeServer {
         }
     }
 
+    @Override
     public Collection<ExchangeChannel> getExchangeChannels() {
         Collection<ExchangeChannel> exchangeChannels = new ArrayList<ExchangeChannel>();
         Collection<Channel> channels = server.getChannels();
@@ -162,36 +166,44 @@ public class HeaderExchangeServer implements ExchangeServer {
         return exchangeChannels;
     }
 
+    @Override
     public ExchangeChannel getExchangeChannel(InetSocketAddress remoteAddress) {
         Channel channel = server.getChannel(remoteAddress);
         return HeaderExchangeChannel.getOrAddChannel(channel);
     }
 
+    @Override
     @SuppressWarnings({"unchecked", "rawtypes"})
     public Collection<Channel> getChannels() {
         return (Collection) getExchangeChannels();
     }
 
+    @Override
     public Channel getChannel(InetSocketAddress remoteAddress) {
         return getExchangeChannel(remoteAddress);
     }
 
+    @Override
     public boolean isBound() {
         return server.isBound();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return server.getLocalAddress();
     }
 
+    @Override
     public URL getUrl() {
         return server.getUrl();
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return server.getChannelHandler();
     }
 
+    @Override
     public void reset(URL url) {
         server.reset(url);
         try {
@@ -213,11 +225,13 @@ public class HeaderExchangeServer implements ExchangeServer {
         }
     }
 
+    @Override
     @Deprecated
     public void reset(com.alibaba.dubbo.common.Parameters parameters) {
         reset(getUrl().addParameters(parameters.getParameters()));
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         if (closed.get()) {
             throw new RemotingException(this.getLocalAddress(), null, "Failed to send message " + message + ", cause: The server " + getLocalAddress() + " is closed!");
@@ -225,6 +239,7 @@ public class HeaderExchangeServer implements ExchangeServer {
         server.send(message);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         if (closed.get()) {
             throw new RemotingException(this.getLocalAddress(), null, "Failed to send message " + message + ", cause: The server " + getLocalAddress() + " is closed!");
@@ -237,6 +252,7 @@ public class HeaderExchangeServer implements ExchangeServer {
         if (heartbeat > 0) {
             heartbeatTimer = scheduled.scheduleWithFixedDelay(
                     new HeartBeatTask(new HeartBeatTask.ChannelProvider() {
+                        @Override
                         public Collection<Channel> getChannels() {
                             return Collections.unmodifiableCollection(
                                     HeaderExchangeServer.this.getChannels());
@@ -259,4 +275,4 @@ public class HeaderExchangeServer implements ExchangeServer {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchanger.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchanger.java
index 1c55ebe..06a14de 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchanger.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeaderExchanger.java
@@ -34,12 +34,14 @@ public class HeaderExchanger implements Exchanger {
 
     public static final String NAME = "header";
 
+    @Override
     public ExchangeClient connect(URL url, ExchangeHandler handler) throws RemotingException {
         return new HeaderExchangeClient(Transporters.connect(url, new DecodeHandler(new HeaderExchangeHandler(handler))), true);
     }
 
+    @Override
     public ExchangeServer bind(URL url, ExchangeHandler handler) throws RemotingException {
         return new HeaderExchangeServer(Transporters.bind(url, new DecodeHandler(new HeaderExchangeHandler(handler))));
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartBeatTask.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartBeatTask.java
index 2d417b2..ce529b9 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartBeatTask.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartBeatTask.java
@@ -41,6 +41,7 @@ final class HeartBeatTask implements Runnable {
         this.heartbeatTimeout = heartbeatTimeout;
     }
 
+    @Override
     public void run() {
         try {
             long now = System.currentTimeMillis();
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandler.java
index 7cdffb5..2ec9a9b 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandler.java
@@ -39,23 +39,27 @@ public class HeartbeatHandler extends AbstractChannelHandlerDelegate {
         super(handler);
     }
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
         setReadTimestamp(channel);
         setWriteTimestamp(channel);
         handler.connected(channel);
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
         clearReadTimestamp(channel);
         clearWriteTimestamp(channel);
         handler.disconnected(channel);
     }
 
+    @Override
     public void sent(Channel channel, Object message) throws RemotingException {
         setWriteTimestamp(channel);
         handler.sent(channel, message);
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         setReadTimestamp(channel);
         if (isHeartbeatRequest(message)) {
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/codec/TelnetCodec.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/codec/TelnetCodec.java
index afdbc3b..638e4fc 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/codec/TelnetCodec.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/codec/TelnetCodec.java
@@ -136,6 +136,7 @@ public class TelnetCodec extends TransportCodec {
         return true;
     }
 
+    @Override
     public void encode(Channel channel, ChannelBuffer buffer, Object message) throws IOException {
         if (message instanceof String) {
             if (isClientSide(channel)) {
@@ -148,6 +149,7 @@ public class TelnetCodec extends TransportCodec {
         }
     }
 
+    @Override
     public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
         int readable = buffer.readableBytes();
         byte[] message = new byte[readable];
@@ -285,4 +287,4 @@ public class TelnetCodec extends TransportCodec {
         return result;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java
index 2f08b8e..478ce0f 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java
@@ -27,6 +27,7 @@ public class TelnetHandlerAdapter extends ChannelHandlerAdapter implements Telne
 
     private final ExtensionLoader<TelnetHandler> extensionLoader = ExtensionLoader.getExtensionLoader(TelnetHandler.class);
 
+    @Override
     public String telnet(Channel channel, String message) throws RemotingException {
         String prompt = channel.getUrl().getParameterAndDecoded(Constants.PROMPT_KEY, Constants.DEFAULT_PROMPT);
         boolean noprompt = message.contains("--no-prompt");
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/ClearTelnetHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/ClearTelnetHandler.java
index 1ab7499..5876955 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/ClearTelnetHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/ClearTelnetHandler.java
@@ -29,6 +29,7 @@ import com.alibaba.dubbo.remoting.telnet.support.Help;
 @Help(parameter = "[lines]", summary = "Clear screen.", detail = "Clear screen.")
 public class ClearTelnetHandler implements TelnetHandler {
 
+    @Override
     public String telnet(Channel channel, String message) {
         int lines = 100;
         if (message.length() > 0) {
@@ -44,4 +45,4 @@ public class ClearTelnetHandler implements TelnetHandler {
         return buf.toString();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/ExitTelnetHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/ExitTelnetHandler.java
index 5964753..22f78b5 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/ExitTelnetHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/ExitTelnetHandler.java
@@ -28,9 +28,10 @@ import com.alibaba.dubbo.remoting.telnet.support.Help;
 @Help(parameter = "", summary = "Exit the telnet.", detail = "Exit the telnet.")
 public class ExitTelnetHandler implements TelnetHandler {
 
+    @Override
     public String telnet(Channel channel, String message) {
         channel.close();
         return null;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java
index 15bd4d4..3eb0899 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java
@@ -35,6 +35,7 @@ public class HelpTelnetHandler implements TelnetHandler {
 
     private final ExtensionLoader<TelnetHandler> extensionLoader = ExtensionLoader.getExtensionLoader(TelnetHandler.class);
 
+    @Override
     public String telnet(Channel channel, String message) {
         if (message.length() > 0) {
             if (!extensionLoader.hasExtension(message)) {
@@ -68,4 +69,4 @@ public class HelpTelnetHandler implements TelnetHandler {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/LogTelnetHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/LogTelnetHandler.java
index 4996699..c5ae959 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/LogTelnetHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/LogTelnetHandler.java
@@ -41,6 +41,7 @@ public class LogTelnetHandler implements TelnetHandler {
 
     public static final String SERVICE_KEY = "telnet.log";
 
+    @Override
     public String telnet(Channel channel, String message) {
         long size = 0;
         File file = LoggerFactory.getFile();
@@ -98,4 +99,4 @@ public class LogTelnetHandler implements TelnetHandler {
         return buf.toString();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/StatusTelnetHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/StatusTelnetHandler.java
index a78ae65..0cf08de 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/StatusTelnetHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/telnet/support/command/StatusTelnetHandler.java
@@ -41,6 +41,7 @@ public class StatusTelnetHandler implements TelnetHandler {
 
     private final ExtensionLoader<StatusChecker> extensionLoader = ExtensionLoader.getExtensionLoader(StatusChecker.class);
 
+    @Override
     public String telnet(Channel channel, String message) {
         if (message.equals("-l")) {
             List<StatusChecker> checkers = extensionLoader.getActivateExtension(channel.getUrl(), "status");
@@ -95,4 +96,4 @@ public class StatusTelnetHandler implements TelnetHandler {
         return String.valueOf(stat.getLevel());
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractChannel.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractChannel.java
index fd22def..07f2a7d 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractChannel.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractChannel.java
@@ -30,6 +30,7 @@ public abstract class AbstractChannel extends AbstractPeer implements Channel {
         super(url, handler);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         if (isClosed()) {
             throw new RemotingException(this, "Failed to send message "
@@ -43,4 +44,4 @@ public abstract class AbstractChannel extends AbstractPeer implements Channel {
         return getLocalAddress() + " -> " + getRemoteAddress();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractChannelHandlerDelegate.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractChannelHandlerDelegate.java
index 8f28cbd..b2c660c 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractChannelHandlerDelegate.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractChannelHandlerDelegate.java
@@ -30,6 +30,7 @@ public abstract class AbstractChannelHandlerDelegate implements ChannelHandlerDe
         this.handler = handler;
     }
 
+    @Override
     public ChannelHandler getHandler() {
         if (handler instanceof ChannelHandlerDelegate) {
             return ((ChannelHandlerDelegate) handler).getHandler();
@@ -37,22 +38,27 @@ public abstract class AbstractChannelHandlerDelegate implements ChannelHandlerDe
         return handler;
     }
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
         handler.connected(channel);
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
         handler.disconnected(channel);
     }
 
+    @Override
     public void sent(Channel channel, Object message) throws RemotingException {
         handler.sent(channel, message);
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         handler.received(channel, message);
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) throws RemotingException {
         handler.caught(channel, exception);
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractClient.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractClient.java
index 44f822f..6722298 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractClient.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractClient.java
@@ -149,6 +149,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         int reconnect = getReconnectParam(getUrl());
         if (reconnect > 0 && (reconnectExecutorFuture == null || reconnectExecutorFuture.isCancelled())) {
             Runnable connectStatusCheckCommand = new Runnable() {
+                @Override
                 public void run() {
                     try {
                         if (!isConnected()) {
@@ -195,6 +196,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         return new InetSocketAddress(NetUtils.filterLocalHost(getUrl().getHost()), getUrl().getPort());
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         Channel channel = getChannel();
         if (channel == null)
@@ -202,6 +204,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         return channel.getRemoteAddress();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         Channel channel = getChannel();
         if (channel == null)
@@ -209,6 +212,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         return channel.getLocalAddress();
     }
 
+    @Override
     public boolean isConnected() {
         Channel channel = getChannel();
         if (channel == null)
@@ -216,6 +220,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         return channel.isConnected();
     }
 
+    @Override
     public Object getAttribute(String key) {
         Channel channel = getChannel();
         if (channel == null)
@@ -223,6 +228,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         return channel.getAttribute(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         Channel channel = getChannel();
         if (channel == null)
@@ -230,6 +236,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         channel.setAttribute(key, value);
     }
 
+    @Override
     public void removeAttribute(String key) {
         Channel channel = getChannel();
         if (channel == null)
@@ -237,6 +244,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         channel.removeAttribute(key);
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         Channel channel = getChannel();
         if (channel == null)
@@ -244,6 +252,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         return channel.hasAttribute(key);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         if (send_reconnect && !isConnected()) {
             connect();
@@ -310,11 +319,13 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         }
     }
 
+    @Override
     public void reconnect() throws RemotingException {
         disconnect();
         connect();
     }
 
+    @Override
     public void close() {
         try {
             if (executor != null) {
@@ -340,6 +351,7 @@ public abstract class AbstractClient extends AbstractEndpoint implements Client
         }
     }
 
+    @Override
     public void close(int timeout) {
         ExecutorUtil.gracefulShutdown(executor, timeout);
         close();
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractEndpoint.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractEndpoint.java
index e8ccfe4..811c59a 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractEndpoint.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractEndpoint.java
@@ -57,6 +57,7 @@ public abstract class AbstractEndpoint extends AbstractPeer implements Resetable
         }
     }
 
+    @Override
     public void reset(URL url) {
         if (isClosed()) {
             throw new IllegalStateException("Failed to reset parameters "
@@ -108,4 +109,4 @@ public abstract class AbstractEndpoint extends AbstractPeer implements Resetable
         return connectTimeout;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractPeer.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractPeer.java
index a44c2c9..58b823e 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractPeer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractPeer.java
@@ -48,18 +48,22 @@ public abstract class AbstractPeer implements Endpoint, ChannelHandler {
         this.handler = handler;
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         send(message, url.getParameter(Constants.SENT_KEY, false));
     }
 
+    @Override
     public void close() {
         closed = true;
     }
 
+    @Override
     public void close(int timeout) {
         close();
     }
 
+    @Override
     public void startClose() {
         if (isClosed()) {
             return;
@@ -67,6 +71,7 @@ public abstract class AbstractPeer implements Endpoint, ChannelHandler {
         closing = true;
     }
 
+    @Override
     public URL getUrl() {
         return url;
     }
@@ -78,6 +83,7 @@ public abstract class AbstractPeer implements Endpoint, ChannelHandler {
         this.url = url;
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         if (handler instanceof ChannelHandlerDelegate) {
             return ((ChannelHandlerDelegate) handler).getHandler();
@@ -103,6 +109,7 @@ public abstract class AbstractPeer implements Endpoint, ChannelHandler {
         return handler;
     }
 
+    @Override
     public boolean isClosed() {
         return closed;
     }
@@ -111,6 +118,7 @@ public abstract class AbstractPeer implements Endpoint, ChannelHandler {
         return closing && !closed;
     }
 
+    @Override
     public void connected(Channel ch) throws RemotingException {
         if (closed) {
             return;
@@ -118,10 +126,12 @@ public abstract class AbstractPeer implements Endpoint, ChannelHandler {
         handler.connected(ch);
     }
 
+    @Override
     public void disconnected(Channel ch) throws RemotingException {
         handler.disconnected(ch);
     }
 
+    @Override
     public void sent(Channel ch, Object msg) throws RemotingException {
         if (closed) {
             return;
@@ -129,6 +139,7 @@ public abstract class AbstractPeer implements Endpoint, ChannelHandler {
         handler.sent(ch, msg);
     }
 
+    @Override
     public void received(Channel ch, Object msg) throws RemotingException {
         if (closed) {
             return;
@@ -136,7 +147,8 @@ public abstract class AbstractPeer implements Endpoint, ChannelHandler {
         handler.received(ch, msg);
     }
 
+    @Override
     public void caught(Channel ch, Throwable ex) throws RemotingException {
         handler.caught(ch, ex);
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractServer.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractServer.java
index d0b4842..6846687 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractServer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/AbstractServer.java
@@ -77,6 +77,7 @@ public abstract class AbstractServer extends AbstractEndpoint implements Server
 
     protected abstract void doClose() throws Throwable;
 
+    @Override
     public void reset(URL url) {
         if (url == null) {
             return;
@@ -128,6 +129,7 @@ public abstract class AbstractServer extends AbstractEndpoint implements Server
         super.setUrl(getUrl().addParameters(url.getParameters()));
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         Collection<Channel> channels = getChannels();
         for (Channel channel : channels) {
@@ -137,6 +139,7 @@ public abstract class AbstractServer extends AbstractEndpoint implements Server
         }
     }
 
+    @Override
     public void close() {
         if (logger.isInfoEnabled()) {
             logger.info("Close " + getClass().getSimpleName() + " bind " + getBindAddress() + ", export " + getLocalAddress());
@@ -154,11 +157,13 @@ public abstract class AbstractServer extends AbstractEndpoint implements Server
         }
     }
 
+    @Override
     public void close(int timeout) {
         ExecutorUtil.gracefulShutdown(executor, timeout);
         close();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return localAddress;
     }
@@ -202,4 +207,4 @@ public abstract class AbstractServer extends AbstractEndpoint implements Server
         super.disconnected(ch);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelDelegate.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelDelegate.java
index df69efb..e3843c2 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelDelegate.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelDelegate.java
@@ -48,54 +48,67 @@ public class ChannelDelegate implements Channel {
         this.channel = channel;
     }
 
+    @Override
     public URL getUrl() {
         return channel.getUrl();
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return channel.getRemoteAddress();
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return channel.getChannelHandler();
     }
 
+    @Override
     public boolean isConnected() {
         return channel.isConnected();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return channel.getLocalAddress();
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return channel.hasAttribute(key);
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         channel.send(message);
     }
 
+    @Override
     public Object getAttribute(String key) {
         return channel.getAttribute(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         channel.setAttribute(key, value);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         channel.send(message, sent);
     }
 
+    @Override
     public void removeAttribute(String key) {
         channel.removeAttribute(key);
     }
 
+    @Override
     public void close() {
         channel.close();
     }
 
+    @Override
     public void close(int timeout) {
         channel.close(timeout);
     }
@@ -105,8 +118,9 @@ public class ChannelDelegate implements Channel {
         channel.startClose();
     }
 
+    @Override
     public boolean isClosed() {
         return channel.isClosed();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelHandlerAdapter.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelHandlerAdapter.java
index 08f710f..ee4153b 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelHandlerAdapter.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelHandlerAdapter.java
@@ -25,19 +25,24 @@ import com.alibaba.dubbo.remoting.RemotingException;
  */
 public class ChannelHandlerAdapter implements ChannelHandler {
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
     }
 
+    @Override
     public void sent(Channel channel, Object message) throws RemotingException {
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) throws RemotingException {
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelHandlerDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelHandlerDispatcher.java
index 6a2d981..aaf3e2b 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelHandlerDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ChannelHandlerDispatcher.java
@@ -61,6 +61,7 @@ public class ChannelHandlerDispatcher implements ChannelHandler {
         return this;
     }
 
+    @Override
     public void connected(Channel channel) {
         for (ChannelHandler listener : channelHandlers) {
             try {
@@ -71,6 +72,7 @@ public class ChannelHandlerDispatcher implements ChannelHandler {
         }
     }
 
+    @Override
     public void disconnected(Channel channel) {
         for (ChannelHandler listener : channelHandlers) {
             try {
@@ -81,6 +83,7 @@ public class ChannelHandlerDispatcher implements ChannelHandler {
         }
     }
 
+    @Override
     public void sent(Channel channel, Object message) {
         for (ChannelHandler listener : channelHandlers) {
             try {
@@ -91,6 +94,7 @@ public class ChannelHandlerDispatcher implements ChannelHandler {
         }
     }
 
+    @Override
     public void received(Channel channel, Object message) {
         for (ChannelHandler listener : channelHandlers) {
             try {
@@ -101,6 +105,7 @@ public class ChannelHandlerDispatcher implements ChannelHandler {
         }
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) {
         for (ChannelHandler listener : channelHandlers) {
             try {
@@ -111,4 +116,4 @@ public class ChannelHandlerDispatcher implements ChannelHandler {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ClientDelegate.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ClientDelegate.java
index b49af09..6cfe206 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ClientDelegate.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ClientDelegate.java
@@ -48,67 +48,83 @@ public class ClientDelegate implements Client {
         this.client = client;
     }
 
+    @Override
     public void reset(URL url) {
         client.reset(url);
     }
 
+    @Override
     @Deprecated
     public void reset(com.alibaba.dubbo.common.Parameters parameters) {
         reset(getUrl().addParameters(parameters.getParameters()));
     }
 
+    @Override
     public URL getUrl() {
         return client.getUrl();
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return client.getRemoteAddress();
     }
 
+    @Override
     public void reconnect() throws RemotingException {
         client.reconnect();
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return client.getChannelHandler();
     }
 
+    @Override
     public boolean isConnected() {
         return client.isConnected();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return client.getLocalAddress();
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return client.hasAttribute(key);
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         client.send(message);
     }
 
+    @Override
     public Object getAttribute(String key) {
         return client.getAttribute(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         client.setAttribute(key, value);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         client.send(message, sent);
     }
 
+    @Override
     public void removeAttribute(String key) {
         client.removeAttribute(key);
     }
 
+    @Override
     public void close() {
         client.close();
     }
 
+    @Override
     public void close(int timeout) {
         client.close(timeout);
     }
@@ -118,8 +134,9 @@ public class ClientDelegate implements Client {
         client.startClose();
     }
 
+    @Override
     public boolean isClosed() {
         return client.isClosed();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/DecodeHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/DecodeHandler.java
index fb46f0a..db5b6f5 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/DecodeHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/DecodeHandler.java
@@ -34,6 +34,7 @@ public class DecodeHandler extends AbstractChannelHandlerDelegate {
         super(handler);
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         if (message instanceof Decodeable) {
             decode(message);
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ServerDelegate.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ServerDelegate.java
index 5be3b6d..5b24cc9 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ServerDelegate.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/ServerDelegate.java
@@ -49,51 +49,63 @@ public class ServerDelegate implements Server {
         this.server = server;
     }
 
+    @Override
     public boolean isBound() {
         return server.isBound();
     }
 
+    @Override
     public void reset(URL url) {
         server.reset(url);
     }
 
+    @Override
     @Deprecated
     public void reset(com.alibaba.dubbo.common.Parameters parameters) {
         reset(getUrl().addParameters(parameters.getParameters()));
     }
 
+    @Override
     public Collection<Channel> getChannels() {
         return server.getChannels();
     }
 
+    @Override
     public Channel getChannel(InetSocketAddress remoteAddress) {
         return server.getChannel(remoteAddress);
     }
 
+    @Override
     public URL getUrl() {
         return server.getUrl();
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return server.getChannelHandler();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return server.getLocalAddress();
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         server.send(message);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         server.send(message, sent);
     }
 
+    @Override
     public void close() {
         server.close();
     }
 
+    @Override
     public void close(int timeout) {
         server.close(timeout);
     }
@@ -103,7 +115,8 @@ public class ServerDelegate implements Server {
         server.startClose();
     }
 
+    @Override
     public boolean isClosed() {
         return server.isClosed();
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/codec/CodecAdapter.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/codec/CodecAdapter.java
index 0466fff..dfc945e 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/codec/CodecAdapter.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/codec/CodecAdapter.java
@@ -36,6 +36,7 @@ public class CodecAdapter implements Codec2 {
         this.codec = codec;
     }
 
+    @Override
     public void encode(Channel channel, ChannelBuffer buffer, Object message)
             throws IOException {
         UnsafeByteArrayOutputStream os = new UnsafeByteArrayOutputStream(1024);
@@ -43,6 +44,7 @@ public class CodecAdapter implements Codec2 {
         buffer.writeBytes(os.toByteArray());
     }
 
+    @Override
     public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
         byte[] bytes = new byte[buffer.readableBytes()];
         int savedReaderIndex = buffer.readerIndex();
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/codec/TransportCodec.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/codec/TransportCodec.java
index 7136875..f41c728 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/codec/TransportCodec.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/codec/TransportCodec.java
@@ -35,6 +35,7 @@ import java.io.OutputStream;
  */
 public class TransportCodec extends AbstractCodec {
 
+    @Override
     public void encode(Channel channel, ChannelBuffer buffer, Object message) throws IOException {
         OutputStream output = new ChannelBufferOutputStream(buffer);
         ObjectOutput objectOutput = getSerialization(channel).serialize(channel.getUrl(), output);
@@ -45,6 +46,7 @@ public class TransportCodec extends AbstractCodec {
         }
     }
 
+    @Override
     public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {
         InputStream input = new ChannelBufferInputStream(buffer);
         ObjectInput objectInput = getSerialization(channel).deserialize(channel.getUrl(), input);
@@ -74,4 +76,4 @@ public class TransportCodec extends AbstractCodec {
             throw new IOException("ClassNotFoundException: " + StringUtils.toString(e));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java
index 0c5e876..038adea 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java
@@ -50,6 +50,7 @@ public class ChannelEventRunnable implements Runnable {
         this.exception = exception;
     }
 
+    @Override
     public void run() {
         switch (state) {
             case CONNECTED:
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java
index e9975c8..fea2d6a 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java
@@ -67,22 +67,27 @@ public class WrappedChannelHandler implements ChannelHandlerDelegate {
         }
     }
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
         handler.connected(channel);
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
         handler.disconnected(channel);
     }
 
+    @Override
     public void sent(Channel channel, Object message) throws RemotingException {
         handler.sent(channel, message);
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         handler.received(channel, message);
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) throws RemotingException {
         handler.caught(channel, exception);
     }
@@ -91,6 +96,7 @@ public class WrappedChannelHandler implements ChannelHandlerDelegate {
         return executor;
     }
 
+    @Override
     public ChannelHandler getHandler() {
         if (handler instanceof ChannelHandlerDelegate) {
             return ((ChannelHandlerDelegate) handler).getHandler();
@@ -103,4 +109,4 @@ public class WrappedChannelHandler implements ChannelHandlerDelegate {
         return url;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java
index 1dade1a..9e5b331 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java
@@ -36,6 +36,7 @@ public class AllChannelHandler extends WrappedChannelHandler {
         super(handler, url);
     }
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
         ExecutorService cexecutor = getExecutorService();
         try {
@@ -45,6 +46,7 @@ public class AllChannelHandler extends WrappedChannelHandler {
         }
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
         ExecutorService cexecutor = getExecutorService();
         try {
@@ -54,6 +56,7 @@ public class AllChannelHandler extends WrappedChannelHandler {
         }
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         ExecutorService cexecutor = getExecutorService();
         try {
@@ -76,6 +79,7 @@ public class AllChannelHandler extends WrappedChannelHandler {
         }
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) throws RemotingException {
         ExecutorService cexecutor = getExecutorService();
         try {
@@ -92,4 +96,4 @@ public class AllChannelHandler extends WrappedChannelHandler {
         }
         return cexecutor;
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/all/AllDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/all/AllDispatcher.java
index 823c504..e760b15 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/all/AllDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/all/AllDispatcher.java
@@ -27,8 +27,9 @@ public class AllDispatcher implements Dispatcher {
 
     public static final String NAME = "all";
 
+    @Override
     public ChannelHandler dispatch(ChannelHandler handler, URL url) {
         return new AllChannelHandler(handler, url);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java
index ed76811..1b162d5 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java
@@ -53,6 +53,7 @@ public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {
         queuewarninglimit = url.getParameter(Constants.CONNECT_QUEUE_WARNING_SIZE, Constants.DEFAULT_CONNECT_QUEUE_WARNING_SIZE);
     }
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
         try {
             checkQueueLength();
@@ -62,6 +63,7 @@ public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {
         }
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
         try {
             checkQueueLength();
@@ -71,6 +73,7 @@ public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {
         }
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         ExecutorService cexecutor = executor;
         if (cexecutor == null || cexecutor.isShutdown()) {
@@ -95,6 +98,7 @@ public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {
         }
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) throws RemotingException {
         ExecutorService cexecutor = executor;
         if (cexecutor == null || cexecutor.isShutdown()) {
@@ -112,4 +116,4 @@ public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {
             logger.warn(new IllegalThreadStateException("connectionordered channel handler `queue size: " + connectionExecutor.getQueue().size() + " exceed the warning limit number :" + queuewarninglimit));
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedDispatcher.java
index 1209ccd..0808843 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedDispatcher.java
@@ -27,8 +27,9 @@ public class ConnectionOrderedDispatcher implements Dispatcher {
 
     public static final String NAME = "connection";
 
+    @Override
     public ChannelHandler dispatch(ChannelHandler handler, URL url) {
         return new ConnectionOrderedChannelHandler(handler, url);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java
index bd19271..ca4f23f 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java
@@ -27,8 +27,9 @@ public class DirectDispatcher implements Dispatcher {
 
     public static final String NAME = "direct";
 
+    @Override
     public ChannelHandler dispatch(ChannelHandler handler, URL url) {
         return handler;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java
index fd1261c..2cb4634 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java
@@ -35,14 +35,17 @@ public class ExecutionChannelHandler extends WrappedChannelHandler {
         super(handler, url);
     }
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
         executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
         executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
     	try {
             executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));
@@ -65,8 +68,9 @@ public class ExecutionChannelHandler extends WrappedChannelHandler {
         }
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) throws RemotingException {
         executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/execution/ExecutionDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/execution/ExecutionDispatcher.java
index a62bee7..20d0d5c 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/execution/ExecutionDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/execution/ExecutionDispatcher.java
@@ -27,8 +27,9 @@ public class ExecutionDispatcher implements Dispatcher {
 
     public static final String NAME = "execution";
 
+    @Override
     public ChannelHandler dispatch(ChannelHandler handler, URL url) {
         return new ExecutionChannelHandler(handler, url);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java
index 457d763..5abc04e 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java
@@ -33,6 +33,7 @@ public class MessageOnlyChannelHandler extends WrappedChannelHandler {
         super(handler, url);
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         ExecutorService cexecutor = executor;
         if (cexecutor == null || cexecutor.isShutdown()) {
@@ -45,4 +46,4 @@ public class MessageOnlyChannelHandler extends WrappedChannelHandler {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/message/MessageOnlyDispatcher.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/message/MessageOnlyDispatcher.java
index 0435c9b..cde2553 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/message/MessageOnlyDispatcher.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/com/alibaba/dubbo/remoting/transport/dispatcher/message/MessageOnlyDispatcher.java
@@ -27,8 +27,9 @@ public class MessageOnlyDispatcher implements Dispatcher {
 
     public static final String NAME = "message";
 
+    @Override
     public ChannelHandler dispatch(ChannelHandler handler, URL url) {
         return new MessageOnlyChannelHandler(handler, url);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/ChanelHandlerTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/ChanelHandlerTest.java
index 5cf6ca0..feaac4c 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/ChanelHandlerTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/ChanelHandlerTest.java
@@ -100,10 +100,12 @@ public class ChanelHandlerTest extends TestCase {
             this.url = url;
         }
 
+        @Override
         public void connected(Channel channel) throws RemotingException {
             System.out.println("connected event,chanel;" + channel);
         }
 
+        @Override
         public void disconnected(Channel channel) throws RemotingException {
             System.out.println("disconnected event,chanel;" + channel);
             initClient(url);
@@ -119,4 +121,4 @@ public class ChanelHandlerTest extends TestCase {
 
 
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/PerformanceClientTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/PerformanceClientTest.java
index 29324bc..2fa39fc 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/PerformanceClientTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/PerformanceClientTest.java
@@ -215,12 +215,14 @@ public class PerformanceClientTest extends TestCase {
 
     static class PeformanceTestHandler extends ExchangeHandlerAdapter {
 
+        @Override
         public void connected(Channel channel) throws RemotingException {
             System.out.println("connected event,chanel;" + channel);
         }
 
+        @Override
         public void disconnected(Channel channel) throws RemotingException {
             System.out.println("disconnected event,chanel;" + channel);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/TelnetServer.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/TelnetServer.java
index 7f64d1b..a72965b 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/TelnetServer.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/TelnetServer.java
@@ -25,10 +25,12 @@ public class TelnetServer {
 
     public static void main(String[] args) throws Exception {
         Transporters.bind("telnet://0.0.0.0:23", new ChannelHandlerAdapter() {
+            @Override
             public void connected(Channel channel) throws RemotingException {
                 channel.send("telnet> ");
             }
 
+            @Override
             public void received(Channel channel, Object message) throws RemotingException {
                 channel.send("Echo: " + message + "\r\n");
                 channel.send("telnet> ");
@@ -45,4 +47,4 @@ public class TelnetServer {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/AbstractMockChannel.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/AbstractMockChannel.java
index c855c46..aa44029 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/AbstractMockChannel.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/codec/AbstractMockChannel.java
@@ -53,18 +53,22 @@ public class AbstractMockChannel implements Channel {
         this.handler = handler;
     }
 
+    @Override
     public URL getUrl() {
         return remoteUrl;
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return handler;
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return localAddress;
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         if (remoteUrl.getParameter(ERROR_WHEN_SEND, Boolean.FALSE)) {
             receivedMessage = null;
@@ -74,14 +78,17 @@ public class AbstractMockChannel implements Channel {
         }
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         send(message);
     }
 
+    @Override
     public void close() {
         close(0);
     }
 
+    @Override
     public void close(int timeout) {
         isClosed = true;
     }
@@ -91,30 +98,37 @@ public class AbstractMockChannel implements Channel {
         closing = true;
     }
 
+    @Override
     public boolean isClosed() {
         return isClosed;
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return remoteAddress;
     }
 
+    @Override
     public boolean isConnected() {
         return isClosed;
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return attributes.containsKey(key);
     }
 
+    @Override
     public Object getAttribute(String key) {
         return attributes.get(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         attributes.put(key, value);
     }
 
+    @Override
     public void removeAttribute(String key) {
         attributes.remove(key);
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/MockChannel.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/MockChannel.java
index 40366ea..2e4eef5 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/MockChannel.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/MockChannel.java
@@ -37,54 +37,67 @@ public class MockChannel implements Channel {
     private volatile boolean closing = false;
     private List<Object> sentObjects = new ArrayList<Object>();
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return null;
     }
 
+    @Override
     public boolean isConnected() {
         return false;
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return attributes.containsKey(key);
     }
 
+    @Override
     public Object getAttribute(String key) {
         return attributes.get(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         attributes.put(key, value);
     }
 
+    @Override
     public void removeAttribute(String key) {
         attributes.remove(key);
     }
 
+    @Override
     public URL getUrl() {
         return null;
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
         return null;
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return null;
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
         sentObjects.add(message);
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         sentObjects.add(message);
     }
 
+    @Override
     public void close() {
         closed = true;
     }
 
+    @Override
     public void close(int timeout) {
         closed = true;
     }
@@ -94,6 +107,7 @@ public class MockChannel implements Channel {
         closing = true;
     }
 
+    @Override
     public boolean isClosed() {
         return closed;
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/HeaderExchangeHandlerTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/HeaderExchangeHandlerTest.java
index c4bfe0f..c3da466 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/HeaderExchangeHandlerTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/HeaderExchangeHandlerTest.java
@@ -44,6 +44,7 @@ public class HeaderExchangeHandlerTest {
         request.setData(requestdata);
 
         ExchangeHandler exhandler = new MockedExchangeHandler() {
+            @Override
             public void received(Channel channel, Object message) throws RemotingException {
                 Assert.assertEquals(requestdata, message);
             }
@@ -78,6 +79,7 @@ public class HeaderExchangeHandlerTest {
                 return request;
             }
 
+            @Override
             public void received(Channel channel, Object message) throws RemotingException {
                 Assert.fail();
             }
@@ -217,4 +219,4 @@ public class HeaderExchangeHandlerTest {
             return "Person [name=" + name + "]";
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/MockedChannel.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/MockedChannel.java
index ead116b..cded186 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/MockedChannel.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/MockedChannel.java
@@ -37,31 +37,38 @@ public class MockedChannel implements Channel {
     }
 
 
+    @Override
     public URL getUrl() {
         return url;
     }
 
+    @Override
     public ChannelHandler getChannelHandler() {
 
         return this.handler;
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
 
         return null;
     }
 
+    @Override
     public void send(Object message) throws RemotingException {
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         this.send(message);
     }
 
+    @Override
     public void close() {
         isClosed = true;
     }
 
+    @Override
     public void close(int timeout) {
         this.close();
     }
@@ -71,30 +78,37 @@ public class MockedChannel implements Channel {
         closing = true;
     }
 
+    @Override
     public boolean isClosed() {
         return isClosed;
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return null;
     }
 
+    @Override
     public boolean isConnected() {
         return false;
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return map.containsKey(key);
     }
 
+    @Override
     public Object getAttribute(String key) {
         return map.get(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         map.put(key, value);
     }
 
+    @Override
     public void removeAttribute(String key) {
         map.remove(key);
     }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/MockedChannelHandler.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/MockedChannelHandler.java
index cf7a71e..ec2bfab 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/MockedChannelHandler.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/com/alibaba/dubbo/remoting/handler/MockedChannelHandler.java
@@ -28,23 +28,28 @@ public class MockedChannelHandler implements ChannelHandler {
     //    ConcurrentMap<String, Channel> channels = new ConcurrentHashMap<String, Channel>();
     ConcurrentHashSet<Channel> channels = new ConcurrentHashSet<Channel>();
 
+    @Override
     public void connected(Channel channel) throws RemotingException {
         channels.add(channel);
     }
 
+    @Override
     public void disconnected(Channel channel) throws RemotingException {
         channels.remove(channel);
     }
 
+    @Override
     public void sent(Channel channel, Object message) throws RemotingException {
         channel.send(message);
     }
 
+    @Override
     public void received(Channel channel, Object message) throws RemotingException {
         //echo 
         channel.send(message);
     }
 
+    @Override
     public void caught(Channel channel, Throwable exception) throws RemotingException {
         throw new RemotingException(channel, exception);
 
diff --git a/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyChannel.java b/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyChannel.java
index 325c28c..2727251 100644
--- a/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyChannel.java
+++ b/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyChannel.java
@@ -81,18 +81,22 @@ final class GrizzlyChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return (InetSocketAddress) connection.getPeerAddress();
     }
 
+    @Override
     public boolean isConnected() {
         return connection.isOpen();
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return (InetSocketAddress) connection.getLocalAddress();
     }
 
+    @Override
     @SuppressWarnings("rawtypes")
     public void send(Object message, boolean sent) throws RemotingException {
         super.send(message, sent);
@@ -112,6 +116,7 @@ final class GrizzlyChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public void close() {
         try {
             super.close();
@@ -133,18 +138,22 @@ final class GrizzlyChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return getAttribute(key) == null;
     }
 
+    @Override
     public Object getAttribute(String key) {
         return Grizzly.DEFAULT_ATTRIBUTE_BUILDER.createAttribute(key).get(connection);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         Grizzly.DEFAULT_ATTRIBUTE_BUILDER.createAttribute(key).set(connection, value);
     }
 
+    @Override
     public void removeAttribute(String key) {
         Grizzly.DEFAULT_ATTRIBUTE_BUILDER.createAttribute(key).remove(connection);
     }
@@ -174,4 +183,4 @@ final class GrizzlyChannel extends AbstractChannel {
         return "GrizzlyChannel [connection=" + connection + "]";
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyServer.java b/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyServer.java
index 0376ec3..06a828e 100644
--- a/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyServer.java
+++ b/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyServer.java
@@ -93,14 +93,17 @@ public class GrizzlyServer extends AbstractServer {
         }
     }
 
+    @Override
     public boolean isBound() {
         return !transport.isStopped();
     }
 
+    @Override
     public Collection<Channel> getChannels() {
         return channels.values();
     }
 
+    @Override
     public Channel getChannel(InetSocketAddress remoteAddress) {
         return channels.get(NetUtils.toAddressString(remoteAddress));
     }
@@ -117,4 +120,4 @@ public class GrizzlyServer extends AbstractServer {
         super.disconnected(ch);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyTransporter.java b/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyTransporter.java
index fef6424..0a594cf 100644
--- a/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyTransporter.java
+++ b/dubbo-remoting/dubbo-remoting-grizzly/src/main/java/com/alibaba/dubbo/remoting/transport/grizzly/GrizzlyTransporter.java
@@ -30,12 +30,14 @@ public class GrizzlyTransporter implements Transporter {
 
     public static final String NAME = "grizzly";
 
+    @Override
     public Server bind(URL url, ChannelHandler listener) throws RemotingException {
         return new GrizzlyServer(url, listener);
     }
 
+    @Override
     public Client connect(URL url, ChannelHandler listener) throws RemotingException {
         return new GrizzlyClient(url, listener);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/jetty/JettyHttpBinder.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/jetty/JettyHttpBinder.java
index b75eabd..6b708c1 100644
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/jetty/JettyHttpBinder.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/jetty/JettyHttpBinder.java
@@ -26,8 +26,9 @@ import com.alibaba.dubbo.remoting.http.HttpServer;
  */
 public class JettyHttpBinder implements HttpBinder {
 
+    @Override
     public HttpServer bind(URL url, HttpHandler handler) {
         return new JettyHttpServer(url, handler);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/jetty/JettyHttpServer.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/jetty/JettyHttpServer.java
index ed137f1..d5366ac 100644
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/jetty/JettyHttpServer.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/jetty/JettyHttpServer.java
@@ -90,6 +90,7 @@ public class JettyHttpServer extends AbstractHttpServer {
         }
     }
 
+    @Override
     public void close() {
         super.close();
 
@@ -105,4 +106,4 @@ public class JettyHttpServer extends AbstractHttpServer {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/BootstrapListener.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/BootstrapListener.java
index 8407405..5a57070 100644
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/BootstrapListener.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/BootstrapListener.java
@@ -25,10 +25,12 @@ import javax.servlet.ServletContextListener;
  */
 public class BootstrapListener implements ServletContextListener {
 
+    @Override
     public void contextInitialized(ServletContextEvent servletContextEvent) {
         ServletManager.getInstance().addServletContext(ServletManager.EXTERNAL_SERVER_PORT, servletContextEvent.getServletContext());
     }
 
+    @Override
     public void contextDestroyed(ServletContextEvent servletContextEvent) {
         ServletManager.getInstance().removeServletContext(ServletManager.EXTERNAL_SERVER_PORT);
     }
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/DispatcherServlet.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/DispatcherServlet.java
index 2f94253..bdb05f6 100644
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/DispatcherServlet.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/DispatcherServlet.java
@@ -51,6 +51,7 @@ public class DispatcherServlet extends HttpServlet {
         return INSTANCE;
     }
 
+    @Override
     protected void service(HttpServletRequest request, HttpServletResponse response)
             throws ServletException, IOException {
         HttpHandler handler = handlers.get(request.getLocalPort());
@@ -61,4 +62,4 @@ public class DispatcherServlet extends HttpServlet {
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/ServletHttpBinder.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/ServletHttpBinder.java
index 09589bc..28425e7 100644
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/ServletHttpBinder.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/servlet/ServletHttpBinder.java
@@ -27,9 +27,10 @@ import com.alibaba.dubbo.remoting.http.HttpServer;
  */
 public class ServletHttpBinder implements HttpBinder {
 
+    @Override
     @Adaptive()
     public HttpServer bind(URL url, HttpHandler handler) {
         return new ServletHttpServer(url, handler);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/support/AbstractHttpServer.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/support/AbstractHttpServer.java
index fec16a5..86cf6b1 100644
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/support/AbstractHttpServer.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/support/AbstractHttpServer.java
@@ -44,35 +44,43 @@ public abstract class AbstractHttpServer implements HttpServer {
         this.handler = handler;
     }
 
+    @Override
     public HttpHandler getHttpHandler() {
         return handler;
     }
 
+    @Override
     public URL getUrl() {
         return url;
     }
 
+    @Override
     public void reset(URL url) {
     }
 
+    @Override
     public boolean isBound() {
         return true;
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return url.toInetSocketAddress();
     }
 
+    @Override
     public void close() {
         closed = true;
     }
 
+    @Override
     public void close(int timeout) {
         close();
     }
 
+    @Override
     public boolean isClosed() {
         return closed;
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/tomcat/TomcatHttpBinder.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/tomcat/TomcatHttpBinder.java
index 8ff017e..90e7a5f 100755
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/tomcat/TomcatHttpBinder.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/tomcat/TomcatHttpBinder.java
@@ -23,8 +23,9 @@ import com.alibaba.dubbo.remoting.http.HttpServer;
 
 public class TomcatHttpBinder implements HttpBinder {
 
+    @Override
     public HttpServer bind(URL url, HttpHandler handler) {
         return new TomcatHttpServer(url, handler);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/tomcat/TomcatHttpServer.java b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/tomcat/TomcatHttpServer.java
index 7ed61f9..68cce42 100755
--- a/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/tomcat/TomcatHttpServer.java
+++ b/dubbo-remoting/dubbo-remoting-http/src/main/java/com/alibaba/dubbo/remoting/http/tomcat/TomcatHttpServer.java
@@ -74,6 +74,7 @@ public class TomcatHttpServer extends AbstractHttpServer {
         }
     }
 
+    @Override
     public void close() {
         super.close();
 
@@ -85,4 +86,4 @@ public class TomcatHttpServer extends AbstractHttpServer {
             logger.warn(e.getMessage(), e);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaChannel.java b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaChannel.java
index 87ee816..f779c3b 100644
--- a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaChannel.java
+++ b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaChannel.java
@@ -72,18 +72,22 @@ final class MinaChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return (InetSocketAddress) session.getLocalAddress();
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return (InetSocketAddress) session.getRemoteAddress();
     }
 
+    @Override
     public boolean isConnected() {
         return session.isConnected();
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         super.send(message, sent);
 
@@ -105,6 +109,7 @@ final class MinaChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public void close() {
         try {
             super.close();
@@ -126,18 +131,22 @@ final class MinaChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return session.containsAttribute(key);
     }
 
+    @Override
     public Object getAttribute(String key) {
         return session.getAttribute(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         session.setAttribute(key, value);
     }
 
+    @Override
     public void removeAttribute(String key) {
         session.removeAttribute(key);
     }
@@ -167,4 +176,4 @@ final class MinaChannel extends AbstractChannel {
         return "MinaChannel [session=" + session + "]";
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaClient.java b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaClient.java
index 4cd80f7..6f0ab9f 100644
--- a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaClient.java
+++ b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaClient.java
@@ -93,6 +93,7 @@ public class MinaClient extends AbstractClient {
         final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();
         final CountDownLatch finish = new CountDownLatch(1); // resolve future.awaitUninterruptibly() dead lock
         future.addListener(new IoFutureListener() {
+            @Override
             public void operationComplete(IoFuture future) {
                 try {
                     if (future.isReady()) {
@@ -169,4 +170,4 @@ public class MinaClient extends AbstractClient {
         return MinaChannel.getOrAddChannel(s, getUrl(), this);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaCodecAdapter.java b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaCodecAdapter.java
index 18f2264..9c3c2bf 100644
--- a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaCodecAdapter.java
+++ b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaCodecAdapter.java
@@ -58,19 +58,23 @@ final class MinaCodecAdapter implements ProtocolCodecFactory {
         this.bufferSize = b >= Constants.MIN_BUFFER_SIZE && b <= Constants.MAX_BUFFER_SIZE ? b : Constants.DEFAULT_BUFFER_SIZE;
     }
 
+    @Override
     public ProtocolEncoder getEncoder() {
         return encoder;
     }
 
+    @Override
     public ProtocolDecoder getDecoder() {
         return decoder;
     }
 
     private class InternalEncoder implements ProtocolEncoder {
 
+        @Override
         public void dispose(IoSession session) throws Exception {
         }
 
+        @Override
         public void encode(IoSession session, Object msg, ProtocolEncoderOutput out) throws Exception {
             ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);
             MinaChannel channel = MinaChannel.getOrAddChannel(session, url, handler);
@@ -88,6 +92,7 @@ final class MinaCodecAdapter implements ProtocolCodecFactory {
 
         private ChannelBuffer buffer = ChannelBuffers.EMPTY_BUFFER;
 
+        @Override
         public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception {
             int readable = in.limit();
             if (readable <= 0) return;
@@ -145,10 +150,12 @@ final class MinaCodecAdapter implements ProtocolCodecFactory {
             }
         }
 
+        @Override
         public void dispose(IoSession session) throws Exception {
         }
 
+        @Override
         public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaServer.java b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaServer.java
index be45b56..57053c5 100644
--- a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaServer.java
+++ b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaServer.java
@@ -79,6 +79,7 @@ public class MinaServer extends AbstractServer {
         }
     }
 
+    @Override
     public Collection<Channel> getChannels() {
         Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());
         Collection<Channel> channels = new HashSet<Channel>();
@@ -90,6 +91,7 @@ public class MinaServer extends AbstractServer {
         return channels;
     }
 
+    @Override
     public Channel getChannel(InetSocketAddress remoteAddress) {
         Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());
         for (IoSession session : sessions) {
@@ -100,8 +102,9 @@ public class MinaServer extends AbstractServer {
         return null;
     }
 
+    @Override
     public boolean isBound() {
         return acceptor.isManaged(getBindAddress());
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaTransporter.java b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaTransporter.java
index 9b2100c..2380444 100644
--- a/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaTransporter.java
+++ b/dubbo-remoting/dubbo-remoting-mina/src/main/java/com/alibaba/dubbo/remoting/transport/mina/MinaTransporter.java
@@ -27,10 +27,12 @@ public class MinaTransporter implements Transporter {
 
     public static final String NAME = "mina";
 
+    @Override
     public Server bind(URL url, ChannelHandler handler) throws RemotingException {
         return new MinaServer(url, handler);
     }
 
+    @Override
     public Client connect(URL url, ChannelHandler handler) throws RemotingException {
         return new MinaClient(url, handler);
     }
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyBackedChannelBuffer.java b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyBackedChannelBuffer.java
index bcfbb51..7d4462e 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyBackedChannelBuffer.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyBackedChannelBuffer.java
@@ -39,36 +39,43 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
         return buffer;
     }
 
+    @Override
     public int capacity() {
         return buffer.capacity();
     }
 
 
+    @Override
     public ChannelBuffer copy(int index, int length) {
         return new NettyBackedChannelBuffer(buffer.copy(index, length));
     }
 
 
+    @Override
     public ChannelBufferFactory factory() {
         return NettyBackedChannelBufferFactory.getInstance();
     }
 
 
+    @Override
     public byte getByte(int index) {
         return buffer.getByte(index);
     }
 
 
+    @Override
     public void getBytes(int index, byte[] dst, int dstIndex, int length) {
         buffer.getBytes(index, dst, dstIndex, length);
     }
 
 
+    @Override
     public void getBytes(int index, ByteBuffer dst) {
         buffer.getBytes(index, dst);
     }
 
 
+    @Override
     public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
         // careful
         byte[] data = new byte[length];
@@ -77,31 +84,37 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
 
+    @Override
     public void getBytes(int index, OutputStream dst, int length) throws IOException {
         buffer.getBytes(index, dst, length);
     }
 
 
+    @Override
     public boolean isDirect() {
         return buffer.isDirect();
     }
 
 
+    @Override
     public void setByte(int index, int value) {
         buffer.setByte(index, value);
     }
 
 
+    @Override
     public void setBytes(int index, byte[] src, int srcIndex, int length) {
         buffer.setBytes(index, src, srcIndex, length);
     }
 
 
+    @Override
     public void setBytes(int index, ByteBuffer src) {
         buffer.setBytes(index, src);
     }
 
 
+    @Override
     public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
         // careful
         byte[] data = new byte[length];
@@ -110,26 +123,31 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
 
+    @Override
     public int setBytes(int index, InputStream src, int length) throws IOException {
         return buffer.setBytes(index, src, length);
     }
 
 
+    @Override
     public ByteBuffer toByteBuffer(int index, int length) {
         return buffer.toByteBuffer(index, length);
     }
 
 
+    @Override
     public byte[] array() {
         return buffer.array();
     }
 
 
+    @Override
     public boolean hasArray() {
         return buffer.hasArray();
     }
 
 
+    @Override
     public int arrayOffset() {
         return buffer.arrayOffset();
     }
@@ -138,37 +156,44 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     // AbstractChannelBuffer
 
 
+    @Override
     public void clear() {
         buffer.clear();
     }
 
 
+    @Override
     public ChannelBuffer copy() {
         return new NettyBackedChannelBuffer(buffer.copy());
     }
 
 
+    @Override
     public void discardReadBytes() {
         buffer.discardReadBytes();
     }
 
 
+    @Override
     public void ensureWritableBytes(int writableBytes) {
         buffer.ensureWritableBytes(writableBytes);
     }
 
 
+    @Override
     public void getBytes(int index, byte[] dst) {
         buffer.getBytes(index, dst);
     }
 
 
+    @Override
     public void getBytes(int index, ChannelBuffer dst) {
         // careful
         getBytes(index, dst, dst.writableBytes());
     }
 
 
+    @Override
     public void getBytes(int index, ChannelBuffer dst, int length) {
         // careful
         if (length > dst.writableBytes()) {
@@ -179,52 +204,62 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
 
+    @Override
     public void markReaderIndex() {
         buffer.markReaderIndex();
     }
 
 
+    @Override
     public void markWriterIndex() {
         buffer.markWriterIndex();
     }
 
 
+    @Override
     public boolean readable() {
         return buffer.readable();
     }
 
 
+    @Override
     public int readableBytes() {
         return buffer.readableBytes();
     }
 
 
+    @Override
     public byte readByte() {
         return buffer.readByte();
     }
 
 
+    @Override
     public void readBytes(byte[] dst) {
         buffer.readBytes(dst);
     }
 
 
+    @Override
     public void readBytes(byte[] dst, int dstIndex, int length) {
         buffer.readBytes(dst, dstIndex, length);
     }
 
 
+    @Override
     public void readBytes(ByteBuffer dst) {
         buffer.readBytes(dst);
     }
 
 
+    @Override
     public void readBytes(ChannelBuffer dst) {
         // careful
         readBytes(dst, dst.writableBytes());
     }
 
 
+    @Override
     public void readBytes(ChannelBuffer dst, int length) {
         // carefule
         if (length > dst.writableBytes()) {
@@ -235,6 +270,7 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
 
+    @Override
     public void readBytes(ChannelBuffer dst, int dstIndex, int length) {
         // careful
         if (readableBytes() < length) {
@@ -246,47 +282,56 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
 
+    @Override
     public ChannelBuffer readBytes(int length) {
         return new NettyBackedChannelBuffer(buffer.readBytes(length));
     }
 
 
+    @Override
     public void resetReaderIndex() {
         buffer.resetReaderIndex();
     }
 
 
+    @Override
     public void resetWriterIndex() {
         buffer.resetWriterIndex();
     }
 
 
+    @Override
     public int readerIndex() {
         return buffer.readerIndex();
     }
 
 
+    @Override
     public void readerIndex(int readerIndex) {
         buffer.readerIndex(readerIndex);
     }
 
 
+    @Override
     public void readBytes(OutputStream dst, int length) throws IOException {
         buffer.readBytes(dst, length);
     }
 
 
+    @Override
     public void setBytes(int index, byte[] src) {
         buffer.setBytes(index, src);
     }
 
 
+    @Override
     public void setBytes(int index, ChannelBuffer src) {
         // careful
         setBytes(index, src, src.readableBytes());
     }
 
 
+    @Override
     public void setBytes(int index, ChannelBuffer src, int length) {
         // careful
         if (length > src.readableBytes()) {
@@ -297,57 +342,68 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
 
+    @Override
     public void setIndex(int readerIndex, int writerIndex) {
         buffer.setIndex(readerIndex, writerIndex);
     }
 
 
+    @Override
     public void skipBytes(int length) {
         buffer.skipBytes(length);
     }
 
 
+    @Override
     public ByteBuffer toByteBuffer() {
         return buffer.toByteBuffer();
     }
 
 
+    @Override
     public boolean writable() {
         return buffer.writable();
     }
 
 
+    @Override
     public int writableBytes() {
         return buffer.writableBytes();
     }
 
 
+    @Override
     public void writeByte(int value) {
         buffer.writeByte(value);
     }
 
 
+    @Override
     public void writeBytes(byte[] src) {
         buffer.writeBytes(src);
     }
 
 
+    @Override
     public void writeBytes(byte[] src, int index, int length) {
         buffer.writeBytes(src, index, length);
     }
 
 
+    @Override
     public void writeBytes(ByteBuffer src) {
         buffer.writeBytes(src);
     }
 
 
+    @Override
     public void writeBytes(ChannelBuffer src) {
         // careful
         writeBytes(src, src.readableBytes());
     }
 
 
+    @Override
     public void writeBytes(ChannelBuffer src, int length) {
         // careful
         if (length > src.readableBytes()) {
@@ -358,6 +414,7 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
 
+    @Override
     public void writeBytes(ChannelBuffer src, int srcIndex, int length) {
         // careful
         byte[] data = new byte[length];
@@ -366,21 +423,25 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
 
+    @Override
     public int writeBytes(InputStream src, int length) throws IOException {
         return buffer.writeBytes(src, length);
     }
 
 
+    @Override
     public int writerIndex() {
         return buffer.writerIndex();
     }
 
 
+    @Override
     public void writerIndex(int writerIndex) {
         buffer.writerIndex(writerIndex);
     }
 
 
+    @Override
     public int compareTo(ChannelBuffer o) {
         return ChannelBuffers.compare(this, o);
     }
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyBackedChannelBufferFactory.java b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyBackedChannelBufferFactory.java
index f35909e..68f73c6 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyBackedChannelBufferFactory.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyBackedChannelBufferFactory.java
@@ -35,11 +35,13 @@ public class NettyBackedChannelBufferFactory implements ChannelBufferFactory {
     }
 
 
+    @Override
     public ChannelBuffer getBuffer(int capacity) {
         return new NettyBackedChannelBuffer(ChannelBuffers.dynamicBuffer(capacity));
     }
 
 
+    @Override
     public ChannelBuffer getBuffer(byte[] array, int offset, int length) {
         org.jboss.netty.buffer.ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(length);
         buffer.writeBytes(array, offset, length);
@@ -47,6 +49,7 @@ public class NettyBackedChannelBufferFactory implements ChannelBufferFactory {
     }
 
 
+    @Override
     public ChannelBuffer getBuffer(ByteBuffer nioBuffer) {
         return new NettyBackedChannelBuffer(ChannelBuffers.wrappedBuffer(nioBuffer));
     }
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyChannel.java b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyChannel.java
index a866db2..65cc7b4 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyChannel.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyChannel.java
@@ -75,18 +75,22 @@ final class NettyChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public InetSocketAddress getLocalAddress() {
         return (InetSocketAddress) channel.getLocalAddress();
     }
 
+    @Override
     public InetSocketAddress getRemoteAddress() {
         return (InetSocketAddress) channel.getRemoteAddress();
     }
 
+    @Override
     public boolean isConnected() {
         return channel.isConnected();
     }
 
+    @Override
     public void send(Object message, boolean sent) throws RemotingException {
         super.send(message, sent);
 
@@ -112,6 +116,7 @@ final class NettyChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public void close() {
         try {
             super.close();
@@ -138,14 +143,17 @@ final class NettyChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public boolean hasAttribute(String key) {
         return attributes.containsKey(key);
     }
 
+    @Override
     public Object getAttribute(String key) {
         return attributes.get(key);
     }
 
+    @Override
     public void setAttribute(String key, Object value) {
         if (value == null) { // The null value unallowed in the ConcurrentHashMap.
             attributes.remove(key);
@@ -154,6 +162,7 @@ final class NettyChannel extends AbstractChannel {
         }
     }
 
+    @Override
     public void removeAttribute(String key) {
         attributes.remove(key);
     }
@@ -183,4 +192,4 @@ final class NettyChannel extends AbstractChannel {
         return "NettyChannel [channel=" + channel + "]";
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyClient.java b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyClient.java
index 404fbb8..8015e91 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyClient.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyClient.java
@@ -70,6 +70,7 @@ public class NettyClient extends AbstractClient {
         bootstrap.setOption("connectTimeoutMillis", getTimeout());
         final NettyHandler nettyHandler = new NettyHandler(getUrl(), this);
         bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
+            @Override
             public ChannelPipeline getPipeline() {
                 NettyCodecAdapter adapter = new NettyCodecAdapter(getCodec(), getUrl(), NettyClient.this);
                 ChannelPipeline pipeline = Channels.pipeline();
@@ -81,6 +82,7 @@ public class NettyClient extends AbstractClient {
         });
     }
 
+    @Override
     protected void doConnect() throws Throwable {
         long start = System.currentTimeMillis();
         ChannelFuture future = bootstrap.connect(getConnectAddress());
@@ -160,4 +162,4 @@ public class NettyClient extends AbstractClient {
         return NettyChannel.getOrAddChannel(c, getUrl(), this);
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyHelper.java b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyHelper.java
index 93ceced..edf0c64 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyHelper.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyHelper.java
@@ -48,50 +48,62 @@ final class NettyHelper {
             this.logger = logger;
         }
 
+        @Override
         public boolean isDebugEnabled() {
             return logger.isDebugEnabled();
         }
 
+        @Override
         public boolean isInfoEnabled() {
             return logger.isInfoEnabled();
         }
 
+        @Override
         public boolean isWarnEnabled() {
             return logger.isWarnEnabled();
         }
 
+        @Override
         public boolean isErrorEnabled() {
             return logger.isErrorEnabled();
         }
 
+        @Override
         public void debug(String msg) {
             logger.debug(msg);
         }
 
+        @Override
         public void debug(String msg, Throwable cause) {
             logger.debug(msg, cause);
         }
 
+        @Override
         public void info(String msg) {
             logger.info(msg);
         }
 
+        @Override
         public void info(String msg, Throwable cause) {
             logger.info(msg, cause);
         }
 
+        @Override
         public void warn(String msg) {
             logger.warn(msg);
         }
 
+        @Override
         public void warn(String msg, Throwable cause) {
             logger.warn(msg, cause);
         }
 
+        @Override
         public void error(String msg) {
             logger.error(msg);
         }
 
+        @Override
         public void error(String msg, Throwable cause) {
             logger.error(msg, cause);
         }
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyServer.java b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyServer.java
index c7e77d7..82ab60b 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyServer.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyServer.java
@@ -75,6 +75,7 @@ public class NettyServer extends AbstractServer implements Server {
         // https://issues.jboss.org/browse/NETTY-379
         // final Timer timer = new HashedWheelTimer(new NamedThreadFactory("NettyIdleTimer", true));
         bootstrap.setPipelineFactory(new ChannelPipelineFactory() {
+            @Override
             public ChannelPipeline getPipeline() {
                 NettyCodecAdapter adapter = new NettyCodecAdapter(getCodec(), getUrl(), NettyServer.this);
                 ChannelPipeline pipeline = Channels.pipeline();
@@ -133,6 +134,7 @@ public class NettyServer extends AbstractServer implements Server {
         }
     }
 
+    @Override
     public Collection<Channel> getChannels() {
         Collection<Channel> chs = new HashSet<Channel>();
         for (Channel channel : this.channels.values()) {
@@ -145,12 +147,14 @@ public class NettyServer extends AbstractServer implements Server {
         return chs;
     }
 
+    @Override
     public Channel getChannel(InetSocketAddress remoteAddress) {
         return channels.get(NetUtils.toAddressString(remoteAddress));
     }
 
+    @Override
     public boolean isBound() {
         return channel.isBound();
     }
 
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyTransporter.java b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyTransporter.java
index 128f046..bbe0e96 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyTransporter.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/main/java/com/alibaba/dubbo/remoting/transport/netty/NettyTransporter.java
@@ -27,10 +27,12 @@ public class NettyTransporter implements Transporter {
 
     public static final String NAME = "netty";
 
+    @Override
     public Server bind(URL url, ChannelHandler listener) throws RemotingException {
         return new NettyServer(url, listener);
     }
 
+    @Override
     public Client connect(URL url, ChannelHandler listener) throws RemotingException {
         return new NettyClient(url, listener);
     }
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandlerTest.java b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandlerTest.java
index 34ece68..89fc6f4 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandlerTest.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/exchange/support/header/HeartbeatHandlerTest.java
@@ -111,22 +111,27 @@ public class HeartbeatHandlerTest {
             return request;
         }
 
+        @Override
         public void connected(Channel channel) throws RemotingException {
             ++connectCount;
         }
 
+        @Override
         public void disconnected(Channel channel) throws RemotingException {
             ++disconnectCount;
         }
 
+        @Override
         public void sent(Channel channel, Object message) throws RemotingException {
 
         }
 
+        @Override
         public void received(Channel channel, Object message) throws RemotingException {
             logger.error(this.getClass().getSimpleName() + message.toString());
         }
 
+        @Override
         public void caught(Channel channel, Throwable exception) throws RemotingException {
             exception.printStackTrace();
         }
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ClientReconnectTest.java b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ClientReconnectTest.java
index 3658f4f..b00f567 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ClientReconnectTest.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ClientReconnectTest.java
@@ -106,13 +106,16 @@ public class ClientReconnectTest {
     }
 
     static class HandlerAdapter extends ExchangeHandlerAdapter {
+        @Override
         public void connected(Channel channel) throws RemotingException {
         }
 
+        @Override
         public void disconnected(Channel channel) throws RemotingException {
         }
 
+        @Override
         public void caught(Channel channel, Throwable exception) throws RemotingException {
         }
     }
-}
\ No newline at end of file
+}
diff --git a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ThreadNameTest.java b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ThreadNameTest.java
index 306bc70..9050161 100644
--- a/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ThreadNameTest.java
+++ b/dubbo-remoting/dubbo-remoting-netty/src/test/java/com/alibaba/dubbo/remoting/transport/netty/ThreadNameTest.java
@@ -98,26 +98,31 @@ public class ThreadNameTest {
                     + " " + (client ? "client " + method : "server " + method));
         }
 
+        @Override
         public void connected(Channel channel) throws RemotingException {
             output("connected");
             checkThreadName();
         }
 
+        @Override
         public void disconnected(Channel channel) throws RemotingException {
             output("disconnected");
             checkThreadName();
         }
 
+        @Override
         public void sent(Channel channel, Object message) throws RemotingException {
             output("sent");
             checkThreadName();
         }
 
+        @Override
         public void received(Channel channel, Object message) throws RemotingException {
             output("received");
             checkThreadName();
         }
 
+        @Override
         public void caught(Channel channel, Throwable exception) throws RemotingException {
             output("caught");
             checkThreadName();
diff --git a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/com/alibaba/dubbo/remoting/transport/netty4/NettyBackedChannelBuffer.java b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/com/alibaba/dubbo/remoting/transport/netty4/NettyBackedChannelBuffer.java
index 1748be2..e6167cd 100644
--- a/dubbo-remoting/dubbo-remoting-netty4/src/main/java/com/alibaba/dubbo/remoting/transport/netty4/NettyBackedChannelBuffer.java
+++ b/dubbo-remoting/dubbo-remoting-netty4/src/main/java/com/alibaba/dubbo/remoting/transport/netty4/NettyBackedChannelBuffer.java
@@ -37,36 +37,43 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
     
+    @Override
     public int capacity() {
         return buffer.capacity();
     }
 
     
+    @Override
     public ChannelBuffer copy(int index, int length) {
         return new NettyBackedChannelBuffer(buffer.copy(index, length));
     }
 
     //has nothing use
+    @Override
     public ChannelBufferFactory factory() {
         return null;
     }
 
     
+    @Override
     public byte getByte(int index) {
         return buffer.getByte(index);
     }
 
     
+    @Override
     public void getBytes(int index, byte[] dst, int dstIndex, int length) {
         buffer.getBytes(index, dst, dstIndex, length);
     }
 
     
+    @Override
     public void getBytes(int index, ByteBuffer dst) {
         buffer.getBytes(index, dst);
     }
 
     
+    @Override
     public void getBytes(int index, ChannelBuffer dst, int dstIndex, int length) {
         // careful
         byte[] data = new byte[length];
@@ -75,31 +82,37 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
     
+    @Override
     public void getBytes(int index, OutputStream dst, int length) throws IOException {
         buffer.getBytes(index, dst, length);
     }
 
     
+    @Override
     public boolean isDirect() {
         return buffer.isDirect();
     }
 
     
+    @Override
     public void setByte(int index, int value) {
         buffer.setByte(index, value);
     }
 
     
+    @Override
     public void setBytes(int index, byte[] src, int srcIndex, int length) {
         buffer.setBytes(index, src, srcIndex, length);
     }
 
     
+    @Override
     public void setBytes(int index, ByteBuffer src) {
         buffer.setBytes(index, src);
     }
 
     
+    @Override
     public void setBytes(int index, ChannelBuffer src, int srcIndex, int length) {
         // careful
         byte[] data = new byte[length];
@@ -108,26 +121,31 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
     
+    @Override
     public int setBytes(int index, InputStream src, int length) throws IOException {
         return buffer.setBytes(index, src, length);
     }
 
     
+    @Override
     public ByteBuffer toByteBuffer(int index, int length) {
         return buffer.nioBuffer(index, length);
     }
 
     
+    @Override
     public byte[] array() {
         return buffer.array();
     }
 
     
+    @Override
     public boolean hasArray() {
         return buffer.hasArray();
     }
 
     
+    @Override
     public int arrayOffset() {
         return buffer.arrayOffset();
     }
@@ -137,37 +155,44 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
 
 
     
+    @Override
     public void clear() {
         buffer.clear();
     }
 
     
+    @Override
     public ChannelBuffer copy() {
         return new NettyBackedChannelBuffer(buffer.copy());
     }
 
     
+    @Override
     public void discardReadBytes() {
         buffer.discardReadBytes();
     }
 
     
+    @Override
     public void ensureWritableBytes(int writableBytes) {
         buffer.ensureWritable(writableBytes);
     }
 
     
+    @Override
     public void getBytes(int index, byte[] dst) {
         buffer.getBytes(index, dst);
     }
 
     
+    @Override
     public void getBytes(int index, ChannelBuffer dst) {
         // careful
         getBytes(index, dst, dst.writableBytes());
     }
 
     
+    @Override
     public void getBytes(int index, ChannelBuffer dst, int length) {
         // careful
         if (length > dst.writableBytes()) {
@@ -178,52 +203,62 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
     
+    @Override
     public void markReaderIndex() {
         buffer.markReaderIndex();
     }
 
     
+    @Override
     public void markWriterIndex() {
         buffer.markWriterIndex();
     }
 
     
+    @Override
     public boolean readable() {
         return buffer.isReadable();
     }
 
     
+    @Override
     public int readableBytes() {
         return buffer.readableBytes();
     }
 
     
+    @Override
     public byte readByte() {
         return buffer.readByte();
     }
 
     
+    @Override
     public void readBytes(byte[] dst) {
         buffer.readBytes(dst);
     }
 
     
+    @Override
     public void readBytes(byte[] dst, int dstIndex, int length) {
         buffer.readBytes(dst, dstIndex, length);
     }
 
     
+    @Override
     public void readBytes(ByteBuffer dst) {
         buffer.readBytes(dst);
     }
 
     
+    @Override
     public void readBytes(ChannelBuffer dst) {
         // careful
         readBytes(dst, dst.writableBytes());
     }
 
     
+    @Override
     public void readBytes(ChannelBuffer dst, int length) {
         // carefule
         if (length > dst.writableBytes()) {
@@ -234,6 +269,7 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
     
+    @Override
     public void readBytes(ChannelBuffer dst, int dstIndex, int length) {
         // careful
         if (readableBytes() < length) {
@@ -245,47 +281,56 @@ public class NettyBackedChannelBuffer implements ChannelBuffer {
     }
 
     
+    @Override
     public ChannelBuffer readBytes(int length) {
         return new NettyBackedChannelBuffer(buffer.readBytes(length));
     }
 
     
+    @Override
     public void resetReaderIndex() {
... 8389 lines suppressed ...

-- 
To stop receiving notification emails like this one, please contact
huxing@apache.org.