- Notifications
You must be signed in to change notification settings - Fork21
r2dbc/r2dbc-proxy
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This project contains the proxy framework of theR2DBC SPI. R2DBC is aReactive Foundation project.
This project is governed by theR2DBC Code of Conduct. By participating, you are expected to uphold this code of conduct. Please report unacceptable behavior toinfo@r2dbc.io.
Artifacts can be found onMaven Central:
<dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-proxy</artifactId> <version>${version}</version></dependency>
If you'd rather like the latest snapshots of the upcoming major version, use our Maven snapshot repository and declare the appropriate dependency version.
<dependency> <groupId>io.r2dbc</groupId> <artifactId>r2dbc-proxy</artifactId> <version>${version}.BUILD-SNAPSHOT</version></dependency><repository> <id>sonatype-nexus-snapshots</id> <name>Sonatype OSS Snapshot Repository</name> <url>https://oss.sonatype.org/content/repositories/snapshots</url></repository>
R2DBC Proxy | R2DBC SPI |
---|---|
1.0.x ,1.1.x | 1.0.x |
0.9.x | 0.9.x |
0.8.x | 0.8.x |
- Current release
- Snapshot
- Other versions (TBD)
Here shows how to create a proxyConnectionFactory
.
ConnectionFactoryconnectionFactory =ConnectionFactories.get("r2dbc:proxy:<driver>//<host>:<port>>/<database>[?proxyListener=<fqdn>]");
Sample URLs:
# with driverr2dbc:proxy:postgresql://localhost:5432/myDB?proxyListener=com.example.MyListener# with poolingr2dbc:proxy:pool:postgresql://localhost:5432/myDB?proxyListener=com.example.MyListener&maxIdleTime=PT60S
ConnectionFactoryconnectionFactory =ConnectionFactories.get(ConnectionFactoryOptions.builder() .option(DRIVER,"proxy") .option(PROTOCOL,"postgresql") .build());Mono<Connection>connection =connectionFactory.create();
Supported Connection Factory Discovery options:
Option | Description |
---|---|
driver | Must beproxy |
protocol | Delegating connection factory driver |
proxyListener | Comma separated list of fully qualified proxy listener class names(Optional) |
When programmaticallyConnectionFactoryOptions
are constructed,proxyListener
option allows following values:
- Comma separated list of fully qualified proxy listener class names
- Proxy listener class
- Proxy listener instance
- Collection of above
ConnectionFactoryoriginal = ...ConnectionFactoryconnectionFactory =ProxyConnectionFactory.builder(original) .onAfterQuery(queryInfo -> ...// after query callback logic ) .onBeforeMethod(methodInfo -> ...// before method callback logic ) .listener(...)// add listener .build();Publisher<?extendsConnection>connectionPublisher =connectionFactory.create();// Alternative: Creating a Mono using Project ReactorMono<Connection>connectionMono =Mono.from(connectionFactory.create());
r2dbc-proxy-samples repository contains sample listener implementations.
- Distributed tracing -TracingExecutionListener
- Micrometer metrics -MetricsExecutionListener
Having trouble with R2DBC? We'd love to help!
- Check thespec documentation, andJavadoc.
- If you are upgrading, check out thechangelog for "new and noteworthy" features.
- Ask a question - we monitorstackoverflow.com for questionstagged with
r2dbc
.You can also chat with the community onGitter. - Report bugs with R2DBC Proxy atgithub.com/r2dbc/r2dbc-proxy/issues.
R2DBC uses GitHub as issue tracking system to record bugs and feature requests.If you want to raise an issue, please follow the recommendations below:
- Before you log a bug, please search theissue tracker to see if someone has already reported the problem.
- If the issue doesn't already exist,create a new issue.
- Please provide as much information as possible with the issue report, we like to know the version of R2DBC Proxy that you are using and JVM version.
- If you need to paste code, or include a stack trace use Markdown ``` escapes before and after your text.
- If possible try to create a test-case or project that replicates the issue.Attach a link to your code or a compressed file containing your code.
You don't need to build from source to use R2DBC Proxy (binaries in Maven Central), but if you want to try out the latest and greatest, R2DBC Proxy can be easily built with themaven wrapper. You also need JDK 1.8 and Docker to run integration tests.
$ ./mvnw clean install
If you want to build with the regularmvn
command, you will needMaven v3.5.0 or above.
Also seeCONTRIBUTING.adoc if you wish to submit pull requests. Commits requireSigned-off-by
(git commit -s
) to ensureDeveloper Certificate of Origin.
Building the documentation usesmaven asciidoctor plugin.
$ ./mvnw clean exec:java@generate-micrometer-docs asciidoctor:process-asciidoc
To stage a release to Maven Central, you need to create a release tag (release version) that contains the desired state and version numbers (mvn versions:set versions:commit -q -o -DgenerateBackupPoms=false -DnewVersion=x.y.z.(RELEASE|Mnnn|RCnnn
) and force-push it to therelease-0.x
branch. This push will trigger a Maven staging build (seebuild-and-deploy-to-maven-central.sh
).
This project is released under version 2.0 of theApache License.
About
R2DBC Proxying Framework
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors9
Uh oh!
There was an error while loading.Please reload this page.