Skip to content

Commit dfe2267

Browse files
committed
Add some docs and deprecated typo
1 parent 49db19a commit dfe2267

File tree

4 files changed

+76
-1
lines changed

4 files changed

+76
-1
lines changed

README.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,48 @@
11
# susceptor
22
Library and utilities supporting rapid development and centralized management of common development practices.
3+
4+
## Getting Started
5+
6+
This section desribed how to integrate susceptor in your development workflow and where and
7+
how it can help you developing plugins.
8+
9+
## Features
10+
11+
This brievly describes the core features of this library. You can find further information
12+
in the correspondign sub directories.
13+
14+
### Dependency Injection
15+
16+
Implemented in [susceptor-dependency-injection](susceptor-dependency-injection).
17+
18+
Susceptor defines [Google Guice](https://github.com/google/guice) as a dependency injection framework.
19+
20+
### Persistence
21+
22+
Implemented in [susceptor-persistence](susceptor-persistence).
23+
24+
The persistence module introduces MongoDB as a database and uses [Morphia](https://morphia.dev/)
25+
as orm for MongoDB.
26+
27+
For getting started you should take a look at the [PersistenceModule](susceptor-persistence/src/main/java/de/marmeladenoma/susceptor/persistence/inject/PersistenceModule.java).
28+
This module contains several bindings for bootstrapping your persistence layer with MongoDB. The usage is pretty straight forward:
29+
30+
```java
31+
var config = PersistenceConfig.newBuilder()
32+
.withMongoConnectionString("")
33+
.withMongoUser("")
34+
.withMongoPassword("")
35+
.withMongoSource("")
36+
.build();
37+
var injector = Guice.createInjector(PersistenceModule.create(config));
38+
```
39+
40+
The injector prepares a MongoDB Client that can be easily used via the
41+
[DatastoreFactory](susceptor-persistence/src/main/java/de/marmeladenoma/susceptor/persistence/DatastoreFactory.java):
42+
43+
```java
44+
var datastoreFactory = injector.getInstance(DatastoreFactory.class);
45+
datastoreFactory.createDatastore("test_database");
46+
```
47+
48+
Ready, Steady, Go!

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44

55
subprojects {
66
group "de.marmeladenoma"
7-
version "0.2.0"
7+
version "0.2.1"
88

99
apply plugin: 'java'
1010
apply plugin: 'checkstyle'

susceptor-persistence/src/main/java/de/marmeladenoma/susceptor/persistence/inject/PersistenceConfig.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ public static final class PersistenceConfigBuilder {
8282
private PersistenceConfigBuilder() {
8383
}
8484

85+
@Deprecated
8586
public PersistenceConfigBuilder withMongoConnectionStrong(
8687
String mongoConnectionString
8788
) {
@@ -90,6 +91,14 @@ public PersistenceConfigBuilder withMongoConnectionStrong(
9091
return this;
9192
}
9293

94+
public PersistenceConfigBuilder withMongoConnectionString(
95+
String mongoConnectionString
96+
) {
97+
Preconditions.checkNotNull(mongoConnectionString);
98+
this.mongoConnectionString = mongoConnectionString;
99+
return this;
100+
}
101+
93102
public PersistenceConfigBuilder withMongoUser(String mongoUser) {
94103
Preconditions.checkNotNull(mongoUser);
95104
this.mongoUser = mongoUser;
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package de.marmeladenoma.susceptor.persistence;
2+
3+
import com.google.inject.Guice;
4+
import com.google.inject.Injector;
5+
import de.marmeladenoma.susceptor.persistence.inject.PersistenceConfig;
6+
import de.marmeladenoma.susceptor.persistence.inject.PersistenceModule;
7+
8+
class DatastoreFactoryTest {
9+
public static void main(String[] args) {
10+
var config = PersistenceConfig.newBuilder()
11+
.withMongoConnectionString("")
12+
.withMongoUser("")
13+
.withMongoPassword("")
14+
.withMongoSource("")
15+
.build();
16+
var injector = Guice.createInjector(PersistenceModule.create(config));
17+
var datastoreFactory = injector.getInstance(DatastoreFactory.class);
18+
datastoreFactory.createDatastore("test_database");
19+
}
20+
}

0 commit comments

Comments
 (0)