This is an automated email from the ASF dual-hosted git repository. jerrick pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git
The following commit(s) were added to refs/heads/master by this push: new 7277f5e Qos enhancement (#2153) 7277f5e is described below commit 7277f5ed1826e3ff926e483af466c9bef16898e2 Author: Huxing Zhang <huxing.zh...@gmail.com> AuthorDate: Thu Aug 16 16:55:52 2018 +0800 Qos enhancement (#2153) * Not to accept foreign ip by default. * Log if fail to start qos server. #2046 * Fix typo. No functional change. * Remove redundant declaration. * Sync dubbo.xsd to compact dubbo.xsd. * Simplify code and add comments. * Add log message if qos is not enabled. * Fix UT failure. --- .../org/apache/dubbo/config/ApplicationConfig.java | 3 + .../src/main/resources/META-INF/compat/dubbo.xsd | 353 +++++++++++---------- .../src/main/resources/META-INF/dubbo.xsd | 348 ++++++++++---------- .../dubbo/qos/protocol/QosProtocolWrapper.java | 18 +- .../dubbo/qos/protocol/QosProtocolWrapperTest.java | 6 +- .../registry/integration/RegistryProtocol.java | 17 +- 6 files changed, 381 insertions(+), 364 deletions(-) diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java index a3d46a0..86d4001 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ApplicationConfig.java @@ -71,10 +71,13 @@ public class ApplicationConfig extends AbstractConfig { // directory for saving thread dump private String dumpDirectory; + // whether to enable qos or not private Boolean qosEnable; + // the qos port to listen private Integer qosPort; + // should we accept foreign ip or not? private Boolean qosAcceptForeignIp; // customized parameters diff --git a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd index 30558cc..6206048 100644 --- a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd +++ b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/compat/dubbo.xsd @@ -15,58 +15,58 @@ </xsd:annotation> <xsd:complexType name="abstractMethodType"> - <xsd:attribute name="timeout" type="xsd:string" use="optional" default="0"> + <xsd:attribute name="timeout" type="xsd:string" default="0"> <xsd:annotation> <xsd:documentation><![CDATA[ The method invoke timeout. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="retries" type="xsd:string" use="optional"> + <xsd:attribute name="retries" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The method retry times. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="actives" type="xsd:string" use="optional"> + <xsd:attribute name="actives" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The max active requests. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="connections" type="xsd:string" use="optional"> + <xsd:attribute name="connections" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The exclusive connections. default share one connection. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="loadbalance" type="xsd:string" use="optional"> + <xsd:attribute name="loadbalance" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The method load balance. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="async" type="xsd:string" use="optional" default="false"> + <xsd:attribute name="async" type="xsd:string" default="false"> <xsd:annotation> <xsd:documentation><![CDATA[ The method does async. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="sent" type="xsd:string" use="optional"> + <xsd:attribute name="sent" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The async method return await message sent ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="mock" type="xsd:string" use="optional"> + <xsd:attribute name="mock" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service mock implementation. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="merger" type="xsd:string" use="optional"> + <xsd:attribute name="merger" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The multi-group result merger ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="validation" type="xsd:string" use="optional"> + <xsd:attribute name="validation" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service jsr303 validation, true/false. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="cache" type="xsd:string" use="optional"> + <xsd:attribute name="cache" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service cache, lru/threadlocal/jcache. ]]></xsd:documentation> </xsd:annotation> @@ -81,82 +81,82 @@ <xsd:documentation><![CDATA[ The unique identifier for a bean. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="local" type="xsd:string" use="optional"> + <xsd:attribute name="local" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service local implementation. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="stub" type="xsd:string" use="optional"> + <xsd:attribute name="stub" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service local implementation. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="proxy" type="xsd:string" use="optional"> + <xsd:attribute name="proxy" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use proxy factory. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="cluster" type="xsd:string" use="optional"> + <xsd:attribute name="cluster" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use cluster strategy. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="filter" type="xsd:string" use="optional"> + <xsd:attribute name="filter" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The filter. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="listener" type="xsd:string" use="optional"> + <xsd:attribute name="listener" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The listener. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="owner" type="xsd:string" use="optional"> + <xsd:attribute name="owner" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The owner. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="layer" type="xsd:string" use="optional"> + <xsd:attribute name="layer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ layer info. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="application" type="xsd:string" use="optional"> + <xsd:attribute name="application" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service application. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="module" type="xsd:string" use="optional"> + <xsd:attribute name="module" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service module. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="registry" type="xsd:string" use="optional"> + <xsd:attribute name="registry" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="monitor" type="xsd:string" use="optional"> + <xsd:attribute name="monitor" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service monitor. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="callbacks" type="xsd:string" use="optional"> + <xsd:attribute name="callbacks" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The callback instance limit peer connection.]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="onconnect" type="xsd:string" use="optional"> + <xsd:attribute name="onconnect" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service client connected. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="ondisconnect" type="xsd:string" use="optional"> + <xsd:attribute name="ondisconnect" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service client disconnected. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="scope" type="xsd:string" use="optional"> + <xsd:attribute name="scope" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Defines the service visibility, choise:[local remote]. default is remote, which can be invoked by network。 ]]></xsd:documentation> @@ -169,49 +169,49 @@ <xsd:complexType name="abstractReferenceType"> <xsd:complexContent> <xsd:extension base="abstractInterfaceType"> - <xsd:attribute name="version" type="xsd:string" use="optional" default="0.0.0"> + <xsd:attribute name="version" type="xsd:string" default="0.0.0"> <xsd:annotation> <xsd:documentation><![CDATA[ The service version. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="group" type="xsd:string" use="optional"> + <xsd:attribute name="group" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service group. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="check" type="xsd:string" use="optional"> + <xsd:attribute name="check" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Check dependency providers. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="init" type="xsd:string" use="optional"> + <xsd:attribute name="init" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Eager init reference. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="generic" type="xsd:string" use="optional"> + <xsd:attribute name="generic" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Generic service. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="injvm" type="xsd:string" use="optional"> + <xsd:attribute name="injvm" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[Deprecated. Replace to set scope=local ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="sticky" type="xsd:string" use="optional"> + <xsd:attribute name="sticky" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Enable/Disable cluster sticky policy.Default false ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="reconnect" type="xsd:string" use="optional"> + <xsd:attribute name="reconnect" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ remoting reconnect timer. false represent close reconnect. integer represent interval(ms) .default true(2000ms).]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="lazy" type="xsd:string" use="optional"> + <xsd:attribute name="lazy" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ lazy create connection. ]]></xsd:documentation> </xsd:annotation> @@ -223,86 +223,86 @@ <xsd:complexType name="abstractServiceType"> <xsd:complexContent> <xsd:extension base="abstractInterfaceType"> - <xsd:attribute name="register" type="xsd:string" use="optional"> + <xsd:attribute name="register" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service can be register to registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="version" type="xsd:string" use="optional" default="0.0.0"> + <xsd:attribute name="version" type="xsd:string" default="0.0.0"> <xsd:annotation> <xsd:documentation><![CDATA[ The service version. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="group" type="xsd:string" use="optional"> + <xsd:attribute name="group" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service group. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="deprecated" type="xsd:string" use="optional"> + <xsd:attribute name="deprecated" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ whether the service is deprecated. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="delay" type="xsd:string" use="optional" default="0"> + <xsd:attribute name="delay" type="xsd:string" default="0"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service export delay millisecond. ]]> </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="export" type="xsd:string" use="optional"> + <xsd:attribute name="export" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service is export. ]]> </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="weight" type="xsd:string" use="optional"> + <xsd:attribute name="weight" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service weight. ]]> </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="document" type="xsd:string" use="optional"> + <xsd:attribute name="document" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service document. ]]> </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dynamic" type="xsd:string" use="optional"> + <xsd:attribute name="dynamic" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ the service registered to the registry is dynamic(true) or static(false). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="token" type="xsd:string" use="optional"> + <xsd:attribute name="token" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service use token. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="accesslog" type="xsd:string" use="optional"> + <xsd:attribute name="accesslog" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service use accesslog. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="executes" type="xsd:string" use="optional"> + <xsd:attribute name="executes" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service allow execute requests. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="protocol" type="xsd:string" use="optional"> + <xsd:attribute name="protocol" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="warmup" type="xsd:string" use="optional"> + <xsd:attribute name="warmup" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The warmup time in Milliseconds. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="serialization" type="xsd:string" use="optional"> + <xsd:attribute name="serialization" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The serialization protocol of service. ]]></xsd:documentation> </xsd:annotation> @@ -361,17 +361,17 @@ <xsd:documentation><![CDATA[ The application logger. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="registry" type="xsd:string" use="optional"> + <xsd:attribute name="registry" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The application registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="monitor" type="xsd:string" use="optional"> + <xsd:attribute name="monitor" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The application monitor. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -404,17 +404,17 @@ <xsd:documentation><![CDATA[ The module organization. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="registry" type="xsd:string" use="optional"> + <xsd:attribute name="registry" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The module registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="monitor" type="xsd:string" use="optional"> + <xsd:attribute name="monitor" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The module monitor. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -430,110 +430,110 @@ <xsd:documentation><![CDATA[ The unique identifier for a bean. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="address" type="xsd:string" use="optional"> + <xsd:attribute name="address" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry address. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="port" type="xsd:string" use="optional"> + <xsd:attribute name="port" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry default port. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="protocol" type="xsd:string" use="optional"> + <xsd:attribute name="protocol" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry lookup protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="username" type="xsd:string" use="optional"> + <xsd:attribute name="username" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry username. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="password" type="xsd:string" use="optional"> + <xsd:attribute name="password" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry password. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="transport" type="xsd:string" use="optional"> + <xsd:attribute name="transport" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol transporter type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="transporter" type="xsd:string" use="optional"> + <xsd:attribute name="transporter" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol transporter type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="server" type="xsd:string" use="optional"> + <xsd:attribute name="server" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol server type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol client type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="cluster" type="xsd:string" use="optional"> + <xsd:attribute name="cluster" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry cluster type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="group" type="xsd:string" use="optional"> + <xsd:attribute name="group" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry group. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="version" type="xsd:string" use="optional"> + <xsd:attribute name="version" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry version. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="timeout" type="xsd:string" use="optional"> + <xsd:attribute name="timeout" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The request timeout. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="session" type="xsd:string" use="optional"> + <xsd:attribute name="session" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The session timeout. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="file" type="xsd:string" use="optional"> + <xsd:attribute name="file" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry adddress file store. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="wait" type="xsd:string" use="optional"> + <xsd:attribute name="wait" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The wait time for shutdown. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="check" type="xsd:string" use="optional"> + <xsd:attribute name="check" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Check registry status on stratup. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dynamic" type="xsd:string" use="optional"> + <xsd:attribute name="dynamic" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ the service registered to this registry is dynamic(true) or static(false). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="register" type="xsd:string" use="optional"> + <xsd:attribute name="register" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ register service to this registry(true) or not(false). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="subscribe" type="xsd:string" use="optional"> + <xsd:attribute name="subscribe" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ subscribe service to this registry(true) or not(false). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -544,42 +544,42 @@ <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> - <xsd:attribute name="address" type="xsd:string" use="optional"> + <xsd:attribute name="address" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor address. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="protocol" type="xsd:string" use="optional"> + <xsd:attribute name="protocol" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="username" type="xsd:string" use="optional"> + <xsd:attribute name="username" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor username. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="password" type="xsd:string" use="optional"> + <xsd:attribute name="password" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor password. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="group" type="xsd:string" use="optional"> + <xsd:attribute name="group" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor group. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="version" type="xsd:string" use="optional"> + <xsd:attribute name="version" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor version. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="interval" type="xsd:string" use="optional"> + <xsd:attribute name="interval" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor interval. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -597,7 +597,7 @@ <xsd:documentation><![CDATA[ The parameter value. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="hide" type="xsd:boolean" use="optional"> + <xsd:attribute name="hide" type="xsd:boolean"> <xsd:annotation> <xsd:documentation><![CDATA[ Hide parameter. ]]></xsd:documentation> </xsd:annotation> @@ -616,54 +616,54 @@ <xsd:documentation><![CDATA[ The method name (method.toString()). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="executes" type="xsd:string" use="optional"> + <xsd:attribute name="executes" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The max active requests. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="stat" type="xsd:string" use="optional" default="-1"> + <xsd:attribute name="stat" type="xsd:string" default="-1"> <xsd:annotation> <xsd:documentation><![CDATA[ The method parameter index for statistics. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="retry" type="xsd:string" use="optional"> + <xsd:attribute name="retry" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. Replace to retries. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="reliable" type="xsd:string" use="optional" default="false"> + <xsd:attribute name="reliable" type="xsd:string" default="false"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. Replace to napoli protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="deprecated" type="xsd:string" use="optional"> + <xsd:attribute name="deprecated" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The method deprecated. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="sticky" type="xsd:string" use="optional"> + <xsd:attribute name="sticky" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Enable/Disable cluster sticky policy.Default false ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="return" type="xsd:string" use="optional"> + <xsd:attribute name="return" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Method result is return. default is true.]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="oninvoke" type="xsd:string" use="optional"> + <xsd:attribute name="oninvoke" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Method invoke trigger.]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="onreturn" type="xsd:string" use="optional"> + <xsd:attribute name="onreturn" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Method return trigger. return attribute must be true.]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="onthrow" type="xsd:string" use="optional"> + <xsd:attribute name="onthrow" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Method on error trigger.return attribute must be true.]]></xsd:documentation> @@ -674,17 +674,17 @@ </xsd:complexType> <xsd:complexType name="argumentType"> - <xsd:attribute name="index" type="xsd:string" use="optional"> + <xsd:attribute name="index" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The argument index. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="type" type="xsd:string" use="optional"> + <xsd:attribute name="type" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The argument type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="callback" type="xsd:string" use="optional"> + <xsd:attribute name="callback" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The argument is callback. ]]></xsd:documentation> </xsd:annotation> @@ -698,32 +698,32 @@ <xsd:element ref="reference" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Transporter layer framework: netty mina.... ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threadpool" type="xsd:string" use="optional"> + <xsd:attribute name="threadpool" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Consumer threadpool: cached, fixed, limited, eager]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="corethreads" type="xsd:string" use="optional"> + <xsd:attribute name="corethreads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool core threads size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threads" type="xsd:string" use="optional"> + <xsd:attribute name="threads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="queues" type="xsd:string" use="optional"> + <xsd:attribute name="queues" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool queue size. ]]></xsd:documentation> </xsd:annotation> @@ -750,22 +750,22 @@ </xsd:appinfo> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="url" type="xsd:string" use="optional"> + <xsd:attribute name="url" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Provider list url. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Protocol transport client type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="consumer" type="xsd:string" use="optional"> + <xsd:attribute name="consumer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. Replace to reference-default. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="protocol" type="xsd:string" use="optional"> + <xsd:attribute name="protocol" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service protocol. ]]></xsd:documentation> </xsd:annotation> @@ -784,163 +784,168 @@ <xsd:documentation><![CDATA[ The unique identifier for a bean. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="name" type="xsd:string" use="optional"> + <xsd:attribute name="name" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol name. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="host" type="xsd:string" use="optional"> + <xsd:attribute name="host" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service host. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="port" type="xsd:string" use="optional"> + <xsd:attribute name="port" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service port. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threadpool" type="xsd:string" use="optional"> + <xsd:attribute name="threadpool" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threads" type="xsd:string" use="optional"> + <xsd:attribute name="threads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="iothreads" type="xsd:string" use="optional"> + <xsd:attribute name="corethreads" type="xsd:string"> + <xsd:annotation> + <xsd:documentation><![CDATA[ The thread pool core threads size. ]]></xsd:documentation> + </xsd:annotation> + </xsd:attribute> + <xsd:attribute name="iothreads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The IO thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="queues" type="xsd:string" use="optional"> + <xsd:attribute name="queues" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool queue size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="accepts" type="xsd:string" use="optional"> + <xsd:attribute name="accepts" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The accept connection size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="codec" type="xsd:string" use="optional"> + <xsd:attribute name="codec" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol codec. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="serialization" type="xsd:string" use="optional"> + <xsd:attribute name="serialization" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol serialization. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="keepalive" type="xsd:boolean" use="optional"> + <xsd:attribute name="keepalive" type="xsd:boolean"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol keepAlive. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="optimizer" type="xsd:string" use="optional"> + <xsd:attribute name="optimizer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The serialization optimizer. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="extension" type="xsd:string" use="optional"> + <xsd:attribute name="extension" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The extension for protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="charset" type="xsd:string" use="optional"> + <xsd:attribute name="charset" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol charset. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="payload" type="xsd:string" use="optional"> + <xsd:attribute name="payload" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The max payload. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="buffer" type="xsd:string" use="optional"> + <xsd:attribute name="buffer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The buffer size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="heartbeat" type="xsd:string" use="optional"> + <xsd:attribute name="heartbeat" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The heartbeat interval.(ms) ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="accesslog" type="xsd:string" use="optional"> + <xsd:attribute name="accesslog" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol use accesslog. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="telnet" type="xsd:string" use="optional"> + <xsd:attribute name="telnet" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol use telnet commands. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="prompt" type="xsd:string" use="optional"> + <xsd:attribute name="prompt" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol telnet prompt. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="status" type="xsd:string" use="optional"> + <xsd:attribute name="status" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol check status. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="transporter" type="xsd:string" use="optional"> + <xsd:attribute name="transporter" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol transporter type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="exchanger" type="xsd:string" use="optional"> + <xsd:attribute name="exchanger" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol exchanger type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dispather" type="xsd:string" use="optional"> + <xsd:attribute name="dispather" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. replace to "dispatcher". ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dispatcher" type="xsd:string" use="optional"> + <xsd:attribute name="dispatcher" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol dispatcher type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="networker" type="xsd:string" use="optional"> + <xsd:attribute name="networker" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol "networker" type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="server" type="xsd:string" use="optional"> + <xsd:attribute name="server" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol server type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol client type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="path" type="xsd:string" use="optional"> + <xsd:attribute name="path" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The protocol context path. replace to "contextpath". ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="contextpath" type="xsd:string" use="optional"> + <xsd:attribute name="contextpath" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol context path. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="register" type="xsd:string" use="optional"> + <xsd:attribute name="register" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol can be register to registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -955,128 +960,128 @@ <xsd:element ref="service" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> - <xsd:attribute name="host" type="xsd:string" use="optional"> + <xsd:attribute name="host" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service host. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="port" type="xsd:string" use="optional"> + <xsd:attribute name="port" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service port. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threadpool" type="xsd:string" use="optional"> + <xsd:attribute name="threadpool" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threads" type="xsd:string" use="optional"> + <xsd:attribute name="threads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="iothreads" type="xsd:string" use="optional"> + <xsd:attribute name="iothreads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The IO thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="queues" type="xsd:string" use="optional"> + <xsd:attribute name="queues" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool queue size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="accepts" type="xsd:string" use="optional"> + <xsd:attribute name="accepts" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The accept connection size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="codec" type="xsd:string" use="optional"> + <xsd:attribute name="codec" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol codec. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="charset" type="xsd:string" use="optional"> + <xsd:attribute name="charset" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol charset. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="payload" type="xsd:string" use="optional"> + <xsd:attribute name="payload" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The max payload. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="buffer" type="xsd:string" use="optional"> + <xsd:attribute name="buffer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The buffer size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="transporter" type="xsd:string" use="optional"> + <xsd:attribute name="transporter" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol transporter type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="exchanger" type="xsd:string" use="optional"> + <xsd:attribute name="exchanger" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol exchanger type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dispather" type="xsd:string" use="optional"> + <xsd:attribute name="dispather" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. replace to "dispatcher". ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dispatcher" type="xsd:string" use="optional"> + <xsd:attribute name="dispatcher" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol dispatcher type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="networker" type="xsd:string" use="optional"> + <xsd:attribute name="networker" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol "networker" type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="server" type="xsd:string" use="optional"> + <xsd:attribute name="server" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol server type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol client type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="telnet" type="xsd:string" use="optional"> + <xsd:attribute name="telnet" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol use telnet commands. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="prompt" type="xsd:string" use="optional"> + <xsd:attribute name="prompt" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol telnet prompt. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="status" type="xsd:string" use="optional"> + <xsd:attribute name="status" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol check status. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="path" type="xsd:string" use="optional"> + <xsd:attribute name="path" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The protocol context path. replace to "contextpath". ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="contextpath" type="xsd:string" use="optional"> + <xsd:attribute name="contextpath" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol context path. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="wait" type="xsd:string" use="optional"> + <xsd:attribute name="wait" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The provider shutdown wait time. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -1105,28 +1110,28 @@ </xsd:appinfo> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="ref" type="xsd:string" use="optional"> + <xsd:attribute name="ref" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service implementation instance bean id. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="class" type="xsd:string" use="optional"> + <xsd:attribute name="class" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service implementation class name. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="path" type="xsd:string" use="optional"> + <xsd:attribute name="path" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service path. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="provider" type="xsd:string" use="optional"> + <xsd:attribute name="provider" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. Replace to protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="generic" type="xsd:string" use="optional"> + <xsd:attribute name="generic" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Generic service. ]]></xsd:documentation> </xsd:annotation> @@ -1142,7 +1147,7 @@ <xsd:documentation><![CDATA[ The unique identifier for a bean. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="package" type="xsd:string" use="optional"> + <xsd:attribute name="package" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The scan package. ]]></xsd:documentation> </xsd:annotation> @@ -1288,4 +1293,4 @@ </xsd:annotation> </xsd:element> -</xsd:schema> +</xsd:schema> \ No newline at end of file diff --git a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd index adaa936..ecf7d7b 100644 --- a/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd +++ b/dubbo-config/dubbo-config-spring/src/main/resources/META-INF/dubbo.xsd @@ -15,58 +15,58 @@ </xsd:annotation> <xsd:complexType name="abstractMethodType"> - <xsd:attribute name="timeout" type="xsd:string" use="optional" default="0"> + <xsd:attribute name="timeout" type="xsd:string" default="0"> <xsd:annotation> <xsd:documentation><![CDATA[ The method invoke timeout. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="retries" type="xsd:string" use="optional"> + <xsd:attribute name="retries" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The method retry times. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="actives" type="xsd:string" use="optional"> + <xsd:attribute name="actives" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The max active requests. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="connections" type="xsd:string" use="optional"> + <xsd:attribute name="connections" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The exclusive connections. default share one connection. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="loadbalance" type="xsd:string" use="optional"> + <xsd:attribute name="loadbalance" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The method load balance. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="async" type="xsd:string" use="optional" default="false"> + <xsd:attribute name="async" type="xsd:string" default="false"> <xsd:annotation> <xsd:documentation><![CDATA[ The method does async. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="sent" type="xsd:string" use="optional"> + <xsd:attribute name="sent" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The async method return await message sent ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="mock" type="xsd:string" use="optional"> + <xsd:attribute name="mock" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service mock implementation. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="merger" type="xsd:string" use="optional"> + <xsd:attribute name="merger" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The multi-group result merger ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="validation" type="xsd:string" use="optional"> + <xsd:attribute name="validation" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service jsr303 validation, true/false. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="cache" type="xsd:string" use="optional"> + <xsd:attribute name="cache" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service cache, lru/threadlocal/jcache. ]]></xsd:documentation> </xsd:annotation> @@ -81,82 +81,82 @@ <xsd:documentation><![CDATA[ The unique identifier for a bean. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="local" type="xsd:string" use="optional"> + <xsd:attribute name="local" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service local implementation. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="stub" type="xsd:string" use="optional"> + <xsd:attribute name="stub" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use service local implementation. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="proxy" type="xsd:string" use="optional"> + <xsd:attribute name="proxy" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use proxy factory. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="cluster" type="xsd:string" use="optional"> + <xsd:attribute name="cluster" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Use cluster strategy. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="filter" type="xsd:string" use="optional"> + <xsd:attribute name="filter" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The filter. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="listener" type="xsd:string" use="optional"> + <xsd:attribute name="listener" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The listener. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="owner" type="xsd:string" use="optional"> + <xsd:attribute name="owner" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The owner. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="layer" type="xsd:string" use="optional"> + <xsd:attribute name="layer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ layer info. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="application" type="xsd:string" use="optional"> + <xsd:attribute name="application" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service application. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="module" type="xsd:string" use="optional"> + <xsd:attribute name="module" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service module. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="registry" type="xsd:string" use="optional"> + <xsd:attribute name="registry" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="monitor" type="xsd:string" use="optional"> + <xsd:attribute name="monitor" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service monitor. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="callbacks" type="xsd:string" use="optional"> + <xsd:attribute name="callbacks" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The callback instance limit peer connection.]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="onconnect" type="xsd:string" use="optional"> + <xsd:attribute name="onconnect" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service client connected. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="ondisconnect" type="xsd:string" use="optional"> + <xsd:attribute name="ondisconnect" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service client disconnected. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="scope" type="xsd:string" use="optional"> + <xsd:attribute name="scope" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Defines the service visibility, choise:[local remote]. default is remote, which can be invoked by network。 ]]></xsd:documentation> @@ -169,49 +169,49 @@ <xsd:complexType name="abstractReferenceType"> <xsd:complexContent> <xsd:extension base="abstractInterfaceType"> - <xsd:attribute name="version" type="xsd:string" use="optional" default="0.0.0"> + <xsd:attribute name="version" type="xsd:string" default="0.0.0"> <xsd:annotation> <xsd:documentation><![CDATA[ The service version. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="group" type="xsd:string" use="optional"> + <xsd:attribute name="group" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service group. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="check" type="xsd:string" use="optional"> + <xsd:attribute name="check" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Check dependency providers. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="init" type="xsd:string" use="optional"> + <xsd:attribute name="init" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Eager init reference. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="generic" type="xsd:string" use="optional"> + <xsd:attribute name="generic" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Generic service. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="injvm" type="xsd:string" use="optional"> + <xsd:attribute name="injvm" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[Deprecated. Replace to set scope=local ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="sticky" type="xsd:string" use="optional"> + <xsd:attribute name="sticky" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Enable/Disable cluster sticky policy.Default false ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="reconnect" type="xsd:string" use="optional"> + <xsd:attribute name="reconnect" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ remoting reconnect timer. false represent close reconnect. integer represent interval(ms) .default true(2000ms).]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="lazy" type="xsd:string" use="optional"> + <xsd:attribute name="lazy" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ lazy create connection. ]]></xsd:documentation> </xsd:annotation> @@ -223,86 +223,86 @@ <xsd:complexType name="abstractServiceType"> <xsd:complexContent> <xsd:extension base="abstractInterfaceType"> - <xsd:attribute name="register" type="xsd:string" use="optional"> + <xsd:attribute name="register" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service can be register to registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="version" type="xsd:string" use="optional" default="0.0.0"> + <xsd:attribute name="version" type="xsd:string" default="0.0.0"> <xsd:annotation> <xsd:documentation><![CDATA[ The service version. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="group" type="xsd:string" use="optional"> + <xsd:attribute name="group" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service group. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="deprecated" type="xsd:string" use="optional"> + <xsd:attribute name="deprecated" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ whether the service is deprecated. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="delay" type="xsd:string" use="optional" default="0"> + <xsd:attribute name="delay" type="xsd:string" default="0"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service export delay millisecond. ]]> </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="export" type="xsd:string" use="optional"> + <xsd:attribute name="export" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service is export. ]]> </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="weight" type="xsd:string" use="optional"> + <xsd:attribute name="weight" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service weight. ]]> </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="document" type="xsd:string" use="optional"> + <xsd:attribute name="document" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service document. ]]> </xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dynamic" type="xsd:string" use="optional"> + <xsd:attribute name="dynamic" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ the service registered to the registry is dynamic(true) or static(false). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="token" type="xsd:string" use="optional"> + <xsd:attribute name="token" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service use token. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="accesslog" type="xsd:string" use="optional"> + <xsd:attribute name="accesslog" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service use accesslog. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="executes" type="xsd:string" use="optional"> + <xsd:attribute name="executes" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service allow execute requests. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="protocol" type="xsd:string" use="optional"> + <xsd:attribute name="protocol" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="warmup" type="xsd:string" use="optional"> + <xsd:attribute name="warmup" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The warmup time in Milliseconds. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="serialization" type="xsd:string" use="optional"> + <xsd:attribute name="serialization" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The serialization protocol of service. ]]></xsd:documentation> </xsd:annotation> @@ -361,17 +361,17 @@ <xsd:documentation><![CDATA[ The application logger. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="registry" type="xsd:string" use="optional"> + <xsd:attribute name="registry" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The application registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="monitor" type="xsd:string" use="optional"> + <xsd:attribute name="monitor" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The application monitor. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -404,17 +404,17 @@ <xsd:documentation><![CDATA[ The module organization. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="registry" type="xsd:string" use="optional"> + <xsd:attribute name="registry" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The module registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="monitor" type="xsd:string" use="optional"> + <xsd:attribute name="monitor" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The module monitor. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -430,110 +430,110 @@ <xsd:documentation><![CDATA[ The unique identifier for a bean. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="address" type="xsd:string" use="optional"> + <xsd:attribute name="address" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry address. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="port" type="xsd:string" use="optional"> + <xsd:attribute name="port" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry default port. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="protocol" type="xsd:string" use="optional"> + <xsd:attribute name="protocol" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry lookup protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="username" type="xsd:string" use="optional"> + <xsd:attribute name="username" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry username. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="password" type="xsd:string" use="optional"> + <xsd:attribute name="password" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry password. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="transport" type="xsd:string" use="optional"> + <xsd:attribute name="transport" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol transporter type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="transporter" type="xsd:string" use="optional"> + <xsd:attribute name="transporter" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol transporter type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="server" type="xsd:string" use="optional"> + <xsd:attribute name="server" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol server type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol client type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="cluster" type="xsd:string" use="optional"> + <xsd:attribute name="cluster" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry cluster type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="group" type="xsd:string" use="optional"> + <xsd:attribute name="group" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry group. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="version" type="xsd:string" use="optional"> + <xsd:attribute name="version" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry version. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="timeout" type="xsd:string" use="optional"> + <xsd:attribute name="timeout" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The request timeout. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="session" type="xsd:string" use="optional"> + <xsd:attribute name="session" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The session timeout. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="file" type="xsd:string" use="optional"> + <xsd:attribute name="file" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The registry adddress file store. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="wait" type="xsd:string" use="optional"> + <xsd:attribute name="wait" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The wait time for shutdown. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="check" type="xsd:string" use="optional"> + <xsd:attribute name="check" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Check registry status on stratup. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dynamic" type="xsd:string" use="optional"> + <xsd:attribute name="dynamic" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ the service registered to this registry is dynamic(true) or static(false). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="register" type="xsd:string" use="optional"> + <xsd:attribute name="register" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ register service to this registry(true) or not(false). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="subscribe" type="xsd:string" use="optional"> + <xsd:attribute name="subscribe" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ subscribe service to this registry(true) or not(false). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -544,42 +544,42 @@ <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> - <xsd:attribute name="address" type="xsd:string" use="optional"> + <xsd:attribute name="address" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor address. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="protocol" type="xsd:string" use="optional"> + <xsd:attribute name="protocol" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="username" type="xsd:string" use="optional"> + <xsd:attribute name="username" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor username. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="password" type="xsd:string" use="optional"> + <xsd:attribute name="password" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor password. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="group" type="xsd:string" use="optional"> + <xsd:attribute name="group" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor group. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="version" type="xsd:string" use="optional"> + <xsd:attribute name="version" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor version. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="interval" type="xsd:string" use="optional"> + <xsd:attribute name="interval" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The monitor interval. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -597,7 +597,7 @@ <xsd:documentation><![CDATA[ The parameter value. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="hide" type="xsd:boolean" use="optional"> + <xsd:attribute name="hide" type="xsd:boolean"> <xsd:annotation> <xsd:documentation><![CDATA[ Hide parameter. ]]></xsd:documentation> </xsd:annotation> @@ -616,54 +616,54 @@ <xsd:documentation><![CDATA[ The method name (method.toString()). ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="executes" type="xsd:string" use="optional"> + <xsd:attribute name="executes" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The max active requests. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="stat" type="xsd:string" use="optional" default="-1"> + <xsd:attribute name="stat" type="xsd:string" default="-1"> <xsd:annotation> <xsd:documentation><![CDATA[ The method parameter index for statistics. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="retry" type="xsd:string" use="optional"> + <xsd:attribute name="retry" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. Replace to retries. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="reliable" type="xsd:string" use="optional" default="false"> + <xsd:attribute name="reliable" type="xsd:string" default="false"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. Replace to napoli protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="deprecated" type="xsd:string" use="optional"> + <xsd:attribute name="deprecated" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The method deprecated. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="sticky" type="xsd:string" use="optional"> + <xsd:attribute name="sticky" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Enable/Disable cluster sticky policy.Default false ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="return" type="xsd:string" use="optional"> + <xsd:attribute name="return" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Method result is return. default is true.]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="oninvoke" type="xsd:string" use="optional"> + <xsd:attribute name="oninvoke" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Method invoke trigger.]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="onreturn" type="xsd:string" use="optional"> + <xsd:attribute name="onreturn" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Method return trigger. return attribute must be true.]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="onthrow" type="xsd:string" use="optional"> + <xsd:attribute name="onthrow" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ Method on error trigger.return attribute must be true.]]></xsd:documentation> @@ -674,17 +674,17 @@ </xsd:complexType> <xsd:complexType name="argumentType"> - <xsd:attribute name="index" type="xsd:string" use="optional"> + <xsd:attribute name="index" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The argument index. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="type" type="xsd:string" use="optional"> + <xsd:attribute name="type" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The argument type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="callback" type="xsd:string" use="optional"> + <xsd:attribute name="callback" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The argument is callback. ]]></xsd:documentation> </xsd:annotation> @@ -698,32 +698,32 @@ <xsd:element ref="reference" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Transporter layer framework: netty mina.... ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threadpool" type="xsd:string" use="optional"> + <xsd:attribute name="threadpool" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Consumer threadpool: cached, fixed, limited, eager]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="corethreads" type="xsd:string" use="optional"> + <xsd:attribute name="corethreads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool core threads size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threads" type="xsd:string" use="optional"> + <xsd:attribute name="threads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="queues" type="xsd:string" use="optional"> + <xsd:attribute name="queues" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool queue size. ]]></xsd:documentation> </xsd:annotation> @@ -750,22 +750,22 @@ </xsd:appinfo> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="url" type="xsd:string" use="optional"> + <xsd:attribute name="url" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Provider list url. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Protocol transport client type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="consumer" type="xsd:string" use="optional"> + <xsd:attribute name="consumer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. Replace to reference-default. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="protocol" type="xsd:string" use="optional"> + <xsd:attribute name="protocol" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service protocol. ]]></xsd:documentation> </xsd:annotation> @@ -784,168 +784,168 @@ <xsd:documentation><![CDATA[ The unique identifier for a bean. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="name" type="xsd:string" use="optional"> + <xsd:attribute name="name" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol name. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="host" type="xsd:string" use="optional"> + <xsd:attribute name="host" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service host. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="port" type="xsd:string" use="optional"> + <xsd:attribute name="port" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service port. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threadpool" type="xsd:string" use="optional"> + <xsd:attribute name="threadpool" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threads" type="xsd:string" use="optional"> + <xsd:attribute name="threads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="corethreads" type="xsd:string" use="optional"> + <xsd:attribute name="corethreads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool core threads size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="iothreads" type="xsd:string" use="optional"> + <xsd:attribute name="iothreads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The IO thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="queues" type="xsd:string" use="optional"> + <xsd:attribute name="queues" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool queue size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="accepts" type="xsd:string" use="optional"> + <xsd:attribute name="accepts" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The accept connection size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="codec" type="xsd:string" use="optional"> + <xsd:attribute name="codec" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol codec. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="serialization" type="xsd:string" use="optional"> + <xsd:attribute name="serialization" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol serialization. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="keepalive" type="xsd:boolean" use="optional"> + <xsd:attribute name="keepalive" type="xsd:boolean"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol keepAlive. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="optimizer" type="xsd:string" use="optional"> + <xsd:attribute name="optimizer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The serialization optimizer. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="extension" type="xsd:string" use="optional"> + <xsd:attribute name="extension" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The extension for protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="charset" type="xsd:string" use="optional"> + <xsd:attribute name="charset" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol charset. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="payload" type="xsd:string" use="optional"> + <xsd:attribute name="payload" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The max payload. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="buffer" type="xsd:string" use="optional"> + <xsd:attribute name="buffer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The buffer size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="heartbeat" type="xsd:string" use="optional"> + <xsd:attribute name="heartbeat" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The heartbeat interval.(ms) ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="accesslog" type="xsd:string" use="optional"> + <xsd:attribute name="accesslog" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol use accesslog. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="telnet" type="xsd:string" use="optional"> + <xsd:attribute name="telnet" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol use telnet commands. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="prompt" type="xsd:string" use="optional"> + <xsd:attribute name="prompt" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol telnet prompt. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="status" type="xsd:string" use="optional"> + <xsd:attribute name="status" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol check status. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="transporter" type="xsd:string" use="optional"> + <xsd:attribute name="transporter" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol transporter type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="exchanger" type="xsd:string" use="optional"> + <xsd:attribute name="exchanger" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol exchanger type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dispather" type="xsd:string" use="optional"> + <xsd:attribute name="dispather" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. replace to "dispatcher". ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dispatcher" type="xsd:string" use="optional"> + <xsd:attribute name="dispatcher" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol dispatcher type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="networker" type="xsd:string" use="optional"> + <xsd:attribute name="networker" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol "networker" type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="server" type="xsd:string" use="optional"> + <xsd:attribute name="server" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol server type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol client type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="path" type="xsd:string" use="optional"> + <xsd:attribute name="path" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The protocol context path. replace to "contextpath". ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="contextpath" type="xsd:string" use="optional"> + <xsd:attribute name="contextpath" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol context path. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="register" type="xsd:string" use="optional"> + <xsd:attribute name="register" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol can be register to registry. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -960,128 +960,128 @@ <xsd:element ref="service" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> - <xsd:attribute name="host" type="xsd:string" use="optional"> + <xsd:attribute name="host" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service host. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="port" type="xsd:string" use="optional"> + <xsd:attribute name="port" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service port. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threadpool" type="xsd:string" use="optional"> + <xsd:attribute name="threadpool" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="threads" type="xsd:string" use="optional"> + <xsd:attribute name="threads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="iothreads" type="xsd:string" use="optional"> + <xsd:attribute name="iothreads" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The IO thread pool size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="queues" type="xsd:string" use="optional"> + <xsd:attribute name="queues" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The thread pool queue size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="accepts" type="xsd:string" use="optional"> + <xsd:attribute name="accepts" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The accept connection size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="codec" type="xsd:string" use="optional"> + <xsd:attribute name="codec" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol codec. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="charset" type="xsd:string" use="optional"> + <xsd:attribute name="charset" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol charset. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="payload" type="xsd:string" use="optional"> + <xsd:attribute name="payload" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The max payload. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="buffer" type="xsd:string" use="optional"> + <xsd:attribute name="buffer" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The buffer size. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="transporter" type="xsd:string" use="optional"> + <xsd:attribute name="transporter" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol transporter type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="exchanger" type="xsd:string" use="optional"> + <xsd:attribute name="exchanger" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol exchanger type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dispather" type="xsd:string" use="optional"> + <xsd:attribute name="dispather" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. replace to "dispatcher". ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="dispatcher" type="xsd:string" use="optional"> + <xsd:attribute name="dispatcher" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol dispatcher type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="networker" type="xsd:string" use="optional"> + <xsd:attribute name="networker" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol "networker" type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="server" type="xsd:string" use="optional"> + <xsd:attribute name="server" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol server type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="client" type="xsd:string" use="optional"> + <xsd:attribute name="client" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol client type. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="telnet" type="xsd:string" use="optional"> + <xsd:attribute name="telnet" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol use telnet commands. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="prompt" type="xsd:string" use="optional"> + <xsd:attribute name="prompt" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol telnet prompt. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="status" type="xsd:string" use="optional"> + <xsd:attribute name="status" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol check status. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="path" type="xsd:string" use="optional"> + <xsd:attribute name="path" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The protocol context path. replace to "contextpath". ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="contextpath" type="xsd:string" use="optional"> + <xsd:attribute name="contextpath" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The protocol context path. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="wait" type="xsd:string" use="optional"> + <xsd:attribute name="wait" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The provider shutdown wait time. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="default" type="xsd:string" use="optional"> + <xsd:attribute name="default" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Is default. ]]></xsd:documentation> </xsd:annotation> @@ -1110,28 +1110,28 @@ </xsd:appinfo> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="ref" type="xsd:string" use="optional"> + <xsd:attribute name="ref" type="xsd:string"> <xsd:annotation> <xsd:documentation> <![CDATA[ The service implementation instance bean id. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="class" type="xsd:string" use="optional"> + <xsd:attribute name="class" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service implementation class name. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="path" type="xsd:string" use="optional"> + <xsd:attribute name="path" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The service path. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="provider" type="xsd:string" use="optional"> + <xsd:attribute name="provider" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Deprecated. Replace to protocol. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="generic" type="xsd:string" use="optional"> + <xsd:attribute name="generic" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ Generic service. ]]></xsd:documentation> </xsd:annotation> @@ -1147,7 +1147,7 @@ <xsd:documentation><![CDATA[ The unique identifier for a bean. ]]></xsd:documentation> </xsd:annotation> </xsd:attribute> - <xsd:attribute name="package" type="xsd:string" use="optional"> + <xsd:attribute name="package" type="xsd:string"> <xsd:annotation> <xsd:documentation><![CDATA[ The scan package. ]]></xsd:documentation> </xsd:annotation> diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/protocol/QosProtocolWrapper.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/protocol/QosProtocolWrapper.java index 681f522..5c83ab0 100644 --- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/protocol/QosProtocolWrapper.java +++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/protocol/QosProtocolWrapper.java @@ -18,6 +18,9 @@ package org.apache.dubbo.qos.protocol; import org.apache.dubbo.common.Constants; import org.apache.dubbo.common.URL; +import org.apache.dubbo.common.logger.Logger; +import org.apache.dubbo.common.logger.LoggerFactory; +import org.apache.dubbo.qos.common.QosConstants; import org.apache.dubbo.qos.server.Server; import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.Invoker; @@ -30,7 +33,11 @@ import static org.apache.dubbo.common.Constants.ACCEPT_FOREIGN_IP; import static org.apache.dubbo.common.Constants.QOS_ENABLE; import static org.apache.dubbo.common.Constants.QOS_PORT; + public class QosProtocolWrapper implements Protocol { + + private final Logger logger = LoggerFactory.getLogger(QosProtocolWrapper.class); + private static AtomicBoolean hasStarted = new AtomicBoolean(false); private Protocol protocol; @@ -76,20 +83,23 @@ public class QosProtocolWrapper implements Protocol { } try { - boolean qosEnable = Boolean.parseBoolean(url.getParameter(QOS_ENABLE,"true")); + boolean qosEnable = url.getParameter(QOS_ENABLE,true); if (!qosEnable) { + logger.info("qos won't be started because it is disabled. " + + "Please check dubbo.application.qos.enable is configured either in system property, " + + "dubbo.properties or XML/spring-boot configuration."); return; } - int port = Integer.parseInt(url.getParameter(QOS_PORT,"22222")); - boolean acceptForeignIp = Boolean.parseBoolean(url.getParameter(ACCEPT_FOREIGN_IP,"true")); + int port = url.getParameter(QOS_PORT, QosConstants.DEFAULT_PORT); + boolean acceptForeignIp = Boolean.parseBoolean(url.getParameter(ACCEPT_FOREIGN_IP,"false")); Server server = Server.getInstance(); server.setPort(port); server.setAcceptForeignIp(acceptForeignIp); server.start(); } catch (Throwable throwable) { - //throw new RpcException("fail to start qos server", throwable); + logger.warn("Fail to start qos server: ", throwable); } } diff --git a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/protocol/QosProtocolWrapperTest.java b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/protocol/QosProtocolWrapperTest.java index 85851cc..1ac65d4 100644 --- a/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/protocol/QosProtocolWrapperTest.java +++ b/dubbo-plugin/dubbo-qos/src/test/java/org/apache/dubbo/qos/protocol/QosProtocolWrapperTest.java @@ -42,9 +42,9 @@ public class QosProtocolWrapperTest { @Before public void setUp() throws Exception { - when(url.getParameter(Constants.QOS_ENABLE, "true")).thenReturn("true"); - when(url.getParameter(Constants.QOS_PORT, "22222")).thenReturn("12345"); - when(url.getParameter(Constants.ACCEPT_FOREIGN_IP, "true")).thenReturn("false"); + when(url.getParameter(Constants.QOS_ENABLE, true)).thenReturn(true); + when(url.getParameter(Constants.QOS_PORT, 22222)).thenReturn(12345); + when(url.getParameter(Constants.ACCEPT_FOREIGN_IP, true)).thenReturn(false); when(invoker.getUrl()).thenReturn(url); when(url.getProtocol()).thenReturn(Constants.REGISTRY_PROTOCOL); } diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java index b1e4c3d..6374456 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java @@ -136,26 +136,26 @@ public class RegistryProtocol implements Protocol { //registry provider final Registry registry = getRegistry(originInvoker); - final URL registedProviderUrl = getRegistedProviderUrl(originInvoker); + final URL registeredProviderUrl = getRegisteredProviderUrl(originInvoker); //to judge to delay publish whether or not - boolean register = registedProviderUrl.getParameter("register", true); + boolean register = registeredProviderUrl.getParameter("register", true); - ProviderConsumerRegTable.registerProvider(originInvoker, registryUrl, registedProviderUrl); + ProviderConsumerRegTable.registerProvider(originInvoker, registryUrl, registeredProviderUrl); if (register) { - register(registryUrl, registedProviderUrl); + register(registryUrl, registeredProviderUrl); ProviderConsumerRegTable.getProviderWrapper(originInvoker).setReg(true); } // Subscribe the override data // FIXME When the provider subscribes, it will affect the scene : a certain JVM exposes the service and call the same service. Because the subscribed is cached key with the name of the service, it causes the subscription information to cover. - final URL overrideSubscribeUrl = getSubscribedOverrideUrl(registedProviderUrl); + final URL overrideSubscribeUrl = getSubscribedOverrideUrl(registeredProviderUrl); final OverrideListener overrideSubscribeListener = new OverrideListener(overrideSubscribeUrl, originInvoker); overrideListeners.put(overrideSubscribeUrl, overrideSubscribeListener); registry.subscribe(overrideSubscribeUrl, overrideSubscribeListener); //Ensure that a new exporter instance is returned every time export - return new DestroyableExporter<T>(exporter, originInvoker, overrideSubscribeUrl, registedProviderUrl); + return new DestroyableExporter<T>(exporter, originInvoker, overrideSubscribeUrl, registeredProviderUrl); } @SuppressWarnings("unchecked") @@ -220,10 +220,10 @@ public class RegistryProtocol implements Protocol { * @param originInvoker * @return */ - private URL getRegistedProviderUrl(final Invoker<?> originInvoker) { + private URL getRegisteredProviderUrl(final Invoker<?> originInvoker) { URL providerUrl = getProviderUrl(originInvoker); //The address you see at the registry - final URL registedProviderUrl = providerUrl.removeParameters(getFilteredKeys(providerUrl)) + return providerUrl.removeParameters(getFilteredKeys(providerUrl)) .removeParameter(Constants.MONITOR_KEY) .removeParameter(Constants.BIND_IP_KEY) .removeParameter(Constants.BIND_PORT_KEY) @@ -232,7 +232,6 @@ public class RegistryProtocol implements Protocol { .removeParameter(ACCEPT_FOREIGN_IP) .removeParameter(VALIDATION_KEY) .removeParameter(INTERFACES); - return registedProviderUrl; } private URL getSubscribedOverrideUrl(URL registedProviderUrl) {