https://github.com/nosan/embedded-cassandra-spring-boot-starter
Embedded Cassandra Spring Boot Starter
https://github.com/nosan/embedded-cassandra-spring-boot-starter
embedded-cassandra java spring-boot-starter
Last synced: about 1 year ago
JSON representation
Embedded Cassandra Spring Boot Starter
- Host: GitHub
- URL: https://github.com/nosan/embedded-cassandra-spring-boot-starter
- Owner: nosan
- License: apache-2.0
- Created: 2019-02-09T22:18:42.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-27T03:57:10.000Z (about 3 years ago)
- Last Synced: 2023-07-26T22:02:38.786Z (almost 3 years ago)
- Topics: embedded-cassandra, java, spring-boot-starter
- Language: Java
- Homepage:
- Size: 424 KB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Embedded Cassandra [Spring Boot Starter]

[](https://codecov.io/gh/nosan/embedded-cassandra-spring-boot-starter)
[](https://maven-badges.herokuapp.com/maven-central/com.github.nosan/embedded-cassandra-spring-boot-starter/)
[](https://javadoc.io/doc/com.github.nosan/embedded-cassandra-spring-boot-autoconfigure)
This project includes `AutoConfiguration` for [Embedded Cassandra](https://github.com/nosan/embedded-cassandra).
To configure `CassandraBuilder` before it builds `Cassandra`, the application properties can be used. All properties are
started with a prefix `cassandra.embedded`.
```properties
#Cassandra config file.
cassandra.embedded.config-file=classpath:cassandra.yaml
#Config properties, that should be merged with properties from cassandra.yaml.
cassandra.embedded.config-properties.native_transport_port=9042
#Cassandra environment variables.
cassandra.embedded.environment-variables.JAVA_HOME=~/java8
#Cassandra native Java Virtual Machine (JVM) Options.
cassandra.embedded.jvm-options=-Xmx512m
#Logger name, that consumes Cassandra STDOUT and STDERR outputs.
cassandra.embedded.logger=Cassandra
#Cassandra instance name.
cassandra.embedded.name=cassandra-0
#Sets if the created Cassandra should have a shutdown hook registered.
cassandra.embedded.register-shutdown-hook=true
#Startup timeout.
cassandra.embedded.startup-timeout=2m
#Cassandra native Java Virtual Machine (JVM) system parameters.
cassandra.embedded.system-properties.[cassandra.jmx.local.port]=7199
#Cassandra version.
cassandra.embedded.version=3.11.9
#Cassandra working directory.
cassandra.embedded.working-directory=target/cassandra-3.11.9
#Additional resources, that should be copied into the working directory.
cassandra.embedded.working-directory-resources.[conf/cassandra.yaml]=classpath:cassandra.yaml
```
For more advanced builder customizations, you can register an arbitrary number of beans that
implement `CassandraBuilderConfigurator`.
```java
@Configuration(proxyBeanMethods = false)
static class CassandraBuilderConfigurators {
@Bean
CassandraBuilderConfigurator cassandraBuilderConfigurator() {
return new CassandraBuilderConfigurator() {
@Override
public void configure(CassandraBuilder builder) {
//
}
};
}
}
```
You also can register your own `CassandraBuilder` bean to get a full control of `Cassandra` bean instantiation.
```java
@Configuration(proxyBeanMethods = false)
static class CassandraBuilderConfiguration {
@Bean
@Scope("prototype")
CassandraBuilder cassandraBuilder() {
CassandraBuilder builder = new CassandraBuilder();
//configure builder
return builder;
}
}
```
`EmbeddedCassandraAutoConfiguration` can be easily used with `@DataCassandraTest` annotation for testing Cassandra
repositories, just add `@ImportAutoConfiguration(EmbeddedCassandraAutoConfiguration.class)` to your test.
```java
@DataCassandraTest
@ImportAutoConfiguration(EmbeddedCassandraAutoConfiguration.class)
class CassandraRepositoriesTest {
//
}
```
#### Schema Migration
Embedded Cassandra [Spring Boot Starter] does not support CQL script migration, for this purpose you may try to use the following projects:
- https://github.com/patka/cassandra-migration
#### Maven
```xml
com.github.nosan
embedded-cassandra-spring-boot-starter
4.1.1
```
For other build tools, please use the
following [link](https://search.maven.org/artifact/com.github.nosan/embedded-cassandra-spring-boot-starter/4.1.1/jar)
#### Issues
`Embedded Cassandra [Spring Boot Starter]` uses GitHub's issue tracking system to report bugs and feature requests. If
you want to raise an issue, please follow
this [link](https://github.com/nosan/embedded-cassandra-spring-boot-starter/issues)
and use predefined `GitHub` templates.
Also see [CONTRIBUTING.md](CONTRIBUTING.md) if you wish to submit pull requests.
#### Build
`Embedded Cassandra [Spring Boot Starter]` can be easily built with
the [maven wrapper](https://github.com/takari/maven-wrapper). You also need `JDK 1.8`.
```bash
$ ./mvnw clean verify
```
#### License
This project is released under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)
___
[](https://www.paypal.com/donate/?business=D3ESQ4RY4XN7J&no_recurring=0¤cy_code=USD)