From 116c9c33ebc7702825f66cc4a012d5da73c1d57b Mon Sep 17 00:00:00 2001 From: bruce <841326226@qq.com> Date: Tue, 10 Sep 2019 11:45:49 +0800 Subject: [PATCH] fix default setting (#4955) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add pull request coverage check and set threshold as 0.1% (#1678) * Optimize_hessian_desr_performance (#1705) * We need to change the version to SNAPSHOT to satisfy release:prepare * upgrade to 2.6.2-SNAPSHOT * fixes #1089, make ExecutionDispatcher meet dubbo-user-book (#1449) * fixes #1089, make ExecutionDispatcher meets dubbo-user-book * remove heartbeat condition * enhance comments, javadoc and logging message for (#1722) ExecutionChannelHandler * Merge pull request #1716, unit test for AbstractConfigTest. * add test for serialization api & fastjson & fst module (#1718) * Merge pull request #1717, NettyHelper in netty extension populated Logger "InternalLogger" in netty. * [Dubbo-1687]Enhance test coverage for dubbo filter (#1715) * use three different kinds of cache factory to increase test coverages * add unit test cases for dubbo-filter module * add copyright and made small refactor * make sure Jcache will exceed expired period * optimize unit test for serialization hession2/jdk/kryo (#1726) * fix * imports issue (#1721) * #1731: checkMultiExtension in com.alibaba.dubbo.config.AbstractInterfaceConfig should be in setter instead of getter (#1732) * unit test for dubbo-config-api (#1733) * finish unit test for AbstractMethodConfig * finish unit test for AbstractReferenceConfig * move to right package * finish unit test for AbstractReferenceConfig * finish unit test for AbstractMethodConfig * finish unit test for AbstractReferenceConfig * move to right package * finish unit test for AbstractReferenceConfig * unit test for AbstractServiceConfig, also fix logic issue in setListener/getListener * Fix isShutdown() always return true (#1426) * Bump version to 2.6.2-SNAPSHOT. * Fix #934 #1756 use loadBalance policy to choose invoke when providers less 2 (#1759) * fix #934 use loadBalance policy to choose invoke when providers less than 2 * fix #1756, clear mock invocation after invoking * Remove unnecessary null check. * Remove redundant final modifier. * Remove unnecessary null check. * Remove redundant array creation. * Remove unnecessary null check. * Remove unnecessary null check and fix typo. * Config api unit test (#1758) * unit test for ApplicationConfig * fix typo * unit test for ArgumentConfig * unit test for ConsumerConfig * unit test for MethodConfig * unit test for ModuleConfig * unit test for MonitorConfig * unit test for ProtocolConfig * unit test for ApplicationConfig * fix typo * unit test for ArgumentConfig * unit test for ConsumerConfig * unit test for MethodConfig * unit test for ModuleConfig * unit test for MonitorConfig * unit test for ProtocolConfig * unit test for ProviderConfig * make test stable * enable tcp no delay for netty 3 server (#1746) (cherry picked from commit 430fb4c) * Change parent pom back to oss in this version * Add binary release module 'distribution' * Bump version to 2.6.2 for release * Merge pull request #1616, fix hessian1 serialized short, byte is converted to int. * Polish distribution pom * unit test for RegistryConfigTest (#1775) * Fix hessian-lite spelling mistake (#1779) * Remove unecessary cast. * Remove unnecessary null check. (#1764) * Such logic already exists in findAnnotationName (#1750) * Remove unnecessary null check. * Ignore testStatusChecker since it is unstable and consider removing it later. * unit test for ServiceConfig (#1780) * unit test for RegistryConfigTest * unit test for ServiceConfig * ignore com.alibaba.dubbo.config.ServiceConfigTest.testUnexport to make unit test stable * Merge pull request #1761, add Locale serialize & deserialize support. Fixed #906 * Upgrade tomcat version to 8.5.31. (#1781) * add test for monitor module (#1741) * [Dubbo-1687]Add unit tests for dubbo-filter-validation module (#1736) * Add unit tests for dubbo-filter-validation module * add more jaxb api libs for testing with jdk9, because it does't contain them by default any more * clean up: finish unit test for config-api (#1795) * Extracting public code to the parent class (#1776) * Extracting public code to the parent class * test * Support package NOTICE & LICENSE into sub-module jar. * Bump version to 2.6.2-SNAPSHOT * Bump version to 2.6.2-SNAPSHOT * [maven-release-plugin] prepare release dubbo-2.6.2 * [maven-release-plugin] prepare for next development iteration * Add assembly plugin * unit test for com.alibaba.dubbo.common.status.support (#1796) * unit test for Status * remove unnecessary 'static' * unit test for StatusUtils * unit test for LoadStatusChecker * reformat the code * unit test for MemoryStatusChecker * New threadLocal provides more performance. (#1745) * SerializerFactory 获取Serializer时,锁住整个hashmap,导致整个过程被block * 单元测试。保证一个class只有一个serializer和deserializer。单线程和多线程测试 * 增加线程数 50 模拟多个线程来获取serializer和deserializer * 当cores线程数全都使用的情况下,默认线程池会把任务放入到队列中。队列满则再创建线程(总数不会超过Max线程数) 增强线程池:在请求量阶段性出现高峰时使用 特性:cores线程全部使用的情况下,优先创建线程(总数不会超过max),当max个线程全都在忙的情况下,才将任务放入队列。请求量下降时,线程池会自动维持cores个线程,多余的线程退出。 * 当cores线程数全都使用的情况下,默认线程池会把任务放入到队列中。队列满则再创建线程(总数不会超过Max线程数) 增强线程池:在请求量阶段性出现高峰时使用 特性:cores线程全部使用的情况下,优先创建线程(总数不会超过max),当max个线程全都在忙的情况下,才将任务放入队列。请求量下降时,线程池会自动维持cores个线程,多余的线程退出。 * 补全单元测试,测试扩展是否生效 * 错误命名 * 增加@Override注解 long 初始化赋值时,小写l改为大写L防止误读 * 修复单元测试 * remove enhanced * remove enhanced * Faster ThreadLocal impl in internal use * Used in RpcContext`s LOCAL field. * Faster get than the traditional ThreadLocal * add License * fix ci failed * fix ci failed * fix ci failed * fix ci failed * fix ci failed * remove author info * fix destroy method * fix bug at method size. * unit test for SimpleDataStore (#1797) * Add CHANGES.md as release note. * Polish release notes in CHANGES.md * Thread pool unit test (#1802) * reformat the code, and move the test into the correct package * unit test for c.a.d.c.threadpool * Fix bug in InternalThreadLocal and provides unit test (#1803) * SerializerFactory 获取Serializer时,锁住整个hashmap,导致整个过程被block * 单元测试。保证一个class只有一个serializer和deserializer。单线程和多线程测试 * 增加线程数 50 模拟多个线程来获取serializer和deserializer * 当cores线程数全都使用的情况下,默认线程池会把任务放入到队列中。队列满则再创建线程(总数不会超过Max线程数) 增强线程池:在请求量阶段性出现高峰时使用 特性:cores线程全部使用的情况下,优先创建线程(总数不会超过max),当max个线程全都在忙的情况下,才将任务放入队列。请求量下降时,线程池会自动维持cores个线程,多余的线程退出。 * 当cores线程数全都使用的情况下,默认线程池会把任务放入到队列中。队列满则再创建线程(总数不会超过Max线程数) 增强线程池:在请求量阶段性出现高峰时使用 特性:cores线程全部使用的情况下,优先创建线程(总数不会超过max),当max个线程全都在忙的情况下,才将任务放入队列。请求量下降时,线程池会自动维持cores个线程,多余的线程退出。 * 补全单元测试,测试扩展是否生效 * 错误命名 * 增加@Override注解 long 初始化赋值时,小写l改为大写L防止误读 * 修复单元测试 * remove enhanced * remove enhanced * Faster ThreadLocal impl in internal use * Used in RpcContext`s LOCAL field. * Faster get than the traditional ThreadLocal * add License * fix ci failed * fix ci failed * fix ci failed * fix ci failed * fix ci failed * remove author info * fix destroy method * fix bug at method size. * Unit test for InternalThreadLocal * Unit test for InternalThreadLocal Fix bug in method removeAll * make unit test stable (#1805) * #1682: Enhance the test coverage part-4: dubbo-common/src/main/java/com/alibaba/dubbo/common/status(store|threadpoolutils) modules (#1806) * Remove redundant cast. * Merge pull request #1792, fix zk unsubscribe issue. * Merge pull request #1570, fix annotation demo in dubbo-test. * Add a construtor to accept address and protocol for RegistryConfig. * Remove unused code. * Ensure Dubbo can shutdown correctly when running both under tomcat and programmably. * Add comments. * Add dependency. * Using ExecutorUtil#gracefulShutdown instead of create a new method. * Correct pom version. * Fix UT failure. * Merge pull request #1811, fix unstable hessian protocol unit test by adding overload. Fixed #1667, fixed #1727 * Merge pull request #1808, fix URL parsing problem when user filed contains '@' characters. Fixed #1470 * Simplify code, no function change. * Remove unnecessary null check. * Ensure merger is specified to true to demonstrate the merger feature. * Merge pull request #1643, ChannelState branch prediction optimization. * Remove .orig file and update gitigonre. * #1816: dubbo schema compatibility * Go back to 2.6.2-SNAPSHOT to prepare for the next release. * Add source-release assembly config * Add arguments for release-plugin * #1816: dubbo schema compatibility * Fix minor issues reported in 2.6.2 RC1 * Add *.log exclude pattern for source-release assembly * Skip checkstyle by default * Skip rat by default * Merge checkstyle-plugin configuration * Exclude release temp files * Exclude release temp files * #1597: CacheFilter,when value is null,it will throw NPE(if use ehcache for jcache),why not check null here (#1828) * #1830: dbindex support in redis (#1831) * Merge pull request #1839, remove validation key from provider url registered to registry. Fixes #1386. * Add profile for distribution module * [maven-release-plugin] prepare release dubbo-2.6.2 * [maven-release-plugin] prepare for next development iteration * Merge pull request #1836, there is a potential deadlock in DubboProtocol#getSharedClient. Fixes #677. * Use InternalThreadLocal in consumer side (#1825) * SerializerFactory 获取Serializer时,锁住整个hashmap,导致整个过程被block * 单元测试。保证一个class只有一个serializer和deserializer。单线程和多线程测试 * 增加线程数 50 模拟多个线程来获取serializer和deserializer * 当cores线程数全都使用的情况下,默认线程池会把任务放入到队列中。队列满则再创建线程(总数不会超过Max线程数) 增强线程池:在请求量阶段性出现高峰时使用 特性:cores线程全部使用的情况下,优先创建线程(总数不会超过max),当max个线程全都在忙的情况下,才将任务放入队列。请求量下降时,线程池会自动维持cores个线程,多余的线程退出。 * 当cores线程数全都使用的情况下,默认线程池会把任务放入到队列中。队列满则再创建线程(总数不会超过Max线程数) 增强线程池:在请求量阶段性出现高峰时使用 特性:cores线程全部使用的情况下,优先创建线程(总数不会超过max),当max个线程全都在忙的情况下,才将任务放入队列。请求量下降时,线程池会自动维持cores个线程,多余的线程退出。 * 补全单元测试,测试扩展是否生效 * 错误命名 * 增加@Override注解 long 初始化赋值时,小写l改为大写L防止误读 * 修复单元测试 * remove enhanced * remove enhanced * Change ThreadFactory for consumer side which is to use InternalThreadLocal in RpcContext. * optimize_zk_create (#1833) * fix #1845 (#1851) * update CXF to latest version and add test case for webservice protocol (#1564) * update cxf version and add test cases * support jdk7 * add profile for dependency in jdk9 * modify profile location * fix jaxb version * add dependency for jdk9 * extract dependencies to dependencies bom project * #1682: Enhance the test coverage part-4 (#1862) * [Dubbo-1693] Enhance the test coverage part-14 (#1859) * add testcase * remove useless code * Merge pull request #1866, clarify license for codes referencing thirdparty repositories. Clarify netty License. * Merge pull request #1820, improve graceful shutdown. * Merge pull request #1837, spring spi support inject by type. * Merge pull request #1843, support implicit delivery of attachments from provider to consumer. Fixes #889, #1466, #1834, #1466, #1524 * Merge pull request #1868, add test for rpc modules. fixes #1697 * [Dubbo-1684] add unit test for dubbo spring config (#1809) * add test for config spring module * add more test for serviceBean and refBean * Merge pull request #1827, support generic invoke and attachment for http/hessian protocol. fixes #1768, #19 * Merge pull request #1872, get the real methodname to support consistenthash for generic invoke. * Merge pull request #348, AtomicPositiveInteger less memory used & provides better perf. * Merge pull request #1873, support proxy for provider side. fixes #67 * Merge #1740 manually, fix typo. * Adding maven wrapper to Dubbo project (#1887) * 当cores线程数全都使用的情况下,默认线程池会把任务放入到队列中。队列满则再创建线程(总数不会超过Max线程数) 增强线程池:在请求量阶段性出现高峰时使用 特性:cores线程全部使用的情况下,优先创建线程(总数不会超过max),当max个线程全都在忙的情况下,才将任务放入队列。请求量下降时,线程池会自动维持cores个线程,多余的线程退出。 * 当cores线程数全都使用的情况下,默认线程池会把任务放入到队列中。队列满则再创建线程(总数不会超过Max线程数) 增强线程池:在请求量阶段性出现高峰时使用 特性:cores线程全部使用的情况下,优先创建线程(总数不会超过max),当max个线程全都在忙的情况下,才将任务放入队列。请求量下降时,线程池会自动维持cores个线程,多余的线程退出。 * 补全单元测试,测试扩展是否生效 * 增加@Override注解 long 初始化赋值时,小写l改为大写L防止误读 * remove enhanced * remove enhanced * feat: 增加maven-wrapper,用户可以使用自己的maven,应用工程构建时将会使用工程的maven版本 * use mvnw to ci. * Merge pull request #1453, restore the bug that attachment has not been updated in the RpcContext when the Dubbo built-in retry mechanism is triggered. * remove author info from #1453 * upgrade version manually after merge 2.6.2-release * remove hessian-lite of 2.6.x and use https://github.com/dubbo/hessian-lite (#2073) * remove hessian-lite * add hessian-lite dependency to dependencies-bom/pom.xml * Merge pull request #2117, fix protocol version compatibility with lower versions. * #1431: here is a StackOverflow bug? dubbo version 2.5.9, FailsafeLogger.appendContextMessage() > NetUtils.getLocalAddress() (#1912) * Updage changes for 2.6.3 * Merge #2114 mannually from master, enable configuration of Consumer thread pool. * Merge #2114 mannually from master, enable configuration of Consumer thread pool. * Merge pull request #2126, ensure compatibility for elegant shutdown under servlet container. Fixes #1998 * Resolve conflicts of merging #1820 * Upgrade hessian-lite dependency to 3.2.4 * [maven-release-plugin] prepare release dubbo-2.6.3 * [maven-release-plugin] prepare for next development iteration * support char[] for generic invoke #2003 (#2137) * support char[] for generic invoke, #2003 * add null or empty string testcase * Update CHANGES.md polish * Exclude maven wrapper when package * Merge pull request #2024, binding attachment before a clusterInvoker invoke. Fixes #1978 * Merge pull request #2146, fix redis auth problem for RedisProtocol. Fixes #2017 * fix subscription when enable monitor (#2166) It looks good. * solve compatible issue with dubbo 2.5.9, 2.5.10 (#2175) * solve compatible issue with dubbo 2.5.9, 2.5.10 (#2175) * Add compatibility notice to Release Notes * fix ut unstable (#2192) * Replace hard coded version number of hessian-lite #2136 (#2195) * Fixes #2136, replace hard coded hessian-lite version with mavne property. (#2223) * Remove hessian-lite license. * fix ut stable, #2227 (#2302) * fix ut, #2227 * add cache for travis ci * fix travis problem, skip javadoc * fix retries to 2, #2162 (#2303) * Revert version to 2.6.2-SNAPSHOT to prepare for 2.6.3 RC4 * Replace outdated license header * Include 'apache' in release package name. * Fix version issue: 2.6.2-SNAPSHOT to 2.6.3-SNAPSHOT * [maven-release-plugin] prepare release dubbo-2.6.3 * [maven-release-plugin] prepare for next development iteration * complete LICENSE for test xml, fix checkstyle problem * [maven-release-plugin] prepare release dubbo-2.6.3 * New ascii logo for 2.6.x (#2402) * Merge pull request #2417, add release script (draft). * Direct return when the server goes down unnormally. (#2451) * fix telnet invoke NPE #2218 (#2273) (#2453) * upgrade javadoc to 3.0.1 (#2454) * Qos enhancement, take #2153 back to 2.6.x (#2455) * remove dubbo-all javadoc plugin (#2456) * Prepare for the next development version * add cache for travis, fix ut for stable (#2501) * fix time, timestamp, SQL. Date type conversion problems (#2502) * add change log for 2.6.4 * Enhance NOTICE file. * change port for unit test * [maven-release-plugin] prepare release dubbo-2.6.4 * [maven-release-plugin] prepare for next development iteration * fix #2560, use target/test-classes as the basedir (#2564) * Optimize LeastActiveLoadBalance and add weight test case. (#2584) * fix #2600, add javadoc plugin to dubbo-all module (#2602) * Removed jdk9 from .travis.yml. (#2609) * update release script (#2615) * Fix incorrect descriptions for dubbo-serialization module for 2.6.x. (#2624) Fix incorrect descriptions for dubbo-serialization module for 2.6.x. * Fixed 2.6.x branch a minor issue with doConnect not using getConnectTimeout() in NettyClient,like #2595 (#2622) * fix #1641, support get system load on windows. (#2621) * fix #2063 * @Service and @Reference Optimization (#2657) * Polish apache/incubator-dubbo#2235 apache/incubator-dubbo#2251 apache/incubator-dubbo-spring-boot-project#243 * Fixed bugs and optimized imports * #1903: merge issue 1903's fix from 2.7.0 to 2.6.x (#2668) * #2016: merge fix from 2.7.0 to 2.6.x (#2680) * Smooth Round Robin selection (#2647) * remove author info for RoundRobinLoadBalance (#2696) * Bug Fix & Enhancement (#2687) * Polish apache/incubator-dubbo#2235 apache/incubator-dubbo#2251 apache/incubator-dubbo-spring-boot-project#243 * Fixed bugs and optimized imports * Remove local PropertySourcesUtils and re-use it from spring-context-extras * Add Test cases for YAML properties issues : apache/incubator-dubbo-spring-boot-project/issues/273 * Optimize imports using code-style template * Refactor Utilities class * Fixed test cases * [Enhancement] @EnableDubboConfigBinding annotates @Repeatable apache/incubator-dubbo#1770 * Bug fix * Remove feature : [Enhancement] @EnableDubboConfigBinding annotates @Repeatable apache/incubator-dubbo#1770 * release 2.6.5 (#2705) * 2.6.5 release changes.md (#2708) * release 2.6.5 * release 2.6.5 * release 2.6.5 changes * add 2.6.5 release note * add 2.6.5 release note * modify 2.6.5 release log (replace pr link with issue link) (#2716) * release 2.6.5 * edit release note for 2.6.5 (rewrite log) * remove serviceclassHolder and also fix the issue #2637 (#2607) * remove serviceclassHolder * [Dubbo-2637] fix the issue #2637 to make sure the properties load properly * ServiceConfig.java:33: Using the '.*' form of import should be avoided * replace the import rpc.* with rpc Exporter etc * replace the import rpc.* with rpc Exporter etc * fix referenceBean initialization issue (#2719) * [Dubbo-2678] Add ability to turn off SPI auto injection, special support for Object type. (#2681) * Add ability to turn off SPI auto injection, special support for generic Object type injection. * Add ability to turn off SPI auto injection, special support for generic Object type injection. * disable() is redundant in DisableInject annotation. * merge https://github.com/apache/incubator-dubbo/pull/2725 (#2734) * merge https://github.com/apache/incubator-dubbo/pull/2725 * fix UT failure * remove useless test * fix unit test failures * [DUBBO-2489] MockClusterInvoker provides local forced mock,I tested it locally, but it doesn't work (#2739) * Add forks support for ForkingCluster. (#2751) Add forks support for ForkingCluster. * #2748: Provider should disable mock configuration (#2750) * Fix the bug that ReferenceBean refers service more than once when debugging. (#2759) note: please visit http://t.cn/EAhta27 for more detail. * merge pull request #2353 to 2.6.x to fix #2353 (#2761) * #2762: [Dubbo - qos-http] stopServer should be invoked ? (#2768) * 2.6.5 release note change (#2775) * release 2.6.5 * edit release note for 2.6.5 (rewrite log) * mmm * edit release note to remove some unuseful word * merge from upstream and origin * [Dubbo-2678] Add ability to turn off SPI auto injection, special support for Object type. (#2681) * Add ability to turn off SPI auto injection, special support for generic Object type injection. * Add ability to turn off SPI auto injection, special support for generic Object type injection. * disable() is redundant in DisableInject annotation. * Update release note * fix #2459 sha512 issue * [maven-release-plugin] prepare release dubbo-2.6.5 * [maven-release-plugin] prepare for next development iteration * fix 2798 on branch 2.6.x (#2805) 'propertyname in java donot contain '-' but camel format'. * Remove extra modifiers (#2876) Remove extra modifiers * feature:import TagRouter (#3065) * Merge pull request #3315, fixes #2842, duplicate SPI config items. * Fix random ut falling in DubboMonitorTest (#3336) * use netty4 as default transporter for 2.6.6 #3029 (#3318) * use netty4 as default transporter for 2.6.6 #3029 * fix config file issue && enhance UT * ignore unstable test * Activate SPI sort (#3412) * 修正排序 * Update dubbo-common/src/main/java/com/alibaba/dubbo/common/extension/support/ActivateComparator.java code style Co-Authored-By: dongYES <30755351+dongYES@users.noreply.github.com> * Merge pull request #3502, apply #3295 to 2.6 branch. Fixes #3294, referenceconfig#destroy never invoke unregister. * Merge pull request #3511, apply #2925 to branch 2.6.x (to make telnet config work again). * Revise the naming conventions (#3506) * apply #2220 to 2.6.x branch, issue #2178 (#3519) * Apply #2925 to branch 2.6.x * apply #2220 to 2.6.x branch, issue #2178 * Revise the naming conventions (#3506) * apply #2220 to 2.6.x branch, issue #2178 * remove java.time package * update hessian-lite to 2.6.5 (#3538) * [Enhancement] inline the source code of spring-context-support (#3225) * Manually merge pull request #1486, to make travis ci and codecov work after apache incubator transition. * Polish alibaba/dubbo#1306 * Optimize imports * Optimize imports * Remove invalid JavaDoc * Update DubboConfigBinder.java Remove invalid JavaDoc * Fix apache/incubator-dubbo#1653 * Fixed apache/incubator-dubbo#1772 * Reactor ReferenceAnnotationBeanPostProcessor * Fixed incubator-dubbo-spring-boot-project#243 * Add ServiceBeanNameBuilder * Polish apache/incubator-dubbo/#2235 * Polish incubator-dubbo#2251 * Update spring-context-supprt version to be release * Rename ServiceBeanExportEvent to be ServiceBeanExportedEvent * Poblish apache/incubator-dubbo#2297 * Polish apache/incubator-dubbo#2301 * Polish apache/incubator-dubbo#2315 * Polish apache/incubator-dubbo#2897 : DubboConfigConfigurationSelector precedence is too high * Polish apache/incubator-dubbo#2897 : implements ImportBeanDefinitionRegistrar in order to reduce precedence * Polish apache/incubator-dubbo#2897 : rename DubboConfigConfigurationSelector to DubboConfigConfigurationRegistrar * Polish apache/incubator-dubbo#3192 : inline the source code of spring-context-support * Fixed the issues of the test-cases * Polish apache/incubator-dubbo#3193 : [Enhancement] Change the default behavior of @EnableDubboConfig.multiple() * Polish apache/incubator-dubbo#3192 : inline the source code of spring-context-support * Polish apache/incubator-dubbo#3189 Simplify externalized configuration of Dubbo Protocol name * Polish apache/incubator-dubbo#3193 * Polish apache/incubator-dubbo#2987 * Polish apache/incubator-dubbo#3355 : Add the "protocol" attribute * Polish apache/incubator-dubbo#3355 : Still exists the issues in service discovery. * Polish apache/incubator-dubbo#3355 : fix the issues in samples * Polish apache/incubator-dubbo#3355 : fix the issues in samples * Polish apache/incubator-dubbo#3296 : Merge and enhancement dubbo-registry-nacos * Polish apache/incubator-dubbo#3251 : @Service supports the hierarchical interface * Polish apache/incubator-dubbo#3275 : ReferenceBeanInvocationHandler does not throw the actual exception * Polish apache/incubator-dubbo#3429 : Fix the NPE * add license header * Polish apache/incubator-dubbo#3296 : Supports Docker * [Dubbo-2298] Add Annotation-Driven for MethodConfig and ArgumentConfig (#2603) * support methodConfig and argementConfig. fix #2298 * unit test * unit test * remove unused * remove author * add licence * format the code * update notice * update CHANGE.md * [maven-release-plugin] prepare release dubbo-2.6.6 * [maven-release-plugin] prepare for next development iteration * [DUBBO-3243] Fix Invalid use of BasicClientConnManager: connection still allocated #3243 (#3581) * Multicast ipv6 support for branch 2.6.x (#3430) * Multicast demo fails with message "Can't assign requested address * remove useless code * Fix multicast registry ut * fix fastjson serialize type (#3767) * Add ASF header #3721 (#3783) * fix for #4111 (#4114) do not ignore empty value when we construct servicename * Disclaimer removed (#4233) * [No issue] Fix: @Method default value will be set to the field of MethodConfig (#3642) * fix #2842. fix duplicate SPI definitions * fix @Method set empty string into field * Polish /apache/dubbo#3695 : @Reference field can't refer its' @Service Bean in same JVM from v2.6.6 (#4385) * Nacos Dubbo Registry can't sense the change (#4392) fixes #4348 : * Dubbo throws IoException with error message while decoding fail (#4396) Really have this problem * Dubbo throws exception when use java serializer (#4530) * Dubbo throws exception when use java serializer issues: https://github.com/apache/dubbo/issues/3951 https://github.com/apache/dubbo/issues/3698 * Dubbo throws exception when use java serializer issues: https://github.com/apache/dubbo/issues/3951 https://github.com/apache/dubbo/issues/3698 fix travis-ci UnusedImports * upgrade fastjson to 1.2.58 (#4624) fixes #4623 * 修复注册中心域名解析导致的单点问题 (#4293) Fix #2545 * enhance travis * travis config on 2.6.x (#4916) * fix default setting * enhance travis build * switch back to openjdk since zulu 7 doesn't support javascript, see issue #4961 * use zulu jdk 7 but disable ScriptRouterTest * add timeout config to zookeeper client (#4963) * 解决冲突 --- .../AnnotationInjectedBeanPostProcessor.java | 56 ++++++++++++++----- .../DubboConfigBindingBeanPostProcessor.java | 30 ++-------- 2 files changed, 45 insertions(+), 41 deletions(-) diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationInjectedBeanPostProcessor.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationInjectedBeanPostProcessor.java index 95ecdfb0a84..f103ed8c7d3 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationInjectedBeanPostProcessor.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/AnnotationInjectedBeanPostProcessor.java @@ -64,7 +64,7 @@ /** * Abstract generic {@link BeanPostProcessor} implementation for customized annotation that annotated injected-object. - * + *

* The source code is cloned from https://github.com/alibaba/spring-context-support/blob/1.0.2/src/main/java/com/alibaba/spring/beans/factory/annotation/AnnotationInjectedBeanPostProcessor.java * * @since 2.6.6 @@ -224,7 +224,7 @@ private AnnotationInjectedBeanPostProcessor.AnnotatedInjectionMetadata buildAnno } - private InjectionMetadata findInjectionMetadata(String beanName, Class clazz, PropertyValues pvs) { + public InjectionMetadata findInjectionMetadata(String beanName, Class clazz, PropertyValues pvs) { // Fall back to class name as cache key, for backwards compatibility with custom callers. String cacheKey = (StringUtils.hasLength(beanName) ? beanName : clazz.getName()); // Quick check on the concurrent map first, with minimal locking. @@ -314,8 +314,8 @@ protected ConfigurableListableBeanFactory getBeanFactory() { * * @return non-null {@link Collection} */ - protected Collection getInjectedObjects() { - return this.injectedObjectsCache.values(); + protected Map getInjectedObjects() { + return this.injectedObjectsCache; } /** @@ -402,7 +402,7 @@ protected Map getInjectedFieldObjects for (AnnotationInjectedBeanPostProcessor.AnnotatedFieldElement fieldElement : fieldElements) { - injectedElementBeanMap.put(fieldElement, fieldElement.bean); + injectedElementBeanMap.put(fieldElement, fieldElement.injectedBean); } @@ -428,20 +428,19 @@ protected Map getInjectedMethodObject for (AnnotationInjectedBeanPostProcessor.AnnotatedMethodElement methodElement : methodElements) { - injectedElementBeanMap.put(methodElement, methodElement.object); + injectedElementBeanMap.put(methodElement, methodElement.injectedBean); } } return Collections.unmodifiableMap(injectedElementBeanMap); - } /** * {@link A} {@link InjectionMetadata} implementation */ - private class AnnotatedInjectionMetadata extends InjectionMetadata { + public class AnnotatedInjectionMetadata extends InjectionMetadata { private final Collection fieldElements; @@ -466,13 +465,13 @@ public Collection ge /** * {@link A} {@link Method} {@link InjectionMetadata.InjectedElement} */ - private class AnnotatedMethodElement extends InjectionMetadata.InjectedElement { + public class AnnotatedMethodElement extends InjectionMetadata.InjectedElement { private final Method method; private final A annotation; - private volatile Object object; + private volatile Object injectedBean; protected AnnotatedMethodElement(Method method, PropertyDescriptor pd, A annotation) { super(method, pd); @@ -485,14 +484,29 @@ protected void inject(Object bean, String beanName, PropertyValues pvs) throws T Class injectedType = pd.getPropertyType(); - Object injectedObject = getInjectedObject(annotation, bean, beanName, injectedType, this); + injectedBean = getInjectedObject(annotation, bean, beanName, injectedType, this); ReflectionUtils.makeAccessible(method); - method.invoke(bean, injectedObject); + method.invoke(bean, injectedBean); + + } + + public Method getMethod() { + return method; + } + + public A getAnnotation() { + return annotation; + } + public Object getInjectedBean() { + return injectedBean; } + public PropertyDescriptor getPd() { + return this.pd; + } } /** @@ -504,7 +518,7 @@ public class AnnotatedFieldElement extends InjectionMetadata.InjectedElement { private final A annotation; - private volatile Object bean; + private volatile Object injectedBean; protected AnnotatedFieldElement(Field field, A annotation) { super(field, null); @@ -517,12 +531,24 @@ protected void inject(Object bean, String beanName, PropertyValues pvs) throws T Class injectedType = field.getType(); - Object injectedObject = getInjectedObject(annotation, bean, beanName, injectedType, this); + injectedBean = getInjectedObject(annotation, bean, beanName, injectedType, this); ReflectionUtils.makeAccessible(field); - field.set(bean, injectedObject); + field.set(bean, injectedBean); + + } + + public Field getField() { + return field; + } + + public A getAnnotation() { + return annotation; + } + public Object getInjectedBean() { + return injectedBean; } } diff --git a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessor.java b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessor.java index f87be246935..21d261e66c7 100644 --- a/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessor.java +++ b/dubbo-config/dubbo-config-spring/src/main/java/com/alibaba/dubbo/config/spring/beans/factory/annotation/DubboConfigBindingBeanPostProcessor.java @@ -66,10 +66,6 @@ public class DubboConfigBindingBeanPostProcessor implements BeanPostProcessor, A private ApplicationContext applicationContext; - private boolean ignoreUnknownFields = true; - - private boolean ignoreInvalidFields = true; - private List configBeanCustomizers = Collections.emptyList(); /** @@ -93,11 +89,8 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro bind(prefix, dubboConfig); customize(beanName, dubboConfig); - } - return bean; - } private void bind(String prefix, AbstractConfig dubboConfig) { @@ -118,22 +111,6 @@ private void customize(String beanName, AbstractConfig dubboConfig) { } - public boolean isIgnoreUnknownFields() { - return ignoreUnknownFields; - } - - public void setIgnoreUnknownFields(boolean ignoreUnknownFields) { - this.ignoreUnknownFields = ignoreUnknownFields; - } - - public boolean isIgnoreInvalidFields() { - return ignoreInvalidFields; - } - - public void setIgnoreInvalidFields(boolean ignoreInvalidFields) { - this.ignoreInvalidFields = ignoreInvalidFields; - } - public DubboConfigBinder getDubboConfigBinder() { return dubboConfigBinder; } @@ -175,9 +152,6 @@ private void initDubboConfigBinder() { } } - dubboConfigBinder.setIgnoreUnknownFields(ignoreUnknownFields); - dubboConfigBinder.setIgnoreInvalidFields(ignoreInvalidFields); - } private void initConfigBeanCustomizers() { @@ -199,6 +173,10 @@ private void initConfigBeanCustomizers() { protected DubboConfigBinder createDubboConfigBinder(Environment environment) { DefaultDubboConfigBinder defaultDubboConfigBinder = new DefaultDubboConfigBinder(); defaultDubboConfigBinder.setEnvironment(environment); + + defaultDubboConfigBinder.setIgnoreUnknownFields(true); + defaultDubboConfigBinder.setIgnoreInvalidFields(true); + return defaultDubboConfigBinder; }