Changing data types in xsd file to all strings. Fix #848

added  a test case to cover the change
pull/860/head
Rui Gu 8 years ago
parent c02a443f33
commit 8efdec0ac2

@ -193,7 +193,7 @@
<xsd:complexType abstract="true" name="abstractConfig">
<xsd:complexContent>
<xsd:extension base="baseType">
<xsd:attribute name="threads" type="xsd:int">
<xsd:attribute name="threads" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Threads amount shared between all redis node clients.
@ -202,7 +202,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="netty-threads" type="xsd:int">
<xsd:attribute name="netty-threads" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Netty worker threads.
@ -212,7 +212,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="redisson-reference-enabled"
type="xsd:boolean">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Config option for enabling Redisson Reference feature.
@ -222,7 +222,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="use-linux-native-epoll"
type="xsd:boolean">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Config option for using linux native epoll. A separate dependency is
@ -282,7 +282,7 @@
</xsd:complexType>
<xsd:complexType abstract="true" name="baseConfig">
<xsd:attribute name="idle-connection-timeout" type="xsd:int">
<xsd:attribute name="idle-connection-timeout" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
If pooled connection not used for a <code>timeout</code> time
@ -294,7 +294,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="ping-timeout" type="xsd:int">
<xsd:attribute name="ping-timeout" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Ping timeout used in <code>Node.ping</code> and <code>Node.pingAll<code>
@ -304,7 +304,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="connect-timeout" type="xsd:int">
<xsd:attribute name="connect-timeout" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Timeout during connecting to any Redis server.
@ -314,7 +314,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="timeout" type="xsd:int">
<xsd:attribute name="timeout" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis server response timeout. Starts to countdown when Redis command
@ -324,7 +324,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="retry-attempts" type="xsd:int">
<xsd:attribute name="retry-attempts" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Command retry attempts.
@ -333,7 +333,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="retry-interval" type="xsd:int">
<xsd:attribute name="retry-interval" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Command retry interval.
@ -342,7 +342,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="reconnection-timeout" type="xsd:int">
<xsd:attribute name="reconnection-timeout" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Reconnection attempt timeout to Redis server then it has been excluded
@ -357,7 +357,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="failed-attempts" type="xsd:int">
<xsd:attribute name="failed-attempts" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis server will be excluded from the list of available nodes when
@ -377,7 +377,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="subscriptions-per-connection" type="xsd:int">
<xsd:attribute name="subscriptions-per-connection" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Subscriptions per Redis connection limit.
@ -409,7 +409,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="slave-connection-minimum-idle-size"
type="xsd:int">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis 'slave' node minimum idle connection amount for <b>each</b> slave
@ -419,7 +419,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="slave-connection-pool-size" type="xsd:int">
<xsd:attribute name="slave-connection-pool-size" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis 'slave' node maximum connection pool size for <b>each</b> slave
@ -430,7 +430,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="master-connection-minimum-idle-size"
type="xsd:int">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis 'master' node minimum idle connection amount for <b>each</b> slave
@ -441,7 +441,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="master-connection-pool-size"
type="xsd:int">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis 'master' node maximum connection pool size.
@ -470,7 +470,7 @@
</xsd:attribute>
<xsd:attribute
name="subscription-connection-minimum-idle-size"
type="xsd:int">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Minimum idle subscription connection amount.
@ -480,7 +480,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="subscription-connection-pool-size"
type="xsd:int">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis subscription connection maximum pool size.
@ -500,7 +500,7 @@
<xsd:element ref="node-address" minOccurs="1"
maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="scan-interval" type="xsd:int">
<xsd:attribute name="scan-interval" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Replication group scan interval in milliseconds.
@ -516,7 +516,7 @@
<xsd:complexType abstract="true" name="abstractReplicatedType">
<xsd:complexContent>
<xsd:extension base="abstractClusterType">
<xsd:attribute name="database" type="xsd:int">
<xsd:attribute name="database" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Database index used for Redis connection.
@ -660,7 +660,7 @@
</xsd:complexType>
<xsd:complexType abstract="true" name="abstractRemoteOptionsType">
<xsd:attribute name="within" use="required" type="xsd:long">
<xsd:attribute name="within" use="required" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Expected time value.
@ -739,7 +739,7 @@
</xsd:attribute>
<xsd:attribute
name="subscription-connection-minimum-idle-size"
type="xsd:int">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Minimum idle subscription connection amount.
@ -749,7 +749,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="subscription-connection-pool-size"
type="xsd:int">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis subscription connection maximum pool size.
@ -759,7 +759,7 @@
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="connection-minimum-idle-size"
type="xsd:int">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Minimum idle Redis connection amount.
@ -768,7 +768,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="connection-pool-size" type="xsd:int">
<xsd:attribute name="connection-pool-size" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis connection maximum pool size.
@ -777,7 +777,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="database" type="xsd:int">
<xsd:attribute name="database" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Database index used for Redis connection.
@ -786,7 +786,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="dns-monitoring" type="xsd:boolean">
<xsd:attribute name="dns-monitoring" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Should the server address be monitored for changes in DNS? Useful for
@ -799,7 +799,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="dns-monitoring-interval" type="xsd:long">
<xsd:attribute name="dns-monitoring-interval" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
DNS change monitoring interval in milliseconds.
@ -837,7 +837,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="database" type="xsd:int">
<xsd:attribute name="database" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Database index used for Redis connection.
@ -874,7 +874,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="database" type="xsd:int">
<xsd:attribute name="database" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Database index used for Redis connection.
@ -924,7 +924,7 @@
]]></xsd:documentation>
</xsd:annotation>
<xsd:attribute name="invalidate-entry-on-change"
type="xsd:boolean">
type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Sets entry invalidation behavior. if <code>true</code> then invalidation
@ -951,14 +951,14 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="cache-size" type="xsd:int">
<xsd:attribute name="cache-size" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Sets cache size. If size is <code>0</code> then local cache is unbounded.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="time-to-live" type="xsd:long">
<xsd:attribute name="time-to-live" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Sets time to live value for each map entry in cache.
@ -977,7 +977,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="max-idle" type="xsd:long">
<xsd:attribute name="max-idle" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Sets max idle time value for each map entry in cache.
@ -2093,7 +2093,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="concurrent-workers" type="xsd:int">
<xsd:attribute name="concurrent-workers" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Remote service (RPC service) concurrent workers amount. Remote
@ -2231,7 +2231,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="port" type="xsd:int" default="6379">
<xsd:attribute name="port" type="xsd:string" default="6379">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis server port
@ -2240,7 +2240,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="connection-timeout" type="xsd:int">
<xsd:attribute name="connection-timeout" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Timeout during connecting to any Redis server.
@ -2250,7 +2250,7 @@
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="command-timeout" type="xsd:int">
<xsd:attribute name="command-timeout" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Redis server command timeout. Starts to countdown when Redis command

