Skip to content

Commit 354695d

Browse files
authored
Merge pull request #10 from seedstack/dev-3.x
Business 4.0 implementation
2 parents e796f4b + e435997 commit 354695d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1112
-316
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ cache:
1212

1313
install:
1414
- echo "<settings><servers><server><id>bintray</id><username>\${env.BINTRAY_USER}</username><password>\${env.BINTRAY_KEY}</password></server></servers></settings>" > ~/.m2/settings.xml
15-
- if [[ $TRAVIS_PULL_REQUEST = false ]] && [[ $TRAVIS_BRANCH = master ]] || [[ $TRAVIS_TAG = v* ]]; then GOAL=deploy; else GOAL=install; fi
15+
- if [[ $TRAVIS_PULL_REQUEST = false ]] && [[ $TRAVIS_BRANCH = master || $TRAVIS_BRANCH = dev-* ]] || [[ $TRAVIS_TAG = v* ]]; then GOAL=deploy; else GOAL=install; fi
1616
- if [[ $TRAVIS_TAG = v* ]]; then ADDITIONAL_PROFILES=release; mvn -q -U org.seedstack:seedstack-maven-plugin:release; else ADDITIONAL_PROFILES=snapshots; fi
1717

18-
script: mvn -q -U -T 2 -Pbuild-number,compatibility,bintray,javadoc,$ADDITIONAL_PROFILES $GOAL jacoco:report
18+
script: mvn -q -U -Pbuild-number,compatibility,bintray,quality,javadoc,$ADDITIONAL_PROFILES $GOAL jacoco:report
1919

2020
after_success: mvn -q coveralls:report -DrepoToken=$COVERALLS_TOKEN

core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<parent>
1515
<groupId>org.seedstack.addons.mongodb</groupId>
1616
<artifactId>mongodb</artifactId>
17-
<version>2.0.0-SNAPSHOT</version>
17+
<version>3.0.0-SNAPSHOT</version>
1818
</parent>
1919

2020
<artifactId>mongodb-core</artifactId>

core/src/main/java/org/seedstack/mongodb/internal/AsyncMongoDbManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
import org.bson.codecs.configuration.CodecRegistry;
2222
import org.seedstack.coffig.BuilderSupplier;
2323
import org.seedstack.coffig.Coffig;
24-
import org.seedstack.coffig.util.Utils;
2524
import org.seedstack.mongodb.MongoDbConfig;
25+
import org.seedstack.shed.reflect.Classes;
2626

