├── .gitignore ├── LICENSE ├── NOTICE ├── README.md ├── dubbo-admin ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ ├── governance │ │ │ ├── PageContext.java │ │ │ ├── biz │ │ │ │ └── common │ │ │ │ │ └── i18n │ │ │ │ │ ├── MessageResourceService.java │ │ │ │ │ └── impl │ │ │ │ │ └── MessageResourceServiceImpl.java │ │ │ ├── service │ │ │ │ ├── ConfigService.java │ │ │ │ ├── ConsumerService.java │ │ │ │ ├── OverrideService.java │ │ │ │ ├── OwnerService.java │ │ │ │ ├── ProviderService.java │ │ │ │ ├── RouteService.java │ │ │ │ ├── UserService.java │ │ │ │ └── impl │ │ │ │ │ ├── AbstractService.java │ │ │ │ │ ├── ConfigServiceImpl.java │ │ │ │ │ ├── ConsumerServiceImpl.java │ │ │ │ │ ├── OverrideServiceImpl.java │ │ │ │ │ ├── OwnerServiceImpl.java │ │ │ │ │ ├── ProviderServiceImpl.java │ │ │ │ │ ├── RouteServiceImpl.java │ │ │ │ │ └── UserServiceImpl.java │ │ │ ├── status │ │ │ │ ├── DatabaseStatusChecker.java │ │ │ │ ├── LoadStatusChecker.java │ │ │ │ └── MemoryStatusChecker.java │ │ │ ├── sync │ │ │ │ ├── RegistryServerSync.java │ │ │ │ └── util │ │ │ │ │ ├── Pair.java │ │ │ │ │ └── SyncUtils.java │ │ │ └── web │ │ │ │ ├── common │ │ │ │ ├── auth │ │ │ │ │ └── DubboUser.java │ │ │ │ ├── i18n │ │ │ │ │ └── LocaleUtil.java │ │ │ │ ├── interceptor │ │ │ │ │ ├── AuthorizationValve.java │ │ │ │ │ ├── LocaleValve.java │ │ │ │ │ ├── RestfuleUrlRewriter.java │ │ │ │ │ └── ServicePrivilegeCheckValve.java │ │ │ │ ├── module │ │ │ │ │ └── screen │ │ │ │ │ │ ├── Error_404.java │ │ │ │ │ │ ├── Error_other.java │ │ │ │ │ │ └── Restful.java │ │ │ │ ├── pulltool │ │ │ │ │ ├── DateFormatUtil.java │ │ │ │ │ ├── I18nMessageTool.java │ │ │ │ │ ├── RootContextPath.java │ │ │ │ │ ├── Tool.java │ │ │ │ │ └── ToolUtil.java │ │ │ │ ├── resolver │ │ │ │ │ ├── MapDataResolverFactory.java │ │ │ │ │ └── ParameterMap.java │ │ │ │ └── utils │ │ │ │ │ └── RelateUserUtils.java │ │ │ │ ├── governance │ │ │ │ └── module │ │ │ │ │ └── screen │ │ │ │ │ ├── Accesses.java │ │ │ │ │ ├── Addresses.java │ │ │ │ │ ├── Applications.java │ │ │ │ │ ├── Consumers.java │ │ │ │ │ ├── Loadbalances.java │ │ │ │ │ ├── NoServicePrivilege.java │ │ │ │ │ ├── Overrides.java │ │ │ │ │ ├── Owners.java │ │ │ │ │ ├── Providers.java │ │ │ │ │ ├── Routes.java │ │ │ │ │ ├── Services.java │ │ │ │ │ └── Weights.java │ │ │ │ ├── home │ │ │ │ └── module │ │ │ │ │ ├── control │ │ │ │ │ └── Menu.java │ │ │ │ │ └── screen │ │ │ │ │ ├── Disable.java │ │ │ │ │ ├── Index.java │ │ │ │ │ ├── Lookup.java │ │ │ │ │ ├── Reg.java │ │ │ │ │ ├── Register.java │ │ │ │ │ ├── Restful.java │ │ │ │ │ ├── Result.java │ │ │ │ │ ├── Servicestatus.java │ │ │ │ │ ├── Shell.java │ │ │ │ │ ├── Status.java │ │ │ │ │ ├── Unreg.java │ │ │ │ │ ├── Unregister.java │ │ │ │ │ └── Unregisterall.java │ │ │ │ ├── personal │ │ │ │ └── module │ │ │ │ │ └── screen │ │ │ │ │ ├── Infos.java │ │ │ │ │ └── Passwds.java │ │ │ │ ├── sysinfo │ │ │ │ └── module │ │ │ │ │ └── screen │ │ │ │ │ ├── Dump.java │ │ │ │ │ ├── Dumps.java │ │ │ │ │ ├── Envs.java │ │ │ │ │ ├── Logs.java │ │ │ │ │ ├── Statuses.java │ │ │ │ │ └── Versions.java │ │ │ │ ├── sysmanage │ │ │ │ └── module │ │ │ │ │ └── screen │ │ │ │ │ ├── Configs.java │ │ │ │ │ ├── Privileges.java │ │ │ │ │ └── Userown.java │ │ │ │ └── util │ │ │ │ ├── ContextUtil.java │ │ │ │ ├── GovernanceWarmup.java │ │ │ │ ├── Paginator.java │ │ │ │ ├── UrlUtils.java │ │ │ │ └── WebConstants.java │ │ │ └── registry │ │ │ └── common │ │ │ ├── ChangeListener.java │ │ │ ├── StatusManager.java │ │ │ ├── domain │ │ │ ├── Access.java │ │ │ ├── Agreement.java │ │ │ ├── Approval.java │ │ │ ├── ApprovalRequisition.java │ │ │ ├── Change.java │ │ │ ├── Cluster.java │ │ │ ├── Config.java │ │ │ ├── Consumer.java │ │ │ ├── DependItem.java │ │ │ ├── Dependency.java │ │ │ ├── Document.java │ │ │ ├── Entity.java │ │ │ ├── Favorite.java │ │ │ ├── Feature.java │ │ │ ├── Layer.java │ │ │ ├── LoadBalance.java │ │ │ ├── Mock.java │ │ │ ├── Operation.java │ │ │ ├── Override.java │ │ │ ├── Owner.java │ │ │ ├── PageList.java │ │ │ ├── Provider.java │ │ │ ├── Registry.java │ │ │ ├── Route.java │ │ │ ├── SearchHistory.java │ │ │ ├── Test.java │ │ │ ├── User.java │ │ │ └── Weight.java │ │ │ ├── registry │ │ │ └── ConvertUtil.java │ │ │ ├── route │ │ │ ├── OverrideUtils.java │ │ │ ├── ParseUtils.java │ │ │ ├── RouteRule.java │ │ │ ├── RouteRuleUtils.java │ │ │ └── RouteUtils.java │ │ │ ├── status │ │ │ ├── DatabaseStatusChecker.java │ │ │ ├── LoadStatusChecker.java │ │ │ └── MemoryStatusChecker.java │ │ │ └── util │ │ │ ├── Coder.java │ │ │ ├── Entities.java │ │ │ ├── IntHashMap.java │ │ │ ├── LocaleUtils.java │ │ │ ├── MessageSource.java │ │ │ ├── OverrideUtils.java │ │ │ ├── StringEscapeUtils.java │ │ │ └── Tool.java │ ├── resources │ │ └── META-INF │ │ │ └── spring │ │ │ └── dubbo-admin.xml │ └── webapp │ │ ├── META-INF │ │ └── autoconf │ │ │ ├── auto-config.xml │ │ │ ├── dubbo.properties.vm │ │ │ ├── log4j.xml │ │ │ ├── resources.xml │ │ │ └── web.xml.vm │ │ ├── SpryAssets │ │ ├── SpryValidationRadio.css │ │ └── SpryValidationRadio.js │ │ ├── WEB-INF │ │ ├── applicationContext.xml │ │ ├── common │ │ │ ├── pipeline-exception.xml │ │ │ ├── pipeline-rpc.xml │ │ │ ├── pipeline.xml │ │ │ ├── resources.xml │ │ │ ├── rewrite.xml │ │ │ ├── uris.xml │ │ │ ├── webx-component-and-root.xml │ │ │ └── webx-component.xml │ │ ├── dubbo.properties │ │ ├── forms │ │ │ └── provider.xml │ │ ├── i18n │ │ │ ├── message_en.properties │ │ │ ├── message_zh.properties │ │ │ └── message_zh_TW.properties │ │ ├── log4j.xml │ │ ├── templates │ │ │ ├── common │ │ │ │ └── screen │ │ │ │ │ ├── error_404.vm │ │ │ │ │ └── error_other.vm │ │ │ ├── governance │ │ │ │ ├── layout │ │ │ │ │ ├── default.vm │ │ │ │ │ ├── noServicePrivilege.vm │ │ │ │ │ ├── redirect.vm │ │ │ │ │ └── search.vm │ │ │ │ └── screen │ │ │ │ │ ├── accesses │ │ │ │ │ ├── add.vm │ │ │ │ │ └── index.vm │ │ │ │ │ ├── addresses │ │ │ │ │ ├── index.vm │ │ │ │ │ └── search.vm │ │ │ │ │ ├── applications │ │ │ │ │ ├── index.vm │ │ │ │ │ └── search.vm │ │ │ │ │ ├── consumers │ │ │ │ │ ├── edit.vm │ │ │ │ │ ├── index.vm │ │ │ │ │ ├── notified.vm │ │ │ │ │ ├── routed.vm │ │ │ │ │ └── show.vm │ │ │ │ │ ├── error.vm │ │ │ │ │ ├── loadbalances │ │ │ │ │ ├── add.vm │ │ │ │ │ ├── edit.vm │ │ │ │ │ ├── index.vm │ │ │ │ │ └── show.vm │ │ │ │ │ ├── noServicePrivilege.vm │ │ │ │ │ ├── overrides │ │ │ │ │ ├── add.vm │ │ │ │ │ ├── edit.vm │ │ │ │ │ ├── index.vm │ │ │ │ │ └── show.vm │ │ │ │ │ ├── owners │ │ │ │ │ ├── add.vm │ │ │ │ │ └── index.vm │ │ │ │ │ ├── providers │ │ │ │ │ ├── add.vm │ │ │ │ │ ├── edit.vm │ │ │ │ │ ├── index.vm │ │ │ │ │ └── show.vm │ │ │ │ │ ├── redirect.vm │ │ │ │ │ ├── routes │ │ │ │ │ ├── add.vm │ │ │ │ │ ├── edit.vm │ │ │ │ │ ├── index.vm │ │ │ │ │ ├── preview.vm │ │ │ │ │ ├── routeselect.vm │ │ │ │ │ └── show.vm │ │ │ │ │ ├── services │ │ │ │ │ ├── index.vm │ │ │ │ │ └── search.vm │ │ │ │ │ └── weights │ │ │ │ │ ├── add.vm │ │ │ │ │ ├── edit.vm │ │ │ │ │ ├── index.vm │ │ │ │ │ └── show.vm │ │ │ ├── home │ │ │ │ ├── control │ │ │ │ │ └── menu.vm │ │ │ │ └── screen │ │ │ │ │ ├── ajax.vm │ │ │ │ │ ├── index.vm │ │ │ │ │ └── services.vm │ │ │ └── sysinfo │ │ │ │ ├── layout │ │ │ │ ├── default.vm │ │ │ │ ├── redirect.vm │ │ │ │ └── search.vm │ │ │ │ └── screen │ │ │ │ ├── dumps │ │ │ │ └── index.vm │ │ │ │ ├── envs │ │ │ │ └── index.vm │ │ │ │ ├── logs │ │ │ │ └── index.vm │ │ │ │ ├── redirect.vm │ │ │ │ ├── socketConn.vm │ │ │ │ ├── statuses │ │ │ │ └── index.vm │ │ │ │ └── versions │ │ │ │ ├── index.vm │ │ │ │ └── show.vm │ │ ├── web.xml │ │ ├── webx-governance.xml │ │ ├── webx-home.xml │ │ ├── webx-personal.xml │ │ ├── webx-sysinfo.xml │ │ ├── webx-sysmanage.xml │ │ └── webx.xml │ │ ├── crossdomain.xml │ │ ├── css │ │ ├── common.css │ │ ├── dubbo.css │ │ └── skin.css │ │ ├── favicon.ico │ │ ├── images │ │ ├── 404error.gif │ │ ├── Thumbs.db │ │ ├── bg01.gif │ │ ├── bg02.gif │ │ ├── bg03.gif │ │ ├── bg04.gif │ │ ├── btn_info.png │ │ ├── btn_service.png │ │ ├── button_hover.png │ │ ├── button_normal.png │ │ ├── co_01.gif │ │ ├── co_02.gif │ │ ├── co_03.gif │ │ ├── co_04.gif │ │ ├── dog.gif │ │ ├── dubbo_list_th.png │ │ ├── exit.png │ │ ├── fav_arrow.png │ │ ├── fav_tab_active.png │ │ ├── fav_tab_normal.png │ │ ├── fav_title.png │ │ ├── head_bg.png │ │ ├── ico_add.png │ │ ├── ico_back.png │ │ ├── ico_balance.png │ │ ├── ico_cancel.png │ │ ├── ico_delete.png │ │ ├── ico_disable.png │ │ ├── ico_down.png │ │ ├── ico_edit.png │ │ ├── ico_enable.png │ │ ├── ico_error.png │ │ ├── ico_favorite.png │ │ ├── ico_forb.png │ │ ├── ico_graph.png │ │ ├── ico_help.png │ │ ├── ico_list.png │ │ ├── ico_password.png │ │ ├── ico_reconnect.png │ │ ├── ico_recover.png │ │ ├── ico_register.png │ │ ├── ico_reload.png │ │ ├── ico_renotify.png │ │ ├── ico_run.png │ │ ├── ico_save.png │ │ ├── ico_search.png │ │ ├── ico_show.png │ │ ├── ico_subscribe.png │ │ ├── ico_tree.png │ │ ├── ico_up.png │ │ ├── ico_user.png │ │ ├── ico_warn.png │ │ ├── input.png │ │ ├── login_bg.png │ │ ├── login_box.png │ │ ├── login_btn_hover.png │ │ ├── login_btn_normal.png │ │ ├── login_shadow.png │ │ ├── logo.png │ │ ├── main_bg.png │ │ ├── nav_bg.png │ │ ├── nav_btn_bg22.png │ │ ├── nav_btn_bg3.png │ │ ├── nav_btn_bg33.png │ │ ├── nav_btn_bg44.png │ │ ├── nav_pass.png │ │ ├── nav_selected.png │ │ ├── pop_close.png │ │ ├── pop_left.png │ │ ├── pop_leftbottom.png │ │ ├── pop_lefttop_small.png │ │ ├── pop_midbottom.png │ │ ├── pop_midtop_small.png │ │ ├── pop_right.png │ │ ├── pop_rightbottom.png │ │ ├── pop_righttop_small.png │ │ ├── search_active.png │ │ ├── search_btn.png │ │ ├── search_global_m.png │ │ ├── search_input.png │ │ ├── search_line.png │ │ ├── tab_active.png │ │ ├── table_title_bg.png │ │ ├── tip_choose.png │ │ ├── tip_confirm.png │ │ ├── tip_del.png │ │ ├── tip_succeed.png │ │ ├── tree-blank.gif │ │ ├── tree-down-left.gif │ │ ├── tree-down.gif │ │ ├── tree-left-up.gif │ │ ├── tree-right-down.gif │ │ ├── tree-up-right.gif │ │ └── tree-up.gif │ │ └── js │ │ ├── ajax.js │ │ ├── box.js │ │ ├── dubbo.js │ │ ├── jquery-1.4.2.min.js │ │ ├── jquery.hoverIntent.js │ │ ├── jquery.simplemodal-1.4.js │ │ ├── menu.js │ │ ├── pop.js │ │ └── trcolor.js │ └── test │ ├── assembly │ └── bin │ │ └── setup.bat │ ├── java │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── registry │ │ └── common │ │ ├── domain │ │ └── PageListTest.java │ │ ├── route │ │ ├── ParseUtilsTest.java │ │ ├── RouteRuleTest.java │ │ ├── RouteRuleUtilsTest.java │ │ └── RouteUtilsTest.java │ │ └── util │ │ └── ToolTest.java │ └── resources │ ├── AgreementData.xml │ ├── ApprovalData.xml │ ├── ChangeData.xml │ ├── ClusterData.xml │ ├── ConsumerData.xml │ ├── DocumentData.xml │ ├── LayerData.xml │ ├── OperationData.xml │ ├── ProviderData.xml │ ├── RegistryData.xml │ ├── RouteData.xml │ ├── TestData.xml │ ├── UserData.xml │ ├── WeightData.xml │ ├── dubbo.properties │ └── log4j.xml ├── dubbo-cluster ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── cluster │ │ │ ├── Cluster.java │ │ │ ├── Configurator.java │ │ │ ├── ConfiguratorFactory.java │ │ │ ├── Directory.java │ │ │ ├── LoadBalance.java │ │ │ ├── Merger.java │ │ │ ├── Router.java │ │ │ ├── RouterFactory.java │ │ │ ├── RuleConverter.java │ │ │ ├── configurator │ │ │ ├── AbstractConfigurator.java │ │ │ ├── absent │ │ │ │ ├── AbsentConfigurator.java │ │ │ │ └── AbsentConfiguratorFactory.java │ │ │ └── override │ │ │ │ ├── OverrideConfigurator.java │ │ │ │ └── OverrideConfiguratorFactory.java │ │ │ ├── directory │ │ │ ├── AbstractDirectory.java │ │ │ └── StaticDirectory.java │ │ │ ├── loadbalance │ │ │ ├── AbstractLoadBalance.java │ │ │ ├── ConsistentHashLoadBalance.java │ │ │ ├── LeastActiveLoadBalance.java │ │ │ ├── RandomLoadBalance.java │ │ │ └── RoundRobinLoadBalance.java │ │ │ ├── merger │ │ │ ├── ArrayMerger.java │ │ │ ├── BooleanArrayMerger.java │ │ │ ├── ByteArrayMerger.java │ │ │ ├── CharArrayMerger.java │ │ │ ├── DoubleArrayMerger.java │ │ │ ├── FloatArrayMerger.java │ │ │ ├── IntArrayMerger.java │ │ │ ├── ListMerger.java │ │ │ ├── LongArrayMerger.java │ │ │ ├── MapMerger.java │ │ │ ├── MergerFactory.java │ │ │ ├── SetMerger.java │ │ │ └── ShortArrayMerger.java │ │ │ ├── router │ │ │ ├── MockInvokersSelector.java │ │ │ ├── condition │ │ │ │ ├── ConditionRouter.java │ │ │ │ └── ConditionRouterFactory.java │ │ │ ├── file │ │ │ │ └── FileRouterFactory.java │ │ │ └── script │ │ │ │ ├── ScriptRouter.java │ │ │ │ └── ScriptRouterFactory.java │ │ │ └── support │ │ │ ├── AbstractClusterInvoker.java │ │ │ ├── AvailableCluster.java │ │ │ ├── AvailableClusterInvoker.java │ │ │ ├── BroadcastCluster.java │ │ │ ├── BroadcastClusterInvoker.java │ │ │ ├── ClusterUtils.java │ │ │ ├── FailbackCluster.java │ │ │ ├── FailbackClusterInvoker.java │ │ │ ├── FailfastCluster.java │ │ │ ├── FailfastClusterInvoker.java │ │ │ ├── FailoverCluster.java │ │ │ ├── FailoverClusterInvoker.java │ │ │ ├── FailsafeCluster.java │ │ │ ├── FailsafeClusterInvoker.java │ │ │ ├── ForkingCluster.java │ │ │ ├── ForkingClusterInvoker.java │ │ │ ├── MergeableCluster.java │ │ │ ├── MergeableClusterInvoker.java │ │ │ └── wrapper │ │ │ ├── MockClusterInvoker.java │ │ │ └── MockClusterWrapper.java │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ ├── com.alibaba.dubbo.rpc.cluster.Cluster │ │ ├── com.alibaba.dubbo.rpc.cluster.ConfiguratorFactory │ │ ├── com.alibaba.dubbo.rpc.cluster.LoadBalance │ │ ├── com.alibaba.dubbo.rpc.cluster.Merger │ │ └── com.alibaba.dubbo.rpc.cluster.RouterFactory │ └── test │ ├── java │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── rpc │ │ └── cluster │ │ ├── StickyTest.java │ │ ├── configurator │ │ ├── absent │ │ │ └── AbsentConfiguratorTest.java │ │ └── override │ │ │ └── OverrideConfiguratorTest.java │ │ ├── filter │ │ ├── DemoService.java │ │ ├── DemoServiceLocal.java │ │ ├── DemoServiceMock.java │ │ ├── DemoServiceStub.java │ │ └── MockService.java │ │ ├── loadbalance │ │ └── LoadBalanceTest.java │ │ ├── merger │ │ └── ResultMergerTest.java │ │ ├── router │ │ ├── MockInvoker.java │ │ ├── condition │ │ │ └── ConditionRouterTest.java │ │ ├── file │ │ │ └── FileRouterEngineTest.java │ │ └── script │ │ │ └── ScriptRouterTest.java │ │ └── support │ │ ├── AbstractClusterInvokerTest.java │ │ ├── ClusterUtilsTest.java │ │ ├── FailSafeClusterInvokerTest.java │ │ ├── FailbackClusterInvokerTest.java │ │ ├── FailfastClusterInvokerTest.java │ │ ├── FailoverClusterInvokerTest.java │ │ ├── ForkingClusterInvokerTest.java │ │ ├── Menu.java │ │ ├── MenuService.java │ │ ├── MergeableClusterInvokerTest.java │ │ └── wrapper │ │ ├── MockClusterInvokerTest.java │ │ └── MyMockException.java │ └── resources │ ├── com │ └── alibaba │ │ └── dubbo │ │ └── rpc │ │ └── cluster │ │ └── router │ │ └── file │ │ ├── availablerule.javascript │ │ ├── methodrule.javascript │ │ └── notAvailablerule.javascript │ └── log4j.xml ├── dubbo-common ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── common │ │ │ ├── Constants.java │ │ │ ├── Extension.java │ │ │ ├── Node.java │ │ │ ├── Parameters.java │ │ │ ├── Resetable.java │ │ │ ├── URL.java │ │ │ ├── Version.java │ │ │ ├── beanutil │ │ │ ├── JavaBeanAccessor.java │ │ │ ├── JavaBeanDescriptor.java │ │ │ └── JavaBeanSerializeUtil.java │ │ │ ├── bytecode │ │ │ ├── ClassGenerator.java │ │ │ ├── Mixin.java │ │ │ ├── NoSuchMethodException.java │ │ │ ├── NoSuchPropertyException.java │ │ │ ├── Proxy.java │ │ │ └── Wrapper.java │ │ │ ├── compiler │ │ │ ├── Compiler.java │ │ │ └── support │ │ │ │ ├── AbstractCompiler.java │ │ │ │ ├── AdaptiveCompiler.java │ │ │ │ ├── ClassUtils.java │ │ │ │ ├── JavassistCompiler.java │ │ │ │ └── JdkCompiler.java │ │ │ ├── extension │ │ │ ├── Activate.java │ │ │ ├── Adaptive.java │ │ │ ├── ExtensionFactory.java │ │ │ ├── ExtensionLoader.java │ │ │ ├── SPI.java │ │ │ ├── factory │ │ │ │ ├── AdaptiveExtensionFactory.java │ │ │ │ └── SpiExtensionFactory.java │ │ │ └── support │ │ │ │ └── ActivateComparator.java │ │ │ ├── io │ │ │ ├── Bytes.java │ │ │ ├── StreamUtils.java │ │ │ ├── UnsafeByteArrayInputStream.java │ │ │ ├── UnsafeByteArrayOutputStream.java │ │ │ ├── UnsafeStringReader.java │ │ │ └── UnsafeStringWriter.java │ │ │ ├── json │ │ │ ├── DefaultJacksonObjectMapperProvider.java │ │ │ ├── GenericJSONConverter.java │ │ │ ├── J2oVisitor.java │ │ │ ├── JSON.java │ │ │ ├── JSONArray.java │ │ │ ├── JSONConverter.java │ │ │ ├── JSONNode.java │ │ │ ├── JSONObject.java │ │ │ ├── JSONReader.java │ │ │ ├── JSONToken.java │ │ │ ├── JSONVisitor.java │ │ │ ├── JSONWriter.java │ │ │ ├── Jackson.java │ │ │ ├── JacksonObjectMapperProvider.java │ │ │ ├── ParseException.java │ │ │ └── Yylex.java │ │ │ ├── logger │ │ │ ├── Level.java │ │ │ ├── Logger.java │ │ │ ├── LoggerAdapter.java │ │ │ ├── LoggerFactory.java │ │ │ ├── jcl │ │ │ │ ├── JclLogger.java │ │ │ │ └── JclLoggerAdapter.java │ │ │ ├── jdk │ │ │ │ ├── JdkLogger.java │ │ │ │ └── JdkLoggerAdapter.java │ │ │ ├── log4j │ │ │ │ ├── Log4jLogger.java │ │ │ │ └── Log4jLoggerAdapter.java │ │ │ ├── log4j2 │ │ │ │ ├── Log4j2Logger.java │ │ │ │ └── Log4j2LoggerAdapter.java │ │ │ ├── slf4j │ │ │ │ ├── Slf4jLogger.java │ │ │ │ └── Slf4jLoggerAdapter.java │ │ │ └── support │ │ │ │ └── FailsafeLogger.java │ │ │ ├── serialize │ │ │ ├── Cleanable.java │ │ │ ├── DataInput.java │ │ │ ├── DataOutput.java │ │ │ ├── ObjectInput.java │ │ │ ├── ObjectOutput.java │ │ │ ├── OptimizedSerialization.java │ │ │ ├── Serialization.java │ │ │ └── support │ │ │ │ ├── SerializableClassRegistry.java │ │ │ │ ├── SerializationOptimizer.java │ │ │ │ ├── dubbo │ │ │ │ ├── Builder.java │ │ │ │ ├── ClassDescriptorMapper.java │ │ │ │ ├── DubboSerialization.java │ │ │ │ ├── GenericDataFlags.java │ │ │ │ ├── GenericDataInput.java │ │ │ │ ├── GenericDataOutput.java │ │ │ │ ├── GenericObjectInput.java │ │ │ │ └── GenericObjectOutput.java │ │ │ │ ├── fst │ │ │ │ ├── FstFactory.java │ │ │ │ ├── FstObjectInput.java │ │ │ │ ├── FstObjectOutput.java │ │ │ │ └── FstSerialization.java │ │ │ │ ├── hessian │ │ │ │ ├── Hessian2ObjectInput.java │ │ │ │ ├── Hessian2ObjectOutput.java │ │ │ │ ├── Hessian2Serialization.java │ │ │ │ └── Hessian2SerializerFactory.java │ │ │ │ ├── java │ │ │ │ ├── CompactedJavaSerialization.java │ │ │ │ ├── CompactedObjectInputStream.java │ │ │ │ ├── CompactedObjectOutputStream.java │ │ │ │ ├── JavaObjectInput.java │ │ │ │ ├── JavaObjectOutput.java │ │ │ │ └── JavaSerialization.java │ │ │ │ ├── json │ │ │ │ ├── FastJsonObjectInput.java │ │ │ │ ├── FastJsonObjectOutput.java │ │ │ │ ├── FastJsonSerialization.java │ │ │ │ ├── JacksonObjectInput.java │ │ │ │ ├── JacksonObjectOutput.java │ │ │ │ ├── JacksonSerialization.java │ │ │ │ ├── JsonObjectInput.java │ │ │ │ ├── JsonObjectOutput.java │ │ │ │ └── JsonSerialization.java │ │ │ │ ├── kryo │ │ │ │ ├── CompatibleKryo.java │ │ │ │ ├── KryoFactory.java │ │ │ │ ├── KryoObjectInput.java │ │ │ │ ├── KryoObjectOutput.java │ │ │ │ ├── KryoSerialization.java │ │ │ │ ├── PooledKryoFactory.java │ │ │ │ ├── PrototypeKryoFactory.java │ │ │ │ ├── ReflectionUtils.java │ │ │ │ ├── SingletonKryoFactory.java │ │ │ │ └── ThreadLocalKryoFactory.java │ │ │ │ └── nativejava │ │ │ │ ├── NativeJavaObjectInput.java │ │ │ │ ├── NativeJavaObjectOutput.java │ │ │ │ └── NativeJavaSerialization.java │ │ │ ├── status │ │ │ ├── Status.java │ │ │ ├── StatusChecker.java │ │ │ └── support │ │ │ │ ├── LoadStatusChecker.java │ │ │ │ ├── MemoryStatusChecker.java │ │ │ │ └── StatusUtils.java │ │ │ ├── store │ │ │ ├── DataStore.java │ │ │ └── support │ │ │ │ └── SimpleDataStore.java │ │ │ ├── threadpool │ │ │ ├── ThreadPool.java │ │ │ └── support │ │ │ │ ├── AbortPolicyWithReport.java │ │ │ │ ├── cached │ │ │ │ └── CachedThreadPool.java │ │ │ │ ├── fixed │ │ │ │ └── FixedThreadPool.java │ │ │ │ └── limited │ │ │ │ └── LimitedThreadPool.java │ │ │ └── utils │ │ │ ├── Assert.java │ │ │ ├── AtomicPositiveInteger.java │ │ │ ├── ClassHelper.java │ │ │ ├── CollectionUtils.java │ │ │ ├── CompatibleTypeUtils.java │ │ │ ├── ConcurrentHashSet.java │ │ │ ├── ConfigUtils.java │ │ │ ├── DubboAppender.java │ │ │ ├── ExecutorUtil.java │ │ │ ├── Holder.java │ │ │ ├── IOUtils.java │ │ │ ├── LRUCache.java │ │ │ ├── Log.java │ │ │ ├── LogHelper.java │ │ │ ├── LogUtil.java │ │ │ ├── NamedThreadFactory.java │ │ │ ├── NetUtils.java │ │ │ ├── PojoUtils.java │ │ │ ├── ReflectUtils.java │ │ │ ├── Stack.java │ │ │ ├── StringUtils.java │ │ │ └── UrlUtils.java │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ ├── com.alibaba.dubbo.common.compiler.Compiler │ │ ├── com.alibaba.dubbo.common.extension.ExtensionFactory │ │ ├── com.alibaba.dubbo.common.json.JacksonObjectMapperProvider │ │ ├── com.alibaba.dubbo.common.logger.LoggerAdapter │ │ ├── com.alibaba.dubbo.common.serialize.Serialization │ │ ├── com.alibaba.dubbo.common.status.StatusChecker │ │ ├── com.alibaba.dubbo.common.store.DataStore │ │ └── com.alibaba.dubbo.common.threadpool.ThreadPool │ └── test │ ├── java │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── common │ │ ├── URLTest.java │ │ ├── beanutil │ │ ├── Bean.java │ │ └── JavaBeanSerializeUtilTest.java │ │ ├── bytecode │ │ ├── ClassGeneratorTest.java │ │ ├── MixinTest.java │ │ ├── ProxyTest.java │ │ └── WrapperTest.java │ │ ├── compiler │ │ └── support │ │ │ └── JdkCompilerTest.java │ │ ├── extensionloader │ │ ├── ExtensionLoaderTest.java │ │ ├── ExtensionLoader_Adaptive_Test.java │ │ ├── ExtensionLoader_Adaptive_UseJdkCompiler_Test.java │ │ ├── ExtensionLoader_Compatible_Test.java │ │ ├── NoSpiExt.java │ │ ├── activate │ │ │ ├── ActivateExt1.java │ │ │ └── impl │ │ │ │ ├── ActivateExt1Impl1.java │ │ │ │ ├── GroupActivateExtImpl.java │ │ │ │ ├── OrderActivateExtImpl1.java │ │ │ │ ├── OrderActivateExtImpl2.java │ │ │ │ └── ValueActivateExtImpl.java │ │ ├── adaptive │ │ │ ├── HasAdaptiveExt.java │ │ │ └── impl │ │ │ │ ├── HasAdaptiveExtImpl1.java │ │ │ │ └── HasAdaptiveExt_ManualAdaptive.java │ │ ├── compatible │ │ │ ├── CompatibleExt.java │ │ │ └── impl │ │ │ │ ├── CompatibleExtImpl1.java │ │ │ │ └── CompatibleExtImpl2.java │ │ ├── ext1 │ │ │ ├── SimpleExt.java │ │ │ └── impl │ │ │ │ ├── SimpleExtImpl1.java │ │ │ │ ├── SimpleExtImpl2.java │ │ │ │ └── SimpleExtImpl3.java │ │ ├── ext2 │ │ │ ├── Ext2.java │ │ │ ├── UrlHolder.java │ │ │ └── impl │ │ │ │ ├── Ext2Impl1.java │ │ │ │ ├── Ext2Impl2.java │ │ │ │ └── Ext2Impl3.java │ │ ├── ext3 │ │ │ ├── UseProtocolKeyExt.java │ │ │ └── impl │ │ │ │ ├── UseProtocolKeyExtImpl1.java │ │ │ │ ├── UseProtocolKeyExtImpl2.java │ │ │ │ └── UseProtocolKeyExtImpl3.java │ │ ├── ext4 │ │ │ ├── NoUrlParamExt.java │ │ │ └── impl │ │ │ │ ├── Ext4Impl1.java │ │ │ │ └── Ext4Impl2.java │ │ ├── ext5 │ │ │ ├── NoAdaptiveMethodExt.java │ │ │ └── impl │ │ │ │ ├── Ext5Impl1.java │ │ │ │ └── Ext5Impl2.java │ │ ├── ext6_inject │ │ │ ├── Dao.java │ │ │ ├── Ext6.java │ │ │ └── impl │ │ │ │ ├── DaoImpl.java │ │ │ │ ├── Ext6Impl1.java │ │ │ │ └── Ext6Impl2.java │ │ ├── ext6_wrap │ │ │ ├── WrappedExt.java │ │ │ └── impl │ │ │ │ ├── Ext5Impl1.java │ │ │ │ ├── Ext5Impl2.java │ │ │ │ ├── Ext5Wrapper1.java │ │ │ │ └── Ext5Wrapper2.java │ │ ├── ext7 │ │ │ ├── InitErrorExt.java │ │ │ └── impl │ │ │ │ ├── Ext7Impl.java │ │ │ │ └── Ext7InitErrorImpl.java │ │ └── ext8_add │ │ │ ├── AddExt1.java │ │ │ ├── AddExt2.java │ │ │ ├── AddExt3.java │ │ │ ├── AddExt4.java │ │ │ └── impl │ │ │ ├── AddExt1Impl1.java │ │ │ ├── AddExt1_ManualAdaptive.java │ │ │ ├── AddExt1_ManualAdd1.java │ │ │ ├── AddExt1_ManualAdd2.java │ │ │ ├── AddExt2Impl1.java │ │ │ ├── AddExt2_ManualAdaptive.java │ │ │ ├── AddExt3_ManualAdaptive.java │ │ │ └── AddExt4_ManualAdaptive.java │ │ ├── io │ │ ├── BytesTest.java │ │ └── StreamUtilsTest.java │ │ ├── json │ │ ├── JSONReaderTest.java │ │ ├── JSONTest.java │ │ ├── JSONWriterTest.java │ │ ├── JacksonTest.java │ │ └── MyException.java │ │ ├── model │ │ ├── AnimalEnum.java │ │ ├── BizException.java │ │ ├── BizExceptionNoDefaultConstructor.java │ │ ├── Person.java │ │ ├── SerializablePerson.java │ │ ├── media │ │ │ ├── Image.java │ │ │ ├── Media.java │ │ │ └── MediaContent.java │ │ └── person │ │ │ ├── BigPerson.java │ │ │ ├── FullAddress.java │ │ │ ├── PersonInfo.java │ │ │ ├── PersonStatus.java │ │ │ └── Phone.java │ │ ├── serialize │ │ ├── SerializationCompareTest.java │ │ ├── dubbo │ │ │ ├── BuilderTest.java │ │ │ ├── DataInputOutputTest.java │ │ │ └── SimpleDO.java │ │ └── serialization │ │ │ ├── AbstractSerializationPersionFailTest.java │ │ │ ├── AbstractSerializationPersionOkTest.java │ │ │ ├── AbstractSerializationTest.java │ │ │ ├── CompactedJavaSerializationTest.java │ │ │ ├── DubboSerializationTest.java │ │ │ ├── FastJsonSerializationTest.java │ │ │ ├── FstSerializationTest.java │ │ │ ├── Hessian2SerializationTest.java │ │ │ ├── JavaSerializationTest.java │ │ │ ├── JsonSerializationTest.java │ │ │ ├── KyroSerializationTest.java │ │ │ └── ReflectionUtilsTest.java │ │ ├── store │ │ └── support │ │ │ └── SimpleDataStoreTest.java │ │ └── utils │ │ ├── AtomicPositiveIntegerTest.java │ │ ├── CollectionUtilsTest.java │ │ ├── CompatibleTypeUtilsTest.java │ │ ├── ConfigUtilsTest.java │ │ ├── MyEnum.java │ │ ├── NetUtilsTest.java │ │ ├── ParametersTest.java │ │ ├── PojoUtilsTest.java │ │ ├── ReflectUtilsTest.java │ │ ├── StringUtilsTest.java │ │ └── UrlUtilsTest.java │ └── resources │ ├── META-INF │ ├── dubbo │ │ └── internal │ │ │ ├── com.alibaba.dubbo.common.extensionloader.activate.ActivateExt1 │ │ │ ├── com.alibaba.dubbo.common.extensionloader.adaptive.HasAdaptiveExt │ │ │ ├── com.alibaba.dubbo.common.extensionloader.compatible.CompatibleExt │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext1.SimpleExt │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext2.Ext2 │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext3.UseProtocolKeyExt │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext4.NoUrlParamExt │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext5.NoAdaptiveMethodExt │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext6_inject.Ext6 │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext6_wrap.WrappedExt │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext7.InitErrorExt │ │ │ ├── com.alibaba.dubbo.common.extensionloader.ext8_add.AddExt1 │ │ │ └── com.alibaba.dubbo.common.status.StatusChecker │ └── services │ │ └── com.alibaba.dubbo.common.extensionloader.activate.ActivateExt1 │ ├── StreamUtilsTest.txt │ ├── com │ └── alibaba │ │ └── dubbo │ │ └── common │ │ └── serialize │ │ └── dubbo │ │ └── SimpleDO.fc │ ├── json.flex │ ├── log4j.xml │ └── properties.load ├── dubbo-config ├── dubbo-config-api │ ├── pom.xml │ └── src │ │ ├── main │ │ └── java │ │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── config │ │ │ ├── AbstractConfig.java │ │ │ ├── AbstractInterfaceConfig.java │ │ │ ├── AbstractMethodConfig.java │ │ │ ├── AbstractReferenceConfig.java │ │ │ ├── AbstractServiceConfig.java │ │ │ ├── ApplicationConfig.java │ │ │ ├── ArgumentConfig.java │ │ │ ├── ConsumerConfig.java │ │ │ ├── MethodConfig.java │ │ │ ├── ModuleConfig.java │ │ │ ├── MonitorConfig.java │ │ │ ├── ProtocolConfig.java │ │ │ ├── ProviderConfig.java │ │ │ ├── ReferenceConfig.java │ │ │ ├── RegistryConfig.java │ │ │ ├── ServiceConfig.java │ │ │ ├── annotation │ │ │ ├── Reference.java │ │ │ └── Service.java │ │ │ ├── support │ │ │ └── Parameter.java │ │ │ └── utils │ │ │ └── ReferenceConfigCache.java │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── config │ │ │ ├── GenericServiceTest.java │ │ │ ├── ReferenceConfigTest.java │ │ │ ├── RpcConfigGetSetProxy.java │ │ │ ├── api │ │ │ ├── Box.java │ │ │ ├── DemoException.java │ │ │ ├── DemoService.java │ │ │ └── User.java │ │ │ ├── cache │ │ │ ├── CacheService.java │ │ │ ├── CacheServiceImpl.java │ │ │ └── CacheTest.java │ │ │ ├── consumer │ │ │ ├── DemoActionByAnnotation.java │ │ │ ├── DemoActionBySetter.java │ │ │ └── DemoInterceptor.java │ │ │ ├── provider │ │ │ └── impl │ │ │ │ ├── DemoServiceImpl.java │ │ │ │ ├── DemoServiceImpl_LongWaiting.java │ │ │ │ ├── UnserializableBox.java │ │ │ │ └── UnserializableBoxDemoServiceImpl.java │ │ │ ├── support │ │ │ ├── MockProtocol.java │ │ │ ├── MockRegistry.java │ │ │ └── MockRegistryFactory.java │ │ │ ├── url │ │ │ └── test │ │ │ │ ├── ExporterSideConfigUrlTest.java │ │ │ │ ├── InvokerSideConfigUrlTest.java │ │ │ │ └── UrlTestBase.java │ │ │ ├── utils │ │ │ ├── MockReferenceConfig.java │ │ │ └── ReferenceConfigCacheTest.java │ │ │ └── validation │ │ │ ├── ValidationParameter.java │ │ │ ├── ValidationService.java │ │ │ ├── ValidationServiceImpl.java │ │ │ └── ValidationTest.java │ │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ ├── com.alibaba.dubbo.registry.RegistryFactory │ │ │ └── com.alibaba.dubbo.rpc.Protocol │ │ └── log4j.xml ├── dubbo-config-spring │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── config │ │ │ │ └── spring │ │ │ │ ├── AnnotationBean.java │ │ │ │ ├── ReferenceBean.java │ │ │ │ ├── ServiceBean.java │ │ │ │ ├── extension │ │ │ │ └── SpringExtensionFactory.java │ │ │ │ ├── schema │ │ │ │ ├── DubboBeanDefinitionParser.java │ │ │ │ └── DubboNamespaceHandler.java │ │ │ │ └── status │ │ │ │ ├── DataSourceStatusChecker.java │ │ │ │ └── SpringStatusChecker.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── dubbo.xsd │ │ │ ├── dubbo │ │ │ └── internal │ │ │ │ ├── com.alibaba.dubbo.common.extension.ExtensionFactory │ │ │ │ └── com.alibaba.dubbo.common.status.StatusChecker │ │ │ ├── spring.handlers │ │ │ └── spring.schemas │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── config │ │ │ └── spring │ │ │ ├── AbstractRegistryService.java │ │ │ ├── ConfigTest.java │ │ │ ├── GenericDemoService.java │ │ │ ├── SimpleRegistryExporter.java │ │ │ ├── SimpleRegistryService.java │ │ │ ├── action │ │ │ ├── DemoActionByAnnotation.java │ │ │ ├── DemoActionBySetter.java │ │ │ └── DemoInterceptor.java │ │ │ ├── annotation │ │ │ ├── consumer │ │ │ │ └── AnnotationAction.java │ │ │ └── provider │ │ │ │ └── AnnotationServiceImpl.java │ │ │ ├── api │ │ │ ├── Box.java │ │ │ ├── DemoService.java │ │ │ ├── DemoServiceSon.java │ │ │ └── HelloService.java │ │ │ ├── filter │ │ │ ├── MockDao.java │ │ │ ├── MockDaoImpl.java │ │ │ └── MockFilter.java │ │ │ ├── impl │ │ │ ├── DemoServiceImpl.java │ │ │ ├── DemoServiceImpl_LongWaiting.java │ │ │ ├── DemoServiceSonImpl.java │ │ │ ├── HelloServiceImpl.java │ │ │ ├── UnserializableBox.java │ │ │ └── UnserializableBoxDemoServiceImpl.java │ │ │ └── registry │ │ │ ├── MockRegistry.java │ │ │ └── MockRegistryFactory.java │ │ └── resources │ │ ├── META-INF │ │ └── dubbo │ │ │ └── internal │ │ │ ├── com.alibaba.dubbo.registry.RegistryFactory │ │ │ └── com.alibaba.dubbo.rpc.Filter │ │ ├── com │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── config │ │ │ └── spring │ │ │ ├── annotation-consumer.xml │ │ │ ├── annotation-provider.xml │ │ │ ├── annotation-version-consumer.xml │ │ │ ├── annotation-version-provider.xml │ │ │ ├── aop-autowire-byname.xml │ │ │ ├── aop-autowire-bytype.xml │ │ │ ├── customize-parameter.xml │ │ │ ├── delay-fixed-time.xml │ │ │ ├── delay-on-initialized.xml │ │ │ ├── demo-provider-UnserializableBox.xml │ │ │ ├── demo-provider-long-waiting.xml │ │ │ ├── demo-provider-no-methods-interface.xml │ │ │ ├── demo-provider.xml │ │ │ ├── generic-export.xml │ │ │ ├── init-reference-getUrls.xml │ │ │ ├── init-reference-retry-false.xml │ │ │ ├── init-reference.xml │ │ │ ├── multi-protocol-default.xml │ │ │ ├── multi-protocol-error.xml │ │ │ ├── multi-protocol-register.xml │ │ │ ├── multi-protocol.xml │ │ │ ├── multi-registry.xml │ │ │ ├── override-multi-protocol.xml │ │ │ ├── override-protocol.xml │ │ │ ├── provider-nested-service.xml │ │ │ ├── service-class.xml │ │ │ ├── spring-extension-inject.xml │ │ │ ├── system-properties-override-default.xml │ │ │ ├── system-properties-override.xml │ │ │ └── xml-override-properties.xml │ │ ├── dubbo.properties │ │ └── log4j.xml └── pom.xml ├── dubbo-container ├── dubbo-container-api │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── container │ │ │ ├── Container.java │ │ │ ├── Main.java │ │ │ └── page │ │ │ ├── Menu.java │ │ │ ├── MenuComparator.java │ │ │ ├── Page.java │ │ │ ├── PageHandler.java │ │ │ ├── PageServlet.java │ │ │ ├── ResourceFilter.java │ │ │ └── pages │ │ │ ├── HomePageHandler.java │ │ │ ├── LogPageHandler.java │ │ │ ├── StatusPageHandler.java │ │ │ └── SystemPageHandler.java │ │ └── resources │ │ └── META-INF │ │ ├── assembly │ │ └── bin │ │ │ ├── dump.sh │ │ │ ├── restart.sh │ │ │ ├── server.sh │ │ │ ├── start.bat │ │ │ ├── start.sh │ │ │ └── stop.sh │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.container.page.PageHandler ├── dubbo-container-javaconfig │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── container │ │ │ │ └── javaconfig │ │ │ │ └── JavaConfigContainer.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.container.Container │ │ └── test │ │ ├── java │ │ ├── com │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── container │ │ │ │ └── javaconfig │ │ │ │ └── JavaConfigContainerTest.java │ │ └── dubbo │ │ │ └── spring │ │ │ └── javaconfig │ │ │ └── TestDubboConfig.java │ │ └── resources │ │ └── log4j.xml ├── dubbo-container-jetty │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── container │ │ │ │ └── jetty │ │ │ │ └── JettyContainer.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.container.Container │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── container │ │ └── jetty │ │ └── JettyContainerTest.java ├── dubbo-container-log4j │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── container │ │ │ │ └── log4j │ │ │ │ └── Log4jContainer.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.container.Container │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── container │ │ └── log4j │ │ └── Log4jContainerTest.java ├── dubbo-container-logback │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── container │ │ │ │ └── logback │ │ │ │ └── LogbackContainer.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.container.Container │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── container │ │ └── logback │ │ └── LogbackContainerTest.java ├── dubbo-container-spring │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── container │ │ │ │ └── spring │ │ │ │ └── SpringContainer.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.container.Container │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── container │ │ │ └── spring │ │ │ └── SpringContainerTest.java │ │ └── resources │ │ ├── META-INF │ │ └── spring │ │ │ └── test.xml │ │ └── log4j.xml └── pom.xml ├── dubbo-demo ├── dubbo-demo-api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── demo │ │ ├── SerializationOptimizerImpl.java │ │ ├── bid │ │ ├── BidRequest.java │ │ ├── BidResponse.java │ │ ├── BidService.java │ │ ├── Device.java │ │ ├── Geo.java │ │ ├── Impression.java │ │ └── SeatBid.java │ │ ├── extension │ │ ├── ClientTraceFilter.java │ │ ├── CustomExceptionMapper.java │ │ ├── DynamicTraceBinding.java │ │ ├── DynamicTraceInterceptor.java │ │ ├── TraceFilter.java │ │ └── TraceInterceptor.java │ │ ├── hello │ │ └── HelloService.java │ │ └── user │ │ ├── User.java │ │ ├── UserService.java │ │ └── facade │ │ ├── AnotherUserRestService.java │ │ ├── RegistrationResult.java │ │ └── UserRestService.java ├── dubbo-demo-consumer │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── assembly │ │ │ ├── assembly.xml │ │ │ └── conf │ │ │ │ ├── dubbo.properties │ │ │ │ └── log4j2.xml │ │ ├── java │ │ │ ├── com │ │ │ │ └── alibaba │ │ │ │ │ └── dubbo │ │ │ │ │ └── demo │ │ │ │ │ └── consumer │ │ │ │ │ ├── DemoAction.java │ │ │ │ │ └── DemoJavaConfigAction.java │ │ │ └── dubbo │ │ │ │ └── spring │ │ │ │ └── javaconfig │ │ │ │ ├── DubboDemoActionConfig.java │ │ │ │ └── DubboDemoConsumerConfig.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring │ │ │ ├── dubbo-demo-action.xml │ │ │ └── dubbo-demo-consumer.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── demo │ │ │ └── consumer │ │ │ ├── DemoConsumer.java │ │ │ ├── DemoJavaConfigConsumer.java │ │ │ └── RestClient.java │ │ └── resources │ │ └── log4j2.xml ├── dubbo-demo-provider │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── demo │ │ │ │ ├── bid │ │ │ │ └── BidServiceImpl.java │ │ │ │ ├── hello │ │ │ │ └── HelloServiceImpl.java │ │ │ │ └── user │ │ │ │ ├── UserServiceImpl.java │ │ │ │ └── facade │ │ │ │ ├── AnnotationDrivenUserRestServiceImpl.java │ │ │ │ ├── AnotherUserRestServiceImpl.java │ │ │ │ └── UserRestServiceImpl.java │ │ ├── resources │ │ │ ├── META-INF │ │ │ │ └── spring │ │ │ │ │ └── service-provider.xml │ │ │ ├── dubbo.properties │ │ │ └── log4j2.xml │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── web.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── demo │ │ └── provider │ │ └── DemoProvider.java └── pom.xml ├── dubbo-filter ├── dubbo-filter-cache │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── cache │ │ │ ├── Cache.java │ │ │ ├── CacheFactory.java │ │ │ ├── filter │ │ │ └── CacheFilter.java │ │ │ └── support │ │ │ ├── AbstractCacheFactory.java │ │ │ ├── jcache │ │ │ ├── JCache.java │ │ │ └── JCacheFactory.java │ │ │ ├── lru │ │ │ ├── LruCache.java │ │ │ └── LruCacheFactory.java │ │ │ └── threadlocal │ │ │ ├── ThreadLocalCache.java │ │ │ └── ThreadLocalCacheFactory.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ ├── com.alibaba.dubbo.cache.CacheFactory │ │ └── com.alibaba.dubbo.rpc.Filter ├── dubbo-filter-validation │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── validation │ │ │ ├── Validation.java │ │ │ ├── Validator.java │ │ │ ├── filter │ │ │ └── ValidationFilter.java │ │ │ └── support │ │ │ ├── AbstractValidation.java │ │ │ └── jvalidation │ │ │ ├── JValidation.java │ │ │ └── JValidator.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ ├── com.alibaba.dubbo.rpc.Filter │ │ └── com.alibaba.dubbo.validation.Validation └── pom.xml ├── dubbo-maven └── pom.xml ├── dubbo-monitor ├── dubbo-monitor-api │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── monitor │ │ │ │ ├── Monitor.java │ │ │ │ ├── MonitorFactory.java │ │ │ │ ├── MonitorService.java │ │ │ │ └── support │ │ │ │ ├── AbstractMonitorFactory.java │ │ │ │ └── MonitorFilter.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.rpc.Filter │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── monitor │ │ └── support │ │ ├── AbstractMonitorFactoryTest.java │ │ └── MonitorFilterTest.java ├── dubbo-monitor-default │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── monitor │ │ │ │ └── dubbo │ │ │ │ ├── DubboMonitor.java │ │ │ │ ├── DubboMonitorFactroy.java │ │ │ │ └── Statistics.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.monitor.MonitorFactory │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── monitor │ │ └── dubbo │ │ ├── DubboMonitorTest.java │ │ └── MockMonitorService.java └── pom.xml ├── dubbo-registry ├── dubbo-registry-api │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── registry │ │ │ │ ├── NotifyListener.java │ │ │ │ ├── Registry.java │ │ │ │ ├── RegistryFactory.java │ │ │ │ ├── RegistryService.java │ │ │ │ ├── integration │ │ │ │ ├── RegistryDirectory.java │ │ │ │ └── RegistryProtocol.java │ │ │ │ ├── pages │ │ │ │ ├── RegisteredPageHandler.java │ │ │ │ ├── RegistriesPageHandler.java │ │ │ │ └── SubscribedPageHandler.java │ │ │ │ ├── status │ │ │ │ └── RegistryStatusChecker.java │ │ │ │ └── support │ │ │ │ ├── AbstractRegistry.java │ │ │ │ ├── AbstractRegistryFactory.java │ │ │ │ ├── FailbackRegistry.java │ │ │ │ └── SkipFailbackWrapperException.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ ├── com.alibaba.dubbo.common.status.StatusChecker │ │ │ ├── com.alibaba.dubbo.container.page.PageHandler │ │ │ └── com.alibaba.dubbo.rpc.Protocol │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── registry │ │ │ ├── PerformanceRegistryTest.java │ │ │ ├── PerformanceUtils.java │ │ │ ├── RegistryTestSupport.java │ │ │ └── support │ │ │ ├── AbstractRegistryFactoryTest.java │ │ │ └── FailbackRegistryTest.java │ │ └── resources │ │ └── log4j.xml ├── dubbo-registry-default │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── registry │ │ │ │ └── dubbo │ │ │ │ ├── DubboRegistry.java │ │ │ │ └── DubboRegistryFactory.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.registry.RegistryFactory │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── registry │ │ │ └── dubbo │ │ │ ├── AbstractRegistryService.java │ │ │ ├── DemoService.java │ │ │ ├── MockChannel.java │ │ │ ├── MockedClient.java │ │ │ ├── RegistryDirectoryTest.java │ │ │ ├── RegistryProtocolTest.java │ │ │ ├── RegistryStatusCheckerTest.java │ │ │ ├── SimpleRegistryExporter.java │ │ │ └── SimpleRegistryService.java │ │ └── resources │ │ └── log4j.xml ├── dubbo-registry-multicast │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── registry │ │ │ │ └── multicast │ │ │ │ ├── MulticastRegistry.java │ │ │ │ └── MulticastRegistryFactory.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.registry.RegistryFactory │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── registry │ │ └── multicast │ │ └── MulticastRegistryTest.java ├── dubbo-registry-redis │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── registry │ │ │ │ └── redis │ │ │ │ ├── RedisRegistry.java │ │ │ │ └── RedisRegistryFactory.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.registry.RegistryFactory │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── registry │ │ └── redis │ │ └── RedisRegistryTest.java ├── dubbo-registry-zookeeper │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── registry │ │ │ │ └── zookeeper │ │ │ │ ├── ZookeeperRegistry.java │ │ │ │ └── ZookeeperRegistryFactory.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.registry.RegistryFactory │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── registry │ │ └── zookeeper │ │ └── ZookeeperRegistryTest.java └── pom.xml ├── dubbo-remoting ├── dubbo-remoting-api │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── remoting │ │ │ │ ├── Channel.java │ │ │ │ ├── ChannelHandler.java │ │ │ │ ├── Client.java │ │ │ │ ├── Codec.java │ │ │ │ ├── Codec2.java │ │ │ │ ├── Decodeable.java │ │ │ │ ├── Dispatcher.java │ │ │ │ ├── Endpoint.java │ │ │ │ ├── ExecutionException.java │ │ │ │ ├── RemotingException.java │ │ │ │ ├── Server.java │ │ │ │ ├── TimeoutException.java │ │ │ │ ├── Transporter.java │ │ │ │ ├── Transporters.java │ │ │ │ ├── buffer │ │ │ │ ├── AbstractChannelBuffer.java │ │ │ │ ├── ByteBufferBackedChannelBuffer.java │ │ │ │ ├── ChannelBuffer.java │ │ │ │ ├── ChannelBufferFactory.java │ │ │ │ ├── ChannelBufferInputStream.java │ │ │ │ ├── ChannelBufferOutputStream.java │ │ │ │ ├── ChannelBuffers.java │ │ │ │ ├── DirectChannelBufferFactory.java │ │ │ │ ├── DynamicChannelBuffer.java │ │ │ │ ├── HeapChannelBuffer.java │ │ │ │ └── HeapChannelBufferFactory.java │ │ │ │ ├── exchange │ │ │ │ ├── ExchangeChannel.java │ │ │ │ ├── ExchangeClient.java │ │ │ │ ├── ExchangeHandler.java │ │ │ │ ├── ExchangeServer.java │ │ │ │ ├── Exchanger.java │ │ │ │ ├── Exchangers.java │ │ │ │ ├── Request.java │ │ │ │ ├── Response.java │ │ │ │ ├── ResponseCallback.java │ │ │ │ ├── ResponseFuture.java │ │ │ │ ├── codec │ │ │ │ │ └── ExchangeCodec.java │ │ │ │ └── support │ │ │ │ │ ├── DefaultFuture.java │ │ │ │ │ ├── ExchangeHandlerAdapter.java │ │ │ │ │ ├── ExchangeHandlerDispatcher.java │ │ │ │ │ ├── ExchangeServerDelegate.java │ │ │ │ │ ├── MultiMessage.java │ │ │ │ │ ├── Replier.java │ │ │ │ │ ├── ReplierDispatcher.java │ │ │ │ │ ├── SimpleFuture.java │ │ │ │ │ └── header │ │ │ │ │ ├── HeaderExchangeChannel.java │ │ │ │ │ ├── HeaderExchangeClient.java │ │ │ │ │ ├── HeaderExchangeHandler.java │ │ │ │ │ ├── HeaderExchangeServer.java │ │ │ │ │ ├── HeaderExchanger.java │ │ │ │ │ ├── HeartBeatTask.java │ │ │ │ │ └── HeartbeatHandler.java │ │ │ │ ├── telnet │ │ │ │ ├── TelnetHandler.java │ │ │ │ ├── codec │ │ │ │ │ └── TelnetCodec.java │ │ │ │ └── support │ │ │ │ │ ├── Help.java │ │ │ │ │ ├── TelnetHandlerAdapter.java │ │ │ │ │ ├── TelnetUtils.java │ │ │ │ │ └── command │ │ │ │ │ ├── ClearTelnetHandler.java │ │ │ │ │ ├── ExitTelnetHandler.java │ │ │ │ │ ├── HelpTelnetHandler.java │ │ │ │ │ ├── LogTelnetHandler.java │ │ │ │ │ └── StatusTelnetHandler.java │ │ │ │ └── transport │ │ │ │ ├── AbstractChannel.java │ │ │ │ ├── AbstractChannelHandlerDelegate.java │ │ │ │ ├── AbstractClient.java │ │ │ │ ├── AbstractCodec.java │ │ │ │ ├── AbstractEndpoint.java │ │ │ │ ├── AbstractPeer.java │ │ │ │ ├── AbstractServer.java │ │ │ │ ├── ChannelDelegate.java │ │ │ │ ├── ChannelHandlerAdapter.java │ │ │ │ ├── ChannelHandlerDelegate.java │ │ │ │ ├── ChannelHandlerDispatcher.java │ │ │ │ ├── ClientDelegate.java │ │ │ │ ├── CodecSupport.java │ │ │ │ ├── DecodeHandler.java │ │ │ │ ├── MultiMessageHandler.java │ │ │ │ ├── ServerDelegate.java │ │ │ │ ├── codec │ │ │ │ ├── CodecAdapter.java │ │ │ │ └── TransportCodec.java │ │ │ │ └── dispatcher │ │ │ │ ├── ChannelEventRunnable.java │ │ │ │ ├── ChannelHandlers.java │ │ │ │ ├── WrappedChannelHandler.java │ │ │ │ ├── all │ │ │ │ ├── AllChannelHandler.java │ │ │ │ └── AllDispatcher.java │ │ │ │ ├── connection │ │ │ │ ├── ConnectionOrderedChannelHandler.java │ │ │ │ └── ConnectionOrderedDispatcher.java │ │ │ │ ├── direct │ │ │ │ └── DirectDispatcher.java │ │ │ │ ├── execution │ │ │ │ ├── ExecutionChannelHandler.java │ │ │ │ └── ExecutionDispatcher.java │ │ │ │ └── message │ │ │ │ ├── MessageOnlyChannelHandler.java │ │ │ │ └── MessageOnlyDispatcher.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ ├── com.alibaba.dubbo.remoting.Codec2 │ │ │ ├── com.alibaba.dubbo.remoting.Dispatcher │ │ │ ├── com.alibaba.dubbo.remoting.exchange.Exchanger │ │ │ └── com.alibaba.dubbo.remoting.telnet.TelnetHandler │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── remoting │ │ │ ├── ChanelHandlerTest.java │ │ │ ├── DemoService.java │ │ │ ├── DemoServiceImpl.java │ │ │ ├── Main.java │ │ │ ├── MockResult.java │ │ │ ├── PerformanceClientCloseTest.java │ │ │ ├── PerformanceClientFixedTest.java │ │ │ ├── PerformanceClientMain.java │ │ │ ├── PerformanceClientTest.java │ │ │ ├── PerformanceServerMain.java │ │ │ ├── PerformanceServerTest.java │ │ │ ├── PerformanceUtils.java │ │ │ ├── RpcMessage.java │ │ │ ├── RpcMessageHandler.java │ │ │ ├── TelnetServer.java │ │ │ ├── buffer │ │ │ ├── AbstractChannelBufferTest.java │ │ │ ├── ByteBufferBackedChannelBufferTest.java │ │ │ ├── ChannelBufferStreamTest.java │ │ │ ├── DirectChannelBufferTest.java │ │ │ ├── DynamicChannelBufferTest.java │ │ │ └── HeapChannelBufferTest.java │ │ │ ├── codec │ │ │ ├── AbstractMockChannel.java │ │ │ ├── ExchangeCodecTest.java │ │ │ └── TelnetCodecTest.java │ │ │ ├── exchange │ │ │ └── support │ │ │ │ └── header │ │ │ │ ├── HeartBeatTaskTest.java │ │ │ │ └── MockChannel.java │ │ │ ├── handler │ │ │ ├── ConnectChannelHandlerTest.java │ │ │ ├── HeaderExchangeHandlerTest.java │ │ │ ├── MockedChannel.java │ │ │ ├── MockedChannelHandler.java │ │ │ └── WrappedChannelHandlerTest.java │ │ │ └── transport │ │ │ ├── AbstractCodecTest.java │ │ │ └── codec │ │ │ ├── CodecAdapterTest.java │ │ │ ├── DeprecatedExchangeCodec.java │ │ │ └── DeprecatedTelnetCodec.java │ │ └── resources │ │ └── log4j.xml ├── dubbo-remoting-grizzly │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── remoting │ │ │ └── transport │ │ │ └── grizzly │ │ │ ├── GrizzlyChannel.java │ │ │ ├── GrizzlyClient.java │ │ │ ├── GrizzlyCodecAdapter.java │ │ │ ├── GrizzlyHandler.java │ │ │ ├── GrizzlyServer.java │ │ │ └── GrizzlyTransporter.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.remoting.Transporter ├── dubbo-remoting-http │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── remoting │ │ │ └── http │ │ │ ├── HttpBinder.java │ │ │ ├── HttpHandler.java │ │ │ ├── HttpServer.java │ │ │ ├── jetty │ │ │ ├── JettyHttpBinder.java │ │ │ └── JettyHttpServer.java │ │ │ ├── servlet │ │ │ ├── BootstrapListener.java │ │ │ ├── DispatcherServlet.java │ │ │ ├── ServletHttpBinder.java │ │ │ ├── ServletHttpServer.java │ │ │ └── ServletManager.java │ │ │ ├── support │ │ │ └── AbstractHttpServer.java │ │ │ └── tomcat │ │ │ ├── TomcatHttpBinder.java │ │ │ └── TomcatHttpServer.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.remoting.http.HttpBinder ├── dubbo-remoting-mina │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── remoting │ │ │ │ └── transport │ │ │ │ └── mina │ │ │ │ ├── MinaChannel.java │ │ │ │ ├── MinaClient.java │ │ │ │ ├── MinaCodecAdapter.java │ │ │ │ ├── MinaHandler.java │ │ │ │ ├── MinaServer.java │ │ │ │ └── MinaTransporter.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.remoting.Transporter │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── remoting │ │ └── transport │ │ └── mina │ │ ├── ClientToServerTest.java │ │ ├── ClientsTest.java │ │ ├── Hello.java │ │ ├── MinaClientToServerTest.java │ │ ├── World.java │ │ └── WorldHandler.java ├── dubbo-remoting-netty │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── remoting │ │ │ │ └── transport │ │ │ │ └── netty │ │ │ │ ├── NettyBackedChannelBuffer.java │ │ │ │ ├── NettyBackedChannelBufferFactory.java │ │ │ │ ├── NettyChannel.java │ │ │ │ ├── NettyClient.java │ │ │ │ ├── NettyCodecAdapter.java │ │ │ │ ├── NettyHandler.java │ │ │ │ ├── NettyHelper.java │ │ │ │ ├── NettyServer.java │ │ │ │ └── NettyTransporter.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.remoting.Transporter │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── remoting │ │ │ ├── exchange │ │ │ └── support │ │ │ │ └── header │ │ │ │ └── HeartbeatHandlerTest.java │ │ │ └── transport │ │ │ ├── dispatcher │ │ │ └── FakeChannelHandlers.java │ │ │ └── netty │ │ │ ├── ClientReconnectTest.java │ │ │ ├── ClientToServerTest.java │ │ │ ├── ClientsTest.java │ │ │ ├── Hello.java │ │ │ ├── NettyClientTest.java │ │ │ ├── NettyClientToServerTest.java │ │ │ ├── NettyStringTest.java │ │ │ ├── TelnetClientHandler.java │ │ │ ├── TelnetServerHandler.java │ │ │ ├── ThreadNameTest.java │ │ │ ├── World.java │ │ │ └── WorldHandler.java │ │ └── resources │ │ └── log4j.xml ├── dubbo-remoting-p2p │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── remoting │ │ │ │ └── p2p │ │ │ │ ├── Group.java │ │ │ │ ├── Networker.java │ │ │ │ ├── Networkers.java │ │ │ │ ├── Peer.java │ │ │ │ ├── exchange │ │ │ │ ├── ExchangeGroup.java │ │ │ │ ├── ExchangeNetworker.java │ │ │ │ ├── ExchangeNetworkers.java │ │ │ │ ├── ExchangePeer.java │ │ │ │ └── support │ │ │ │ │ ├── AbstractExchangeGroup.java │ │ │ │ │ ├── ExchangeServerPeer.java │ │ │ │ │ ├── FileExchangeGroup.java │ │ │ │ │ ├── FileExchangeNetworker.java │ │ │ │ │ ├── MulticastExchangeGroup.java │ │ │ │ │ └── MulticastExchangeNetworker.java │ │ │ │ └── support │ │ │ │ ├── AbstractGroup.java │ │ │ │ ├── FileGroup.java │ │ │ │ ├── FileNetworker.java │ │ │ │ ├── MulticastGroup.java │ │ │ │ ├── MulticastNetworker.java │ │ │ │ └── ServerPeer.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.remoting.p2p.Networker │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── remoting │ │ └── p2p │ │ └── PeerMain.java ├── dubbo-remoting-zookeeper │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── remoting │ │ │ └── zookeeper │ │ │ ├── ChildListener.java │ │ │ ├── StateListener.java │ │ │ ├── ZookeeperClient.java │ │ │ ├── ZookeeperTransporter.java │ │ │ ├── curator │ │ │ ├── CuratorZookeeperClient.java │ │ │ └── CuratorZookeeperTransporter.java │ │ │ ├── support │ │ │ └── AbstractZookeeperClient.java │ │ │ └── zkclient │ │ │ ├── ZkclientZookeeperClient.java │ │ │ └── ZkclientZookeeperTransporter.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.remoting.zookeeper.ZookeeperTransporter └── pom.xml ├── dubbo-rpc ├── dubbo-rpc-api │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── rpc │ │ │ │ ├── Exporter.java │ │ │ │ ├── ExporterListener.java │ │ │ │ ├── Filter.java │ │ │ │ ├── Invocation.java │ │ │ │ ├── Invoker.java │ │ │ │ ├── InvokerListener.java │ │ │ │ ├── Protocol.java │ │ │ │ ├── ProxyFactory.java │ │ │ │ ├── Result.java │ │ │ │ ├── RpcConstants.java │ │ │ │ ├── RpcContext.java │ │ │ │ ├── RpcException.java │ │ │ │ ├── RpcInvocation.java │ │ │ │ ├── RpcResult.java │ │ │ │ ├── RpcStatus.java │ │ │ │ ├── ServiceClassHolder.java │ │ │ │ ├── StaticContext.java │ │ │ │ ├── filter │ │ │ │ ├── AccessLogFilter.java │ │ │ │ ├── ActiveLimitFilter.java │ │ │ │ ├── ClassLoaderFilter.java │ │ │ │ ├── CompatibleFilter.java │ │ │ │ ├── ConsumerContextFilter.java │ │ │ │ ├── ContextFilter.java │ │ │ │ ├── DeprecatedFilter.java │ │ │ │ ├── EchoFilter.java │ │ │ │ ├── ExceptionFilter.java │ │ │ │ ├── ExecuteLimitFilter.java │ │ │ │ ├── GenericFilter.java │ │ │ │ ├── GenericImplFilter.java │ │ │ │ ├── TimeoutFilter.java │ │ │ │ ├── TokenFilter.java │ │ │ │ ├── TpsLimitFilter.java │ │ │ │ └── tps │ │ │ │ │ ├── DefaultTPSLimiter.java │ │ │ │ │ ├── StatItem.java │ │ │ │ │ └── TPSLimiter.java │ │ │ │ ├── listener │ │ │ │ ├── DeprecatedInvokerListener.java │ │ │ │ ├── ExporterListenerAdapter.java │ │ │ │ ├── InvokerListenerAdapter.java │ │ │ │ ├── ListenerExporterWrapper.java │ │ │ │ └── ListenerInvokerWrapper.java │ │ │ │ ├── protocol │ │ │ │ ├── AbstractExporter.java │ │ │ │ ├── AbstractInvoker.java │ │ │ │ ├── AbstractProtocol.java │ │ │ │ ├── AbstractProxyProtocol.java │ │ │ │ ├── InvokerWrapper.java │ │ │ │ ├── ProtocolFilterWrapper.java │ │ │ │ └── ProtocolListenerWrapper.java │ │ │ │ ├── proxy │ │ │ │ ├── AbstractProxyFactory.java │ │ │ │ ├── AbstractProxyInvoker.java │ │ │ │ ├── InvokerInvocationHandler.java │ │ │ │ ├── javassist │ │ │ │ │ └── JavassistProxyFactory.java │ │ │ │ ├── jdk │ │ │ │ │ └── JdkProxyFactory.java │ │ │ │ └── wrapper │ │ │ │ │ └── StubProxyFactoryWrapper.java │ │ │ │ ├── service │ │ │ │ ├── EchoService.java │ │ │ │ ├── GenericException.java │ │ │ │ └── GenericService.java │ │ │ │ ├── support │ │ │ │ ├── DelegateExporter.java │ │ │ │ ├── DelegateInvoker.java │ │ │ │ ├── MockInvoker.java │ │ │ │ ├── MockProtocol.java │ │ │ │ ├── ProtocolUtils.java │ │ │ │ └── RpcUtils.java │ │ │ │ └── utils │ │ │ │ └── ErrorCodeUtils.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ ├── com.alibaba.dubbo.rpc.Filter │ │ │ ├── com.alibaba.dubbo.rpc.InvokerListener │ │ │ ├── com.alibaba.dubbo.rpc.Protocol │ │ │ └── com.alibaba.dubbo.rpc.ProxyFactory │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ ├── CustomArgument.java │ │ │ ├── DemoRequest.java │ │ │ ├── ProtocolUtils.java │ │ │ ├── filter │ │ │ ├── AccessLogFilterTest.java │ │ │ ├── ActiveLimitFilterTest.java │ │ │ ├── CompatibleFilterFilterTest.java │ │ │ ├── ConsumerContextFilterTest.java │ │ │ ├── ContextFilterTest.java │ │ │ ├── DeprecatedFilterTest.java │ │ │ ├── EchoFilterTest.java │ │ │ ├── ExceptionFilterTest.java │ │ │ ├── TpsLimitFilterTest.java │ │ │ └── tps │ │ │ │ └── StatItemTest.java │ │ │ ├── proxy │ │ │ ├── DemoRequest.java │ │ │ ├── DemoService.java │ │ │ ├── DemoServiceImpl.java │ │ │ ├── RemoteService.java │ │ │ ├── RemoteServiceImpl.java │ │ │ └── Type.java │ │ │ └── support │ │ │ ├── DemoService.java │ │ │ ├── DemoServiceImpl.java │ │ │ ├── IEcho.java │ │ │ ├── MockInvocation.java │ │ │ ├── MyInvoker.java │ │ │ ├── Person.java │ │ │ ├── RpcUtilsTest.java │ │ │ └── Type.java │ │ └── resources │ │ └── log4j.xml ├── dubbo-rpc-avro │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── protocol │ │ │ └── avro │ │ │ └── AvroProtocol.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.rpc.Protocol ├── dubbo-rpc-default │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── rpc │ │ │ │ └── protocol │ │ │ │ └── dubbo │ │ │ │ ├── CallbackServiceCodec.java │ │ │ │ ├── ChannelWrappedInvoker.java │ │ │ │ ├── DecodeableRpcInvocation.java │ │ │ │ ├── DecodeableRpcResult.java │ │ │ │ ├── DubboCodec.java │ │ │ │ ├── DubboCountCodec.java │ │ │ │ ├── DubboExporter.java │ │ │ │ ├── DubboInvoker.java │ │ │ │ ├── DubboProtocol.java │ │ │ │ ├── FutureAdapter.java │ │ │ │ ├── LazyConnectExchangeClient.java │ │ │ │ ├── ReferenceCountExchangeClient.java │ │ │ │ ├── filter │ │ │ │ ├── FutureFilter.java │ │ │ │ └── TraceFilter.java │ │ │ │ ├── page │ │ │ │ ├── ClientsPageHandler.java │ │ │ │ └── ServersPageHandler.java │ │ │ │ ├── status │ │ │ │ ├── ServerStatusChecker.java │ │ │ │ └── ThreadPoolStatusChecker.java │ │ │ │ └── telnet │ │ │ │ ├── ChangeTelnetHandler.java │ │ │ │ ├── CountTelnetHandler.java │ │ │ │ ├── CurrentTelnetHandler.java │ │ │ │ ├── InvokeTelnetHandler.java │ │ │ │ ├── ListTelnetHandler.java │ │ │ │ ├── LogTelnetHandler.java │ │ │ │ ├── PortTelnetHandler.java │ │ │ │ └── TraceTelnetHandler.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ ├── com.alibaba.dubbo.common.status.StatusChecker │ │ │ ├── com.alibaba.dubbo.container.page.PageHandler │ │ │ ├── com.alibaba.dubbo.remoting.Codec2 │ │ │ ├── com.alibaba.dubbo.remoting.telnet.TelnetHandler │ │ │ ├── com.alibaba.dubbo.rpc.Filter │ │ │ └── com.alibaba.dubbo.rpc.Protocol │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── protocol │ │ │ └── dubbo │ │ │ ├── DubboInvokerAvilableTest.java │ │ │ ├── DubboLazyConnectTest.java │ │ │ ├── DubboProtocolTest.java │ │ │ ├── ExplicitCallbackTest.java │ │ │ ├── FutureFilterTest.java │ │ │ ├── ImplicitCallBackTest.java │ │ │ ├── MultiThreadTest.java │ │ │ ├── ReferenceCountExchangeClientTest.java │ │ │ ├── RpcFilterTest.java │ │ │ ├── support │ │ │ ├── CustomArgument.java │ │ │ ├── DemoRequest.java │ │ │ ├── DemoService.java │ │ │ ├── DemoServiceImpl.java │ │ │ ├── EnumBak.java │ │ │ ├── NonSerialized.java │ │ │ ├── Person.java │ │ │ ├── ProtocolUtils.java │ │ │ ├── RemoteService.java │ │ │ ├── RemoteServiceImpl.java │ │ │ └── Type.java │ │ │ └── telnet │ │ │ ├── ChangeTelnetHandlerTest.java │ │ │ ├── CurrentTelnetHandlerTest.java │ │ │ ├── InvokerTelnetHandlerTest.java │ │ │ ├── ListTelnetHandlerTest.java │ │ │ ├── LogTelnetHandlerTest.java │ │ │ └── PortTelnetHandlerTest.java │ │ └── resources │ │ └── log4j.xml ├── dubbo-rpc-hessian │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── rpc │ │ │ │ └── protocol │ │ │ │ └── hessian │ │ │ │ ├── HessianProtocol.java │ │ │ │ ├── HttpClientConnection.java │ │ │ │ └── HttpClientConnectionFactory.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.rpc.Protocol │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── rpc │ │ └── protocol │ │ └── hessian │ │ ├── HessianProtocolTest.java │ │ ├── HessianService.java │ │ └── HessianServiceImpl.java ├── dubbo-rpc-http │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── protocol │ │ │ └── http │ │ │ └── HttpProtocol.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.rpc.Protocol ├── dubbo-rpc-injvm │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── rpc │ │ │ │ └── protocol │ │ │ │ └── injvm │ │ │ │ ├── InjvmExporter.java │ │ │ │ ├── InjvmInvoker.java │ │ │ │ └── InjvmProtocol.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.rpc.Protocol │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── rpc │ │ └── protocol │ │ └── injvm │ │ ├── DemoRequest.java │ │ ├── DemoService.java │ │ ├── DemoServiceImpl.java │ │ ├── IEcho.java │ │ ├── InjvmProtocolTest.java │ │ ├── ProtocolTest.java │ │ └── Type.java ├── dubbo-rpc-memcached │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── protocol │ │ │ └── memcached │ │ │ └── MemcachedProtocol.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.rpc.Protocol ├── dubbo-rpc-redis │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── protocol │ │ │ └── redis │ │ │ └── RedisProtocol.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.rpc.Protocol ├── dubbo-rpc-rest │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── protocol │ │ │ └── rest │ │ │ ├── BaseRestServer.java │ │ │ ├── DubboHttpServer.java │ │ │ ├── DubboResourceFactory.java │ │ │ ├── NettyServer.java │ │ │ ├── RestConstraintViolation.java │ │ │ ├── RestProtocol.java │ │ │ ├── RestServer.java │ │ │ ├── RestServerFactory.java │ │ │ ├── RpcContextFilter.java │ │ │ ├── RpcExceptionMapper.java │ │ │ ├── SunHttpServer.java │ │ │ ├── TjwsServer.java │ │ │ ├── UndertowServer.java │ │ │ ├── ViolationReport.java │ │ │ └── support │ │ │ ├── ContentType.java │ │ │ └── LoggingFilter.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.rpc.Protocol ├── dubbo-rpc-rmi │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── rpc │ │ │ │ └── protocol │ │ │ │ └── rmi │ │ │ │ └── RmiProtocol.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ └── com.alibaba.dubbo.rpc.Protocol │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── rpc │ │ └── protocol │ │ └── rmi │ │ ├── DemoService.java │ │ ├── DemoServiceImpl.java │ │ ├── RemoteService.java │ │ ├── RemoteServiceImpl.java │ │ ├── RmiProtocolTest.java │ │ └── Type.java ├── dubbo-rpc-thrift │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── rpc │ │ │ │ └── protocol │ │ │ │ └── thrift │ │ │ │ ├── ClassNameGenerator.java │ │ │ │ ├── DubboClassNameGenerator.java │ │ │ │ ├── ThriftClassNameGenerator.java │ │ │ │ ├── ThriftCodec.java │ │ │ │ ├── ThriftConstants.java │ │ │ │ ├── ThriftInvoker.java │ │ │ │ ├── ThriftNativeCodec.java │ │ │ │ ├── ThriftProtocol.java │ │ │ │ ├── ThriftType.java │ │ │ │ ├── ThriftUtils.java │ │ │ │ ├── ext │ │ │ │ └── MultiServiceProcessor.java │ │ │ │ └── io │ │ │ │ ├── InputStreamWrapper.java │ │ │ │ └── RandomAccessByteArrayOutputStream.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── dubbo │ │ │ └── internal │ │ │ ├── com.alibaba.dubbo.remoting.Codec2 │ │ │ ├── com.alibaba.dubbo.rpc.Protocol │ │ │ └── com.alibaba.dubbo.rpc.protocol.thrift.ClassNameGenerator │ │ └── test │ │ ├── java │ │ ├── $__ClassNameTestDubboStub.java │ │ ├── ClassNameTest.java │ │ ├── ClassNameTestDubbo.java │ │ ├── ClassNameTestThrift.java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ ├── gen │ │ │ ├── dubbo │ │ │ │ ├── $__DemoStub.java │ │ │ │ └── Demo.java │ │ │ └── thrift │ │ │ │ └── Demo.java │ │ │ └── protocol │ │ │ └── thrift │ │ │ ├── AbstractTest.java │ │ │ ├── DemoImpl.java │ │ │ ├── DubboDemoImpl.java │ │ │ ├── FramedTransportFactory.java │ │ │ ├── MockedChannel.java │ │ │ ├── ServerExceptionTest.java │ │ │ ├── ServiceMethodNotFoundTest.java │ │ │ ├── ThriftCodecTest.java │ │ │ ├── ThriftDemoImpl.java │ │ │ ├── ThriftProtocolTest.java │ │ │ ├── ThriftUtilsTest.java │ │ │ └── examples │ │ │ ├── DubboDemoConsumer.java │ │ │ └── DubboDemoProvider.java │ │ ├── resources │ │ ├── dubbo-demo-consumer.xml │ │ └── dubbo-demo-provider.xml │ │ └── thrift │ │ ├── ClassNameTestDubbo.thrift │ │ ├── ClassNameTestThrift.thrift │ │ └── Demo.thrift ├── dubbo-rpc-thrift2 │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── protocol │ │ │ └── thrift2 │ │ │ └── Thrift2Protocol.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.rpc.Protocol ├── dubbo-rpc-webservice │ ├── pom.xml │ └── src │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── protocol │ │ │ └── webservice │ │ │ └── WebServiceProtocol.java │ │ └── resources │ │ └── META-INF │ │ └── dubbo │ │ └── internal │ │ └── com.alibaba.dubbo.rpc.Protocol └── pom.xml ├── dubbo-simple ├── dubbo-monitor-simple │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── assembly │ │ │ ├── assembly.xml │ │ │ └── conf │ │ │ │ └── dubbo.properties │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── monitor │ │ │ │ └── simple │ │ │ │ ├── CountUtils.java │ │ │ │ ├── RegistryContainer.java │ │ │ │ ├── SimpleMonitorService.java │ │ │ │ └── pages │ │ │ │ ├── ApplicationsPageHandler.java │ │ │ │ ├── ChartsPageHandler.java │ │ │ │ ├── ConsumersPageHandler.java │ │ │ │ ├── DependenciesPageHandler.java │ │ │ │ ├── HostsPageHandler.java │ │ │ │ ├── ProvidersPageHandler.java │ │ │ │ ├── ServicesPageHandler.java │ │ │ │ ├── StatisticsPageHandler.java │ │ │ │ ├── UnregisterPageHandler.java │ │ │ │ └── UnsubscribePageHandler.java │ │ └── resources │ │ │ └── META-INF │ │ │ ├── dubbo │ │ │ └── internal │ │ │ │ ├── com.alibaba.dubbo.container.Container │ │ │ │ └── com.alibaba.dubbo.container.page.PageHandler │ │ │ └── spring │ │ │ └── dubbo-monitor-simple.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── monitor │ │ │ └── simple │ │ │ ├── SimpleMonitor.java │ │ │ └── SimpleMonitorServiceTest.java │ │ └── resources │ │ ├── dubbo.properties │ │ └── log4j.xml ├── dubbo-registry-simple │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── assembly │ │ │ ├── assembly.xml │ │ │ └── conf │ │ │ │ └── dubbo.properties │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── registry │ │ │ │ └── simple │ │ │ │ └── SimpleRegistryService.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring │ │ │ └── dubbo-registry-simple.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── registry │ │ │ └── simple │ │ │ ├── SimpleRegistry.java │ │ │ └── SimpleRegistryServiceTest.java │ │ └── resources │ │ ├── dubbo.properties │ │ └── log4j.xml └── pom.xml ├── dubbo-test ├── dubbo-test-benchmark-api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── rpc │ │ └── benchmark │ │ ├── BidRequest.java │ │ ├── BidResponse.java │ │ ├── Device.java │ │ ├── EchoService.java │ │ ├── Geo.java │ │ ├── Impression.java │ │ ├── SeatBid.java │ │ ├── SerializationOptimizerImpl.java │ │ └── Text.java ├── dubbo-test-benchmark-client │ ├── pom.xml │ └── src │ │ ├── assembly │ │ └── assembly.xml │ │ ├── cli │ │ ├── run.bat │ │ └── run.sh │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── benchmark │ │ │ ├── AbstractBenchmarkClient.java │ │ │ ├── AbstractClientRunnable.java │ │ │ ├── BidClientRunnable.java │ │ │ ├── ClientRunnable.java │ │ │ ├── RpcBenchmarkClient.java │ │ │ ├── ServiceFactory.java │ │ │ └── TextClientRunnable.java │ │ └── resources │ │ ├── META-INF │ │ └── cxf │ │ │ └── org.apache.cxf.Logger │ │ ├── dubbo.properties │ │ └── log4j.xml ├── dubbo-test-benchmark-server │ ├── pom.xml │ └── src │ │ ├── assembly │ │ └── assembly.xml │ │ ├── cli │ │ ├── run.bat │ │ └── run.sh │ │ └── main │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── rpc │ │ │ └── benchmark │ │ │ ├── EchoServiceImpl.java │ │ │ └── Main.java │ │ ├── resources │ │ ├── META-INF │ │ │ ├── cxf │ │ │ │ └── org.apache.cxf.Logger │ │ │ └── spring │ │ │ │ └── dubbo-provider.xml │ │ └── log4j.xml │ │ └── webapp │ │ └── WEB-INF │ │ └── web.xml ├── dubbo-test-benchmark │ ├── pom.xml │ └── src │ │ ├── assembly │ │ ├── dev.xml │ │ └── release.xml │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── rpc │ │ │ │ └── benchmark │ │ │ │ ├── AbstractBenchmarkClient.java │ │ │ │ ├── AbstractBenchmarkServer.java │ │ │ │ ├── AbstractClientRunnable.java │ │ │ │ ├── BenchmarkClient.java │ │ │ │ ├── BenchmarkServer.java │ │ │ │ ├── ClientRunnable.java │ │ │ │ ├── DemoService.java │ │ │ │ ├── DemoServiceImpl.java │ │ │ │ ├── ExchangeClientFactory.java │ │ │ │ ├── RequestObject.java │ │ │ │ ├── ResponseObject.java │ │ │ │ ├── RpcBenchmarkClient.java │ │ │ │ ├── RpcBenchmarkServer.java │ │ │ │ ├── RpcClient.java │ │ │ │ ├── ServiceFactory.java │ │ │ │ └── SimpleProcessorBenchmarkClientRunnable.java │ │ └── resources │ │ │ ├── ProviderSample.xml │ │ │ ├── ReadMe.txt │ │ │ ├── dubbo.properties │ │ │ ├── run.bat │ │ │ └── run.sh │ │ └── test │ │ ├── backup │ │ ├── BenchmarkRunner.java │ │ └── Dubbo.java │ │ ├── java │ │ └── com │ │ │ └── jingdong │ │ │ └── client │ │ │ └── DemoBenchmarkClientRunnable.java │ │ └── resources │ │ ├── dubbo-default.properties │ │ ├── log4j.properties │ │ └── server │ │ ├── dubborpcserver.sh │ │ ├── dubboserver.sh │ │ └── servercommon.sh ├── dubbo-test-compatibility │ └── pom.xml ├── dubbo-test-examples │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── examples │ │ │ │ ├── annotation │ │ │ │ ├── AnnotationConsumer.java │ │ │ │ ├── AnnotationProvider.java │ │ │ │ ├── action │ │ │ │ │ └── AnnotationAction.java │ │ │ │ ├── annotation-consumer.xml │ │ │ │ ├── annotation-provider.xml │ │ │ │ ├── api │ │ │ │ │ └── AnnotationService.java │ │ │ │ └── impl │ │ │ │ │ └── AnnotationServiceImpl.java │ │ │ │ ├── aop │ │ │ │ ├── AopAnnotationConsumer.java │ │ │ │ ├── AopAnnotationProvider.java │ │ │ │ ├── action │ │ │ │ │ └── AopAnnotationAction.java │ │ │ │ ├── annotation-consumer.xml │ │ │ │ ├── annotation-provider.xml │ │ │ │ ├── aop-aspect.xml │ │ │ │ ├── api │ │ │ │ │ └── AopAnnotationService.java │ │ │ │ ├── aspect │ │ │ │ │ └── AnnotationAspect.java │ │ │ │ └── impl │ │ │ │ │ └── AopAnnotationServiceImpl.java │ │ │ │ ├── async │ │ │ │ ├── AsyncConsumer.java │ │ │ │ ├── AsyncProvider.java │ │ │ │ ├── api │ │ │ │ │ └── AsyncService.java │ │ │ │ ├── async-consumer.xml │ │ │ │ ├── async-provider.xml │ │ │ │ └── impl │ │ │ │ │ └── AsyncServiceImpl.java │ │ │ │ ├── cache │ │ │ │ ├── CacheConsumer.java │ │ │ │ ├── CacheProvider.java │ │ │ │ ├── api │ │ │ │ │ └── CacheService.java │ │ │ │ ├── cache-consumer.xml │ │ │ │ ├── cache-provider.xml │ │ │ │ └── impl │ │ │ │ │ └── CacheServiceImpl.java │ │ │ │ ├── callback │ │ │ │ ├── CallbackConsumer.java │ │ │ │ ├── CallbackProvider.java │ │ │ │ ├── api │ │ │ │ │ ├── CallbackListener.java │ │ │ │ │ └── CallbackService.java │ │ │ │ ├── callback-consumer.xml │ │ │ │ ├── callback-provider.xml │ │ │ │ └── impl │ │ │ │ │ └── CallbackServiceImpl.java │ │ │ │ ├── generic │ │ │ │ ├── GenericConsumer.java │ │ │ │ ├── GenericProvider.java │ │ │ │ ├── api │ │ │ │ │ ├── IService.java │ │ │ │ │ └── IUserService.java │ │ │ │ ├── generic-consumer.xml │ │ │ │ ├── generic-provider.xml │ │ │ │ └── impl │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ ├── heartbeat │ │ │ │ ├── HeartBeatExchangeHandler.java │ │ │ │ ├── HeartbeatClient.java │ │ │ │ ├── HeartbeatConsumer.java │ │ │ │ ├── HeartbeatProvider.java │ │ │ │ ├── HeartbeatServer.java │ │ │ │ ├── api │ │ │ │ │ └── HelloService.java │ │ │ │ ├── heartbeat-consumer.xml │ │ │ │ ├── heartbeat-provider.xml │ │ │ │ └── impl │ │ │ │ │ └── HelloServiceImpl.java │ │ │ │ ├── jackson │ │ │ │ ├── JacksonConsumer.java │ │ │ │ ├── JacksonProvider.java │ │ │ │ ├── api │ │ │ │ │ ├── AbstractInheritBean.java │ │ │ │ │ ├── Inherit.java │ │ │ │ │ ├── InheritBean.java │ │ │ │ │ ├── InheritBean2.java │ │ │ │ │ ├── JacksonBean.java │ │ │ │ │ ├── JacksonInnerBean.java │ │ │ │ │ └── JacksonService.java │ │ │ │ ├── impl │ │ │ │ │ └── JacksonServiceImpl.java │ │ │ │ ├── jackson-consumer.xml │ │ │ │ ├── jackson-provider.xml │ │ │ │ └── jacksonprovider │ │ │ │ │ └── CustomJacksonObjectMapperProvider.java │ │ │ │ ├── memcached │ │ │ │ ├── MemcachedConsumer.java │ │ │ │ └── memcached-consumer.xml │ │ │ │ ├── merge │ │ │ │ ├── MergeConsumer.java │ │ │ │ ├── MergeConsumer2.java │ │ │ │ ├── MergeProvider.java │ │ │ │ ├── MergeProvider2.java │ │ │ │ ├── api │ │ │ │ │ └── MergeService.java │ │ │ │ ├── impl │ │ │ │ │ ├── MergeServiceImpl.java │ │ │ │ │ ├── MergeServiceImpl2.java │ │ │ │ │ └── MergeServiceImpl3.java │ │ │ │ ├── merge-consumer.xml │ │ │ │ ├── merge-consumer2.xml │ │ │ │ ├── merge-provider.xml │ │ │ │ └── merge-provider2.xml │ │ │ │ ├── redis │ │ │ │ ├── RedisConsumer.java │ │ │ │ └── redis-consumer.xml │ │ │ │ ├── validation │ │ │ │ ├── ValidationConsumer.java │ │ │ │ ├── ValidationProvider.java │ │ │ │ ├── api │ │ │ │ │ ├── ValidationParameter.java │ │ │ │ │ └── ValidationService.java │ │ │ │ ├── impl │ │ │ │ │ └── ValidationServiceImpl.java │ │ │ │ ├── validation-consumer.xml │ │ │ │ └── validation-provider.xml │ │ │ │ └── version │ │ │ │ ├── VersionConsumer.java │ │ │ │ ├── VersionProvider.java │ │ │ │ ├── VersionProvider2.java │ │ │ │ ├── api │ │ │ │ └── VersionService.java │ │ │ │ ├── impl │ │ │ │ ├── VersionServiceImpl.java │ │ │ │ └── VersionServiceImpl2.java │ │ │ │ ├── version-consumer.xml │ │ │ │ ├── version-provider.xml │ │ │ │ └── version-provider2.xml │ │ └── resources │ │ │ ├── META-INF │ │ │ └── dubbo │ │ │ │ └── com.alibaba.dubbo.common.json.JacksonObjectMapperProvider │ │ │ └── log4j.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── examples │ │ ├── annotation │ │ └── AnnotationTest.java │ │ └── validation │ │ └── ValidationTest.java ├── dubbo-test-integration │ └── pom.xml └── pom.xml ├── dubbo-tool ├── dubbo-demo-lite-archetype │ ├── pom.xml │ ├── readme.md │ └── src │ │ ├── main │ │ └── resources │ │ │ ├── META-INF │ │ │ └── maven │ │ │ │ └── archetype-metadata.xml │ │ │ └── archetype-resources │ │ │ ├── __rootArtifactId__-api │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ └── main │ │ │ │ └── java │ │ │ │ ├── SerializationOptimizerImpl.java │ │ │ │ ├── extension │ │ │ │ ├── ClientTraceFilter.java │ │ │ │ ├── CustomExceptionMapper.java │ │ │ │ ├── DynamicTraceBinding.java │ │ │ │ ├── DynamicTraceInterceptor.java │ │ │ │ ├── TraceFilter.java │ │ │ │ └── TraceInterceptor.java │ │ │ │ └── user │ │ │ │ ├── User.java │ │ │ │ ├── UserService.java │ │ │ │ └── facade │ │ │ │ ├── RegistrationResult.java │ │ │ │ └── UserRestService.java │ │ │ ├── __rootArtifactId__-consumer │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── assembly │ │ │ │ │ ├── assembly.xml │ │ │ │ │ └── conf │ │ │ │ │ │ └── dubbo.properties │ │ │ │ ├── java │ │ │ │ │ └── consumer │ │ │ │ │ │ └── DemoAction.java │ │ │ │ └── resources │ │ │ │ │ └── META-INF │ │ │ │ │ └── spring │ │ │ │ │ ├── dubbo-demo-lite-action.xml │ │ │ │ │ └── dubbo-demo-lite-consumer.xml │ │ │ │ └── test │ │ │ │ ├── java │ │ │ │ └── consumer │ │ │ │ │ ├── DemoConsumer.java │ │ │ │ │ └── RestClient.java │ │ │ │ └── resources │ │ │ │ └── log4j.xml │ │ │ ├── __rootArtifactId__-provider │ │ │ ├── pom.xml │ │ │ └── src │ │ │ │ ├── main │ │ │ │ ├── java │ │ │ │ │ └── user │ │ │ │ │ │ ├── UserServiceImpl.java │ │ │ │ │ │ └── facade │ │ │ │ │ │ └── UserRestServiceImpl.java │ │ │ │ ├── resources │ │ │ │ │ ├── META-INF │ │ │ │ │ │ └── spring │ │ │ │ │ │ │ └── dubbo-demo-lite-provider.xml │ │ │ │ │ └── log4j.xml │ │ │ │ └── webapp │ │ │ │ │ └── WEB-INF │ │ │ │ │ └── web.xml │ │ │ │ └── test │ │ │ │ └── java │ │ │ │ └── provider │ │ │ │ └── DemoProvider.java │ │ │ └── pom.xml │ │ └── test │ │ └── resources │ │ └── projects │ │ └── basic │ │ └── archetype.properties └── dubbo-demo-lite │ ├── dubbo-demo-lite-api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── demolite │ │ ├── SerializationOptimizerImpl.java │ │ ├── extension │ │ ├── ClientTraceFilter.java │ │ ├── CustomExceptionMapper.java │ │ ├── DynamicTraceBinding.java │ │ ├── DynamicTraceInterceptor.java │ │ ├── TraceFilter.java │ │ └── TraceInterceptor.java │ │ └── user │ │ ├── User.java │ │ ├── UserService.java │ │ └── facade │ │ ├── RegistrationResult.java │ │ └── UserRestService.java │ ├── dubbo-demo-lite-consumer │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── assembly │ │ │ ├── assembly.xml │ │ │ └── conf │ │ │ │ └── dubbo.properties │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── demolite │ │ │ │ └── consumer │ │ │ │ └── DemoAction.java │ │ └── resources │ │ │ └── META-INF │ │ │ └── spring │ │ │ ├── dubbo-demo-lite-action.xml │ │ │ └── dubbo-demo-lite-consumer.xml │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── alibaba │ │ │ └── dubbo │ │ │ └── demolite │ │ │ └── consumer │ │ │ ├── DemoConsumer.java │ │ │ └── RestClient.java │ │ └── resources │ │ └── log4j.xml │ ├── dubbo-demo-lite-provider │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── alibaba │ │ │ │ └── dubbo │ │ │ │ └── demolite │ │ │ │ └── user │ │ │ │ ├── UserServiceImpl.java │ │ │ │ └── facade │ │ │ │ └── UserRestServiceImpl.java │ │ ├── resources │ │ │ ├── META-INF │ │ │ │ └── spring │ │ │ │ │ └── dubbo-demo-lite-provider.xml │ │ │ └── log4j.xml │ │ └── webapp │ │ │ └── WEB-INF │ │ │ └── web.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── alibaba │ │ └── dubbo │ │ └── demolite │ │ └── provider │ │ └── DemoProvider.java │ └── pom.xml ├── dubbo ├── pom.xml └── readme.txt ├── hessian-lite ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── alibaba │ └── com │ └── caucho │ └── hessian │ ├── HessianException.java │ ├── io │ ├── AbstractDeserializer.java │ ├── AbstractHessianInput.java │ ├── AbstractHessianOutput.java │ ├── AbstractHessianResolver.java │ ├── AbstractListDeserializer.java │ ├── AbstractMapDeserializer.java │ ├── AbstractSerializer.java │ ├── AbstractSerializerFactory.java │ ├── ArrayDeserializer.java │ ├── ArraySerializer.java │ ├── BasicDeserializer.java │ ├── BasicSerializer.java │ ├── BeanDeserializer.java │ ├── BeanSerializer.java │ ├── BeanSerializerFactory.java │ ├── BigIntegerDeserializer.java │ ├── CalendarHandle.java │ ├── CalendarSerializer.java │ ├── ClassDeserializer.java │ ├── ClassSerializer.java │ ├── CollectionDeserializer.java │ ├── CollectionSerializer.java │ ├── Deflation.java │ ├── Deserializer.java │ ├── EnumDeserializer.java │ ├── EnumSerializer.java │ ├── EnumerationDeserializer.java │ ├── EnumerationSerializer.java │ ├── EnvelopeFactory.java │ ├── ExtSerializerFactory.java │ ├── Hessian2Constants.java │ ├── Hessian2Input.java │ ├── Hessian2Output.java │ ├── Hessian2StreamingInput.java │ ├── Hessian2StreamingOutput.java │ ├── HessianDebugInputStream.java │ ├── HessianDebugOutputStream.java │ ├── HessianDebugState.java │ ├── HessianEnvelope.java │ ├── HessianFieldException.java │ ├── HessianHandle.java │ ├── HessianInput.java │ ├── HessianInputFactory.java │ ├── HessianOutput.java │ ├── HessianProtocolException.java │ ├── HessianRemote.java │ ├── HessianRemoteObject.java │ ├── HessianRemoteResolver.java │ ├── HessianSerializerInput.java │ ├── HessianSerializerOutput.java │ ├── HessianServiceException.java │ ├── IOExceptionWrapper.java │ ├── InputStreamDeserializer.java │ ├── InputStreamSerializer.java │ ├── IteratorSerializer.java │ ├── JavaDeserializer.java │ ├── JavaSerializer.java │ ├── LocaleHandle.java │ ├── LocaleSerializer.java │ ├── MapDeserializer.java │ ├── MapSerializer.java │ ├── ObjectDeserializer.java │ ├── RemoteSerializer.java │ ├── Serializer.java │ ├── SerializerFactory.java │ ├── SqlDateDeserializer.java │ ├── SqlDateSerializer.java │ ├── StackTraceElementDeserializer.java │ ├── StringValueDeserializer.java │ ├── StringValueSerializer.java │ ├── ThrowableSerializer.java │ └── ValueDeserializer.java │ ├── security │ ├── X509Encryption.java │ └── X509Signature.java │ └── util │ ├── IdentityIntMap.java │ └── IntMap.java └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | # maven ignore 2 | target/ 3 | *.jar 4 | *.war 5 | *.zip 6 | *.tar 7 | *.tar.gz 8 | 9 | # eclipse ignore 10 | .settings/ 11 | .project 12 | .classpath 13 | 14 | # idea ignore 15 | .idea/ 16 | *.ipr 17 | *.iml 18 | *.iws 19 | 20 | # temp ignore 21 | *.log 22 | *.cache 23 | *.diff 24 | *.patch 25 | *.tmp 26 | *.java~ 27 | *.properties~ 28 | *.xml~ 29 | 30 | # system ignore 31 | .DS_Store 32 | Thumbs.db 33 | 34 | -------------------------------------------------------------------------------- /dubbo-admin/pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hutai123/dubbox/27d9387923eec014f827f20e6d37b9caf79ae09f/dubbo-admin/pom.xml -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/governance/biz/common/i18n/MessageResourceService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.governance.biz.common.i18n; 2 | 3 | public interface MessageResourceService { 4 | 5 | public String get(String key, Object... args); 6 | 7 | public String getMessage(String key, Object... args); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/governance/service/OwnerService.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.governance.service; 2 | 3 | import java.util.List; 4 | 5 | import com.alibaba.dubbo.registry.common.domain.Owner; 6 | 7 | public interface OwnerService { 8 | 9 | List findAllServiceNames(); 10 | 11 | List findServiceNamesByUsername(String username); 12 | 13 | List findUsernamesByServiceName(String serviceName); 14 | 15 | List findByService(String serviceName); 16 | 17 | List findAll(); 18 | 19 | Owner findById(Long id); 20 | 21 | void saveOwner(Owner owner); 22 | 23 | void deleteOwner(Owner owner); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/common/auth/DubboUser.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Function: dubbo用户类 3 | * 4 | * File Created at 2011-08-17 5 | * 6 | * Copyright 2011 Alibaba.com Croporation Limited. 7 | * All rights reserved. 8 | */ 9 | package com.alibaba.dubbo.governance.web.common.auth; 10 | 11 | import java.io.Serializable; 12 | 13 | import com.alibaba.dubbo.registry.common.domain.User; 14 | 15 | /** 16 | * MinasUser: DubboUser 17 | * 18 | * @author guanghui.shigh 19 | */ 20 | public class DubboUser implements Serializable { 21 | 22 | private static final long serialVersionUID = 1L; 23 | 24 | private static final ThreadLocal userHolder = new ThreadLocal(); 25 | 26 | private DubboUser() { 27 | } 28 | 29 | public static final User getCurrentUser() { 30 | return (User) userHolder.get(); 31 | } 32 | 33 | public static final void setCurrentUser(User user) { 34 | userHolder.set(user); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/common/i18n/LocaleUtil.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.governance.web.common.i18n; 2 | 3 | import java.util.Locale; 4 | 5 | public class LocaleUtil { 6 | private static ThreadLocal userLocale = new ThreadLocal(); 7 | 8 | public static void setLocale(Locale locale) { 9 | userLocale.set(locale); 10 | } 11 | 12 | public static void cleanLocale() { 13 | userLocale.remove(); 14 | } 15 | 16 | public static Locale getLocale() { 17 | return userLocale.get(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/governance/module/screen/NoServicePrivilege.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Function: 3 | * 4 | * File Created at 2010-11-17 5 | * $Id: NoServicePrivilege.java 181192 2012-06-21 05:05:47Z tony.chenl $ 6 | * 7 | * Copyright 2009 Alibaba.com Croporation Limited. 8 | * All rights reserved. 9 | */ 10 | package com.alibaba.dubbo.governance.web.governance.module.screen; 11 | 12 | import javax.servlet.http.HttpServletRequest; 13 | 14 | import org.springframework.beans.factory.annotation.Autowired; 15 | 16 | import com.alibaba.citrus.turbine.Context; 17 | 18 | /** 19 | * TODO Comment of NoServicePrivilege 20 | * 21 | * @author guanghui.shigh 22 | */ 23 | public class NoServicePrivilege { 24 | 25 | @Autowired 26 | private HttpServletRequest request; 27 | 28 | public void execute(Context context) { 29 | context.put("returnUrl", request.getParameter("returnUrl")); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/governance/web/sysmanage/module/screen/Privileges.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Project: dubbo.registry.console-2.1.0-SNAPSHOT 3 | * 4 | * File Created at Sep 13, 2011 5 | * $Id: Privileges.java 181192 2012-06-21 05:05:47Z tony.chenl $ 6 | * 7 | * Copyright 1999-2100 Alibaba.com Corporation Limited. 8 | * All rights reserved. 9 | * 10 | * This software is the confidential and proprietary information of 11 | * Alibaba Company. ("Confidential Information"). You shall not 12 | * disclose such Confidential Information and shall use it only in 13 | * accordance with the terms of the license agreement you entered into 14 | * with Alibaba.com. 15 | */ 16 | package com.alibaba.dubbo.governance.web.sysmanage.module.screen; 17 | 18 | import com.alibaba.dubbo.governance.web.common.module.screen.Restful; 19 | 20 | /** 21 | * @author ding.lid 22 | * 23 | */ 24 | public class Privileges extends Restful { 25 | 26 | } 27 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/registry/common/ChangeListener.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.registry.common; 2 | 3 | public interface ChangeListener { 4 | 5 | /** 6 | * 数据变更 7 | * 8 | * @param type 数据类型 9 | * @param services 影响的服务 10 | */ 11 | void onChanged(String type); 12 | 13 | } 14 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/registry/common/domain/Cluster.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.registry.common.domain; 2 | 3 | public class Cluster extends Entity { 4 | 5 | private static final long serialVersionUID = 8704571999015097948L; 6 | 7 | private String name; /* 服务提供者分组名 ,一个分组可以包含若干个提供者*/ 8 | 9 | private String address; /* 客户端地址 */ 10 | 11 | private String username; 12 | 13 | public Cluster() { 14 | } 15 | 16 | public Cluster(Long id) { 17 | super(id); 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name; 26 | } 27 | 28 | public String getUsername() { 29 | return username; 30 | } 31 | 32 | public void setUsername(String username) { 33 | this.username = username; 34 | } 35 | 36 | public String getAddress() { 37 | return address; 38 | } 39 | 40 | public void setAddress(String address) { 41 | this.address = address; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/registry/common/domain/Dependency.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.registry.common.domain; 2 | 3 | import java.io.Serializable; 4 | 5 | public class Dependency implements Serializable { 6 | 7 | private static final long serialVersionUID = 8526869025719540547L; 8 | 9 | private String providerApplication; 10 | 11 | private String consumerApplication; 12 | 13 | public String getProviderApplication() { 14 | return providerApplication; 15 | } 16 | 17 | public void setProviderApplication(String providerApplication) { 18 | this.providerApplication = providerApplication; 19 | } 20 | 21 | public String getConsumerApplication() { 22 | return consumerApplication; 23 | } 24 | 25 | public void setConsumerApplication(String consumerApplication) { 26 | this.consumerApplication = consumerApplication; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/registry/common/domain/Favorite.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.registry.common.domain; 2 | 3 | public class Favorite extends Entity { 4 | 5 | private static final long serialVersionUID = -1281982267153430266L; 6 | 7 | private String name; 8 | 9 | private String url; 10 | 11 | private String username; 12 | 13 | public Favorite() { 14 | } 15 | 16 | public Favorite(Long id) { 17 | super(id); 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name; 26 | } 27 | 28 | public String getUrl() { 29 | return url; 30 | } 31 | 32 | public void setUrl(String url) { 33 | this.url = url; 34 | } 35 | 36 | public String getUsername() { 37 | return username; 38 | } 39 | 40 | public void setUsername(String username) { 41 | this.username = username; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/registry/common/domain/Owner.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.registry.common.domain; 2 | 3 | public class Owner extends Entity { 4 | 5 | private static final long serialVersionUID = -4891350118145794727L; 6 | 7 | /** 8 | * 可以包含通配符。 9 | */ 10 | private String service; 11 | 12 | private String username; 13 | 14 | private User user; 15 | 16 | public Owner() { 17 | } 18 | 19 | public Owner(Long id) { 20 | super(id); 21 | } 22 | 23 | public String getService() { 24 | return service; 25 | } 26 | 27 | public void setService(String service) { 28 | this.service = service; 29 | } 30 | 31 | public String getUsername() { 32 | return username; 33 | } 34 | 35 | public void setUsername(String username) { 36 | this.username = username; 37 | } 38 | 39 | public User getUser() { 40 | return user; 41 | } 42 | 43 | public void setUser(User user) { 44 | this.user = user; 45 | } 46 | 47 | } 48 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/registry/common/domain/SearchHistory.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.registry.common.domain; 2 | 3 | public class SearchHistory extends Entity { 4 | 5 | private static final long serialVersionUID = -1281982267153430266L; 6 | 7 | private String name; 8 | 9 | private String type; 10 | 11 | private String url; 12 | 13 | public SearchHistory() { 14 | } 15 | 16 | public SearchHistory(Long id) { 17 | super(id); 18 | } 19 | 20 | public String getName() { 21 | return name; 22 | } 23 | 24 | public void setName(String name) { 25 | this.name = name; 26 | } 27 | 28 | public String getType() { 29 | return type; 30 | } 31 | 32 | public void setType(String type) { 33 | this.type = type; 34 | } 35 | 36 | public String getUrl() { 37 | return url; 38 | } 39 | 40 | public void setUrl(String url) { 41 | this.url = url; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/java/com/alibaba/dubbo/registry/common/util/LocaleUtils.java: -------------------------------------------------------------------------------- 1 | package com.alibaba.dubbo.registry.common.util; 2 | 3 | import java.util.Locale; 4 | 5 | public class LocaleUtils { 6 | 7 | private LocaleUtils() {} 8 | 9 | public static Locale getLocale(String language) { 10 | if ("en".equalsIgnoreCase(language)) { 11 | return Locale.ENGLISH; 12 | } else if ("zh".equalsIgnoreCase(language)) { 13 | return Locale.SIMPLIFIED_CHINESE; 14 | } else if ("zh_TW".equalsIgnoreCase(language)) { 15 | return Locale.TRADITIONAL_CHINESE; 16 | } 17 | return Locale.getDefault(); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/applicationContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/common/rewrite.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/dubbo.properties: -------------------------------------------------------------------------------- 1 | dubbo.registry.address=zookeeper://127.0.0.1:2181?backup=127.0.0.1:2182,127.0.0.1:2183 2 | dubbo.admin.root.password=root 3 | dubbo.admin.guest.password=guest -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/i18n/message_en.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hutai123/dubbox/27d9387923eec014f827f20e6d37b9caf79ae09f/dubbo-admin/src/main/webapp/WEB-INF/i18n/message_en.properties -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/templates/governance/layout/noServicePrivilege.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | dubbo 6 | 7 | 8 | 9 | 10 | 11 | 12 | $screen_placeholder 13 | 14 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/templates/governance/layout/redirect.vm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | dubbo 6 | 7 | 8 | 9 | 10 | 11 | 12 | $screen_placeholder 13 | 14 | -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/templates/governance/layout/search.vm: -------------------------------------------------------------------------------- 1 | $screen_placeholder -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/addresses/search.vm: -------------------------------------------------------------------------------- 1 | [#foreach($address in $addresses) 2 | #if ($velocityCount > 1),#end 3 | "$address" 4 | #end] -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/applications/search.vm: -------------------------------------------------------------------------------- 1 | [#foreach($application in $applications) 2 | #if ($velocityCount > 1),#end 3 | "$application" 4 | #end] -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/error.vm: -------------------------------------------------------------------------------- 1 | ERROR -------------------------------------------------------------------------------- /dubbo-admin/src/main/webapp/WEB-INF/templates/governance/screen/noServicePrivilege.vm: -------------------------------------------------------------------------------- 1 |