@ -1,12 +1,20 @@
package org.redisson.spring.support;
import java.io.IOException;
import java.util.List;
import io.netty.channel.EventLoopGroup;
import java.lang.reflect.Method;
import java.util.concurrent.Executor;
import org.junit.Test;
import org.redisson.ClusterRunner;
import org.redisson.RedisRunner;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import static org.junit.Assert.*;
import org.redisson.client.codec.Codec;
import org.redisson.codec.CodecProvider;
import org.redisson.config.SingleServerConfig;
import org.redisson.liveobject.provider.ResolverProvider;
/**
*
@ -30,6 +38,84 @@ public class SpringNamespaceWikiTest {
}
}
@Test
public void testSingleWithPlaceholder() throws Exception {
RedisRunner.RedisProcess run = new RedisRunner()
.requirepass("do_not_use_if_it_is_not_set")
.nosave()
.randomDir()
.run();
System.setProperty("redisson.redisAddress", run.getRedisServerAddressAndPort());
System.setProperty("redisson.threads", "1");
System.setProperty("redisson.nettyThreads", "2");
System.setProperty("redisson.codecRef", "myCodec");
System.setProperty("redisson.useLinuxNativeEpoll", "false");
System.setProperty("redisson.redissonReferenceEnabled", "false");
System.setProperty("redisson.codecProviderRef", "myCodecProvider");
System.setProperty("redisson.resolverProviderRef", "myResolverProvider");
System.setProperty("redisson.executorRef", "myExecutor");
System.setProperty("redisson.eventLoopGroupRef", "myEventLoopGroup");
System.setProperty("redisson.idleConnectionTimeout", "10000");
System.setProperty("redisson.pingTimeout", "20000");
System.setProperty("redisson.connectTimeout", "30000");
System.setProperty("redisson.timeout", "40000");
System.setProperty("redisson.retryAttempts", "5");
System.setProperty("redisson.retryInterval", "60000");
System.setProperty("redisson.reconnectionTimeout", "70000");
System.setProperty("redisson.failedAttempts", "8");
System.setProperty("redisson.password", "do_not_use_if_it_is_not_set");
System.setProperty("redisson.subscriptionsPerConnection", "10");
System.setProperty("redisson.clientName", "client_name");
System.setProperty("redisson.subscriptionConnectionMinimumIdleSize", "11");
System.setProperty("redisson.subscriptionConnectionPoolSize", "12");
System.setProperty("redisson.connectionMinimumIdleSize", "13");
System.setProperty("redisson.connectionPoolSize", "14");
System.setProperty("redisson.database", "15");
System.setProperty("redisson.dnsMonitoring", "false");
System.setProperty("redisson.dnsMonitoringInterval", "80000");
try {
ClassPathXmlApplicationContext context
= new ClassPathXmlApplicationContext("classpath:org/redisson/spring/support/namespace_wiki_single_with_placeholder.xml");
RedissonClient redisson = context.getBean("myId", RedissonClient.class);
assertNotNull(redisson);
Config config = redisson.getConfig();
assertEquals(1, config.getThreads());
assertEquals(2, config.getNettyThreads());
assertSame(context.getBean("myCodec", Codec.class), config.getCodec());
assertEquals(false, config.isUseLinuxNativeEpoll());
assertEquals(false, config.isRedissonReferenceEnabled());
assertSame(context.getBean("myCodecProvider", CodecProvider.class), config.getCodecProvider());
assertSame(context.getBean("myResolverProvider", ResolverProvider.class), config.getResolverProvider());
assertSame(context.getBean("myExecutor", Executor.class), config.getExecutor());
assertSame(context.getBean("myEventLoopGroup", EventLoopGroup.class), config.getEventLoopGroup());
Method method = Config.class.getDeclaredMethod("getSingleServerConfig", (Class<?>[]) null);
method.setAccessible(true);
SingleServerConfig single = (SingleServerConfig) method.invoke(config, (Object[]) null);
assertEquals(10000, single.getIdleConnectionTimeout());
assertEquals(20000, single.getPingTimeout());
assertEquals(30000, single.getConnectTimeout());
assertEquals(40000, single.getTimeout());
assertEquals(5, single.getRetryAttempts());
assertEquals(60000, single.getRetryInterval());
assertEquals(70000, single.getReconnectionTimeout());
assertEquals(8, single.getFailedAttempts());
assertEquals("do_not_use_if_it_is_not_set", single.getPassword());
assertEquals(10, single.getSubscriptionsPerConnection());
assertEquals("client_name", single.getClientName());
assertEquals(11, single.getSubscriptionConnectionMinimumIdleSize());
assertEquals(12, single.getSubscriptionConnectionPoolSize());
assertEquals(13, single.getConnectionMinimumIdleSize());
assertEquals(14, single.getConnectionPoolSize());
assertEquals(15, single.getDatabase());
assertEquals(false, single.isDnsMonitoring());
assertEquals(80000, single.getDnsMonitoringInterval());
((ConfigurableApplicationContext) context).close();
} finally {
run.stop();
}
}
@Test
public void testMasterSlave() throws Exception {
RedisRunner.RedisProcess master = new RedisRunner()

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:redisson="http://redisson.org/schema/redisson"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://redisson.org/schema/redisson classpath:org/redisson/spring/support/redisson-1.0.xsd
">
<context:property-placeholder system-properties-mode="OVERRIDE"/>
<bean id="myCodec" class="org.redisson.codec.MsgPackJacksonCodec"/>
<bean id="myCodecProvider" class="org.redisson.codec.DefaultCodecProvider"/>
<bean id="myResolverProvider" class="org.redisson.liveobject.provider.DefaultResolverProvider"/>
<bean id="myExecutor" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod" value="java.util.concurrent.Executors.newFixedThreadPool"/>
<property name="arguments" value="8"/>
</bean>
<bean id="myEventLoopGroup" class="io.netty.channel.nio.NioEventLoopGroup"/>
<redisson:client
id="myId"
name="name1,name2"
threads="${redisson.threads}"
netty-threads="${redisson.nettyThreads}"
codec-ref="${redisson.codecRef}"
use-linux-native-epoll="${redisson.useLinuxNativeEpoll}"
redisson-reference-enabled="${redisson.redissonReferenceEnabled}"
codec-provider-ref="${redisson.codecProviderRef}"
resolver-provider-ref="${redisson.resolverProviderRef}"
executor-ref="${redisson.executorRef}"
event-loop-group-ref="${redisson.eventLoopGroupRef}"
>
<redisson:single-server
idle-connection-timeout="${redisson.idleConnectionTimeout}"
ping-timeout="${redisson.pingTimeout}"
connect-timeout="${redisson.connectTimeout}"
timeout="${redisson.timeout}"
retry-attempts="${redisson.retryAttempts}"
retry-interval="${redisson.retryInterval}"
reconnection-timeout="${redisson.reconnectionTimeout}"
failed-attempts="${redisson.failedAttempts}"
password="${redisson.password}"
subscriptions-per-connection="${redisson.subscriptionsPerConnection}"
client-name="${redisson.clientName}"
address="${redisson.redisAddress}"
subscription-connection-minimum-idle-size="${redisson.subscriptionConnectionMinimumIdleSize}"
subscription-connection-pool-size="${redisson.subscriptionConnectionPoolSize}"
connection-minimum-idle-size="${redisson.connectionMinimumIdleSize}"
connection-pool-size="${redisson.connectionPoolSize}"
database="${redisson.database}"
dns-monitoring="${redisson.dnsMonitoring}"
dns-monitoring-interval="${redisson.dnsMonitoringInterval}"
/>
</redisson:client>
</beans>
Loading…
Cancel
Save