Skip to content

Commit 23f2a59

Browse files
committed
Started development agreed with dieppa
Removed files and code previously featured in mongock standalone Added new role in core runner builder, named ModuleConfigurationProvider Modified RunnerBuilder to incorporate ModuleConfigurationProvider Added new attribute in MongockConfiguration named mongockModules, and respective getter and setter
1 parent 7bb25f2 commit 23f2a59

9 files changed

Lines changed: 57 additions & 134 deletions

File tree

mongock-core/mongock-api/src/main/java/io/mongock/api/config/MongockConfiguration.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.mongock.api.config;
22

33
import io.mongock.api.config.executor.ExecutorConfiguration;
4+
import io.mongock.api.module.MongockModuleConfig;
45
import org.slf4j.Logger;
56
import org.slf4j.LoggerFactory;
67

@@ -91,6 +92,11 @@ public class MongockConfiguration implements ExecutorConfiguration {
9192
*/
9293
private List<String> migrationScanPackage = new ArrayList<>();
9394

95+
/**
96+
* List of Mongock modules that provide configuration, such as ChangeLog scan packages. Optional
97+
*/
98+
private List<MongockModuleConfig> mongockModules = new ArrayList<>();
99+
94100
/**
95101
* System version to start with. Default '0'
96102
*/
@@ -260,6 +266,14 @@ public void setMigrationScanPackage(List<String> migrationScanPackage) {
260266
this.migrationScanPackage = migrationScanPackage;
261267
}
262268

269+
public List<MongockModuleConfig> getMongockModules() {
270+
return mongockModules;
271+
}
272+
273+
public void setMongockModules(List<MongockModuleConfig> mongockModules) {
274+
this.mongockModules = mongockModules;
275+
}
276+
263277
public boolean isIndexCreation() {
264278
return indexCreation;
265279
}
@@ -398,6 +412,7 @@ public boolean equals(Object o) {
398412
Objects.equals(lockRepositoryName, that.lockRepositoryName) &&
399413
Objects.equals(lockQuitTryingAfterMillis, that.lockQuitTryingAfterMillis) &&
400414
Objects.equals(migrationScanPackage, that.migrationScanPackage) &&
415+
Objects.equals(mongockModules, that.mongockModules) &&
401416
Objects.equals(startSystemVersion, that.startSystemVersion) &&
402417
Objects.equals(endSystemVersion, that.endSystemVersion) &&
403418
Objects.equals(serviceIdentifier, that.serviceIdentifier) &&
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package io.mongock.api.module;
2+
3+
import java.util.List;
4+
5+
/**
6+
* Represents a module that provides configuration to Mongock,
7+
* specifically the list of packages to be scanned for change units.
8+
* This allows for a clean and extensible way to add scan packages from different modules.
9+
*/
10+
public interface MongockModuleConfig {
11+
12+
/**
13+
* @return A list of package paths to be scanned by Mongock for change units.
14+
*/
15+
List<String> getChangeLogScanPackages();
16+
17+
}
Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,7 @@
11
package io.mongock.runner.core.builder;
22

33
import io.mongock.api.config.MongockConfiguration;
4-
import io.mongock.runner.core.builder.roles.ChangeLogScanner;
5-
import io.mongock.runner.core.builder.roles.DependencyInjectable;
6-
import io.mongock.runner.core.builder.roles.DriverConnectable;
7-
import io.mongock.runner.core.builder.roles.LegacyMigrator;
8-
import io.mongock.runner.core.builder.roles.MigrationWriter;
9-
import io.mongock.runner.core.builder.roles.MongockRunnable;
10-
import io.mongock.runner.core.builder.roles.ServiceIdentificable;
11-
import io.mongock.runner.core.builder.roles.SystemVersionable;
12-
import io.mongock.runner.core.builder.roles.TransactionStrategiable;
13-
import io.mongock.runner.core.builder.roles.Transactioner;
4+
import io.mongock.runner.core.builder.roles.*;
145
import io.mongock.runner.core.event.EventPublisher;
156

167
@SuppressWarnings("all")
@@ -27,7 +18,8 @@ public interface RunnerBuilder<
2718
ServiceIdentificable<SELF, CONFIG>,
2819
MongockRunnable<SELF, CONFIG>,
2920
Transactioner<SELF, CONFIG>,
30-
TransactionStrategiable<SELF, CONFIG> {
21+
TransactionStrategiable<SELF, CONFIG>,
22+
ModuleConfigurationProvider<SELF, CONFIG> {
3123

3224
SELF setEventPublisher(EventPublisher eventPublisher);
3325
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package io.mongock.runner.core.builder.roles;
2+
3+
import io.mongock.api.config.MongockConfiguration;
4+
import io.mongock.api.module.MongockModuleConfig;
5+
6+
import java.util.Collection;
7+
import java.util.Collections;
8+
9+
public interface ModuleConfigurationProvider<SELF extends ModuleConfigurationProvider<SELF, CONFIG>, CONFIG extends MongockConfiguration>
10+
extends Configurable<SELF, CONFIG>, SelfInstanstiator<SELF> {
11+
12+
default SELF addModule(MongockModuleConfig moduleConfig) {
13+
return addModules(Collections.singletonList(moduleConfig));
14+
}
15+
16+
default SELF addModules(Collection<MongockModuleConfig> moduleConfigs) {
17+
if (moduleConfigs != null) {
18+
getConfig().getMongockModules().addAll(moduleConfigs);
19+
}
20+
return getInstance();
21+
}
22+
}

mongock-core/mongock-runner/standalone/mongock-standalone/src/main/java/io/mongock/runner/standalone/MongockModuleConfig.java

Lines changed: 0 additions & 6 deletions
This file was deleted.

mongock-core/mongock-runner/standalone/mongock-standalone/src/main/java/io/mongock/runner/standalone/MongockScanPackage.java

Lines changed: 0 additions & 26 deletions
This file was deleted.

mongock-core/mongock-runner/standalone/mongock-standalone/src/main/java/io/mongock/runner/standalone/MongockStandalone.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,6 @@ public RunnerStandaloneBuilderImpl getInstance() {
2828
return this;
2929
}
3030

31-
@Override
32-
public RunnerStandaloneBuilder addModuleConfig(MongockModuleConfig mongockModuleConfig) {
33-
mongockModuleConfig.configure(new MongockScanPackage(this));
34-
return this;
35-
}
3631
}
3732

3833

mongock-core/mongock-runner/standalone/mongock-standalone/src/main/java/io/mongock/runner/standalone/RunnerStandaloneBuilder.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,4 @@
55

66
public interface RunnerStandaloneBuilder extends RunnerStandaloneBuilderBase<RunnerStandaloneBuilder, MongockConfiguration> {
77

8-
public RunnerStandaloneBuilder addModuleConfig(MongockModuleConfig mongockModuleConfig);
98
}

mongock-core/mongock-runner/standalone/mongock-standalone/src/test/java/io/mongock/runner/standalone/MongockModuleConfigTest.java

Lines changed: 0 additions & 85 deletions
This file was deleted.

0 commit comments

Comments
 (0)