2727
import java.util.List;
2828
import java.util.Optional;
@@ -63,7 +63,7 @@ private MongoClientSettings buildMongoClientSettings(MongoDbConfig.ClientConfig
6363
// Apply global settings
6464
Optional.ofNullable(allSettings.readPreference).ifPresent(settingsBuilder::readPreference);
6565
Optional.ofNullable(allSettings.writeConcern).ifPresent(settingsBuilder::writeConcern);
66-
Optional.ofNullable(allSettings.codecRegistry).map(Utils::instantiateDefault).ifPresent(settingsBuilder::codecRegistry);
66+
Optional.ofNullable(allSettings.codecRegistry).map(Classes::instantiateDefault).ifPresent(settingsBuilder::codecRegistry);
6767

6868
// Apply sub-settings
6969
settingsBuilder.clusterSettings(allSettings.cluster.get().build());

morphia/pom.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<parent>
1515
<groupId>org.seedstack.addons.mongodb</groupId>
1616
<artifactId>mongodb</artifactId>
17-
<version>2.0.0-SNAPSHOT</version>
17+
<version>3.0.0-SNAPSHOT</version>
1818
</parent>
1919

2020
<artifactId>mongodb-morphia</artifactId>
@@ -40,6 +40,12 @@
4040
<groupId>org.mongodb.morphia</groupId>
4141
<artifactId>morphia-logging-slf4j</artifactId>
4242
<version>${morphia.version}</version>
43+
<exclusions>
44+
<exclusion>
45+
<groupId>org.slf4j</groupId>
46+
<artifactId>slf4j-api</artifactId>
47+
</exclusion>
48+
</exclusions>
4349
</dependency>
4450

4551
<dependency>

morphia/src/it/java/org/seedstack/mongodb/morphia/MorphiaIT.java

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,34 +8,114 @@
88
package org.seedstack.mongodb.morphia;
99

1010
import com.google.inject.Inject;
11+
import com.google.inject.Injector;
12+
import com.google.inject.ProvisionException;
13+
import com.google.inject.TypeLiteral;
14+
import com.google.inject.util.Types;
1115
import org.assertj.core.api.Assertions;
1216
import org.junit.Test;
1317
import org.mongodb.morphia.Datastore;
1418
import org.mongodb.morphia.Key;
19+
import org.seedstack.business.domain.Repository;
20+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy1;
21+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy2;
22+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy3;
23+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy4;
24+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy5;
25+
import org.seedstack.mongodb.morphia.fixtures.dummyobject.Dummy6;
1526
import org.seedstack.mongodb.morphia.fixtures.user.Address;
1627
import org.seedstack.mongodb.morphia.fixtures.user.User;
28+
import org.seedstack.mongodb.morphia.internal.MorphiaErrorCode;
29+
import org.seedstack.seed.SeedException;
1730
import org.seedstack.seed.it.AbstractSeedIT;
1831

1932
import javax.validation.ConstraintViolationException;
2033

34+
import static org.assertj.core.api.Assertions.assertThat;
2135
import static org.assertj.core.api.Fail.fail;
2236

2337
public class MorphiaIT extends AbstractSeedIT {
2438
@Inject
2539
@MorphiaDatastore(clientName = "client1", dbName = "db")
2640
private Datastore datastore;
41+
@Inject
42+
private Injector injector;
2743

2844
@Test
29-
public void datastore_test() {
45+
public void datastoreAccess() {
3046
User user = new User(1L, "Gerard", "menvuça", new Address("France", "78300", "Poissy", "avenue de l'europe", 1));
3147
Key<User> keyUser = datastore.save(user);
3248
Assertions.assertThat(keyUser).isNotNull();
3349
}
3450

3551
@Test(expected = ConstraintViolationException.class)
36-
public void validation_is_working() {
52+
public void validationIsWorking() {
3753
User user = new User(1L, null, "menvuça", new Address("France", "78300", "Poissy", "avenue de l'europe", 1));
3854
datastore.save(user);
3955
fail("should not have saved");
4056
}
57+
58+
@Test
59+
public void repositoryInjectionTestNoClientForAggregate() {
60+
try {
61+
injector.getInstance(getMorphiaRepositoryOf(Dummy1.class));
62+
} catch (ProvisionException e) {
63+
assertThat(e.getCause().getMessage())
64+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.CLIENT_NAME_NOT_CONFIGURED).getMessage());
65+
}
66+
}
67+
68+
private com.google.inject.Key<?> getMorphiaRepositoryOf(Class entity) {
69+
return com.google.inject.Key.get(TypeLiteral.get(Types.newParameterizedType(Repository.class, entity, Long.class)), Morphia.class);
70+
}
71+
72+
@Test
73+
public void repositoryInjectionTestNoDbNameForAggregate() {
74+
try {
75+
injector.getInstance(getMorphiaRepositoryOf(Dummy2.class));
76+
} catch (ProvisionException e) {
77+
assertThat(e.getCause().getMessage())
78+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_DATABASE).getMessage());
79+
}
80+
}
81+
82+
@Test
83+
public void repositoryInjectionTestNoMongoDbClient() {
84+
try {
85+
injector.getInstance(getMorphiaRepositoryOf(Dummy3.class));
86+
} catch (ProvisionException e) {
87+
assertThat(e.getCause().getMessage())
88+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_CLIENT).getMessage());
89+
}
90+
}
91+
92+
@Test
93+
public void repositoryInjectionTestNoMongoDbDatabase() {
94+
try {
95+
injector.getInstance(getMorphiaRepositoryOf(Dummy4.class));
96+
} catch (ProvisionException e) {
97+
assertThat(e.getCause().getMessage())
98+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.UNKNOWN_DATABASE).getMessage());
99+
}
100+
}
101+
102+
@Test
103+
public void repositoryInjectionTestNoMongodbForAggregate() {
104+
try {
105+
injector.getInstance(getMorphiaRepositoryOf(Dummy5.class));
106+
} catch (ProvisionException e) {
107+
assertThat(e.getCause().getMessage())
108+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.PERSISTED_CLASS_NOT_CONFIGURED).getMessage());
109+
}
110+
}
111+
112+
@Test
113+
public void repositoryInjectionAsyncClient() {
114+
try {
115+
injector.getInstance(getMorphiaRepositoryOf(Dummy6.class));
116+
} catch (ProvisionException e) {
117+
assertThat(e.getCause().getMessage())
118+
.isEqualTo(SeedException.createNew(MorphiaErrorCode.ASYNC_CLIENT_NOT_SUPPORTED).getMessage());
119+
}
120+
}
41121
}

0 commit comments

Comments
 (0)