Skip to content

Commit 0764d05

Browse files
JohnNiangjchrys
authored andcommitted
Refactor create method of MySQLConnectionFactory
1 parent abaa2d1 commit 0764d05

File tree

1 file changed

+39
-42
lines changed

1 file changed

+39
-42
lines changed

r2dbc-mysql/src/main/java/io/asyncer/r2dbc/mysql/MySqlConnectionFactory.java

Lines changed: 39 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -42,68 +42,65 @@
4242
*/
4343
public final class MySqlConnectionFactory implements ConnectionFactory {
4444

45-
private final Mono<? extends MySqlConnection> client;
45+
private final MySqlConnectionConfiguration configuration;
46+
private final LazyQueryCache queryCache;
4647

47-
private MySqlConnectionFactory(Mono<? extends MySqlConnection> client) {
48-
this.client = client;
48+
private MySqlConnectionFactory(MySqlConnectionConfiguration configuration) {
49+
this.configuration = configuration;
50+
this.queryCache = new LazyQueryCache(configuration.getQueryCacheSize());
4951
}
5052

5153
@Override
5254
public Mono<? extends MySqlConnection> create() {
53-
return client;
54-
}
55-
56-
@Override
57-
public ConnectionFactoryMetadata getMetadata() {
58-
return MySqlConnectionFactoryMetadata.INSTANCE;
59-
}
55+
MySqlSslConfiguration ssl;
56+
SocketAddress address;
6057

61-
/**
62-
* Creates a {@link MySqlConnectionFactory} with a {@link MySqlConnectionConfiguration}.
63-
*
64-
* @param configuration the {@link MySqlConnectionConfiguration}.
65-
* @return configured {@link MySqlConnectionFactory}.
66-
*/
67-
public static MySqlConnectionFactory from(MySqlConnectionConfiguration configuration) {
68-
requireNonNull(configuration, "configuration must not be null");
69-
70-
LazyQueryCache queryCache = new LazyQueryCache(configuration.getQueryCacheSize());
71-
72-
return new MySqlConnectionFactory(Mono.defer(() -> {
73-
MySqlSslConfiguration ssl;
74-
SocketAddress address;
75-
76-
if (configuration.isHost()) {
77-
ssl = configuration.getSsl();
78-
address = InetSocketAddress.createUnresolved(configuration.getDomain(),
58+
if (configuration.isHost()) {
59+
ssl = configuration.getSsl();
60+
address = InetSocketAddress.createUnresolved(configuration.getDomain(),
7961
configuration.getPort());
80-
} else {
81-
ssl = MySqlSslConfiguration.disabled();
82-
address = new DomainSocketAddress(configuration.getDomain());
83-
}
62+
} else {
63+
ssl = MySqlSslConfiguration.disabled();
64+
address = new DomainSocketAddress(configuration.getDomain());
65+
}
8466

85-
String user = configuration.getUser();
86-
CharSequence password = configuration.getPassword();
87-
Publisher<String> passwordPublisher = configuration.getPasswordPublisher();
67+
String user = configuration.getUser();
68+
CharSequence password = configuration.getPassword();
69+
Publisher<String> passwordPublisher = configuration.getPasswordPublisher();
8870

89-
if (Objects.nonNull(passwordPublisher)) {
90-
return Mono.from(passwordPublisher).flatMap(token -> getMySqlConnection(
71+
if (Objects.nonNull(passwordPublisher)) {
72+
return Mono.from(passwordPublisher).flatMap(token -> getMySqlConnection(
9173
configuration, ssl,
9274
queryCache,
9375
address,
9476
user,
9577
token
96-
));
97-
}
78+
));
79+
}
9880

99-
return getMySqlConnection(
81+
return getMySqlConnection(
10082
configuration, ssl,
10183
queryCache,
10284
address,
10385
user,
10486
password
105-
);
106-
}));
87+
);
88+
}
89+
90+
@Override
91+
public ConnectionFactoryMetadata getMetadata() {
92+
return MySqlConnectionFactoryMetadata.INSTANCE;
93+
}
94+
95+
/**
96+
* Creates a {@link MySqlConnectionFactory} with a {@link MySqlConnectionConfiguration}.
97+
*
98+
* @param configuration the {@link MySqlConnectionConfiguration}.
99+
* @return configured {@link MySqlConnectionFactory}.
100+
*/
101+
public static MySqlConnectionFactory from(MySqlConnectionConfiguration configuration) {
102+
requireNonNull(configuration, "configuration must not be null");
103+
return new MySqlConnectionFactory(configuration);
107104
}
108105

109106
/**

0 commit comments

Comments
 (0)