Skip to content
This repository was archived by the owner on Sep 16, 2024. It is now read-only.

Commit 6f05f63

Browse files
committed
#191 New property for customizing thread count while loading modules
1 parent a85eb1d commit 6f05f63

File tree

5 files changed

+29
-9
lines changed

5 files changed

+29
-9
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
group=com.marklogic
22
javadocsDir=../gh-pages-marklogic-java/javadocs
33
version=3.1-alpha3
4-
mlJavaclientUtilVersion=3.1-alpha3
4+
mlJavaclientUtilVersion=3.1-alpha4
55
mlJunitVersion=3.1-alpha1
66

src/main/java/com/marklogic/appdeployer/AppConfig.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,7 @@ public class AppConfig {
113113
private String moduleTimestampsPath = PropertiesModuleManager.DEFAULT_FILE_PATH;
114114
private boolean deleteTestModules = false;
115115
private String deleteTestModulesPattern = "/test/**";
116+
private int modulesLoaderThreadCount = 8;
116117

117118
private String schemasPath;
118119
private ConfigDir configDir;
@@ -922,4 +923,12 @@ public Pattern getResourceFilenamesIncludePattern() {
922923
public void setResourceFilenamesIncludePattern(Pattern resourceFilenamesIncludePattern) {
923924
this.resourceFilenamesIncludePattern = resourceFilenamesIncludePattern;
924925
}
926+
927+
public int getModulesLoaderThreadCount() {
928+
return modulesLoaderThreadCount;
929+
}
930+
931+
public void setModulesLoaderThreadCount(int modulesLoaderThreadCount) {
932+
this.modulesLoaderThreadCount = modulesLoaderThreadCount;
933+
}
925934
}

src/main/java/com/marklogic/appdeployer/DefaultAppConfigFactory.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,12 @@ public AppConfig newAppConfig() {
446446
c.setDeleteTestModulesPattern(prop);
447447
}
448448

449+
prop = getProperty("mlModulesLoaderThreadCount");
450+
if (prop != null) {
451+
logger.info("Modules loader thread count: " + prop);
452+
c.setModulesLoaderThreadCount(Integer.parseInt(prop));
453+
}
454+
449455
/**
450456
* The following properties are all for generating Entity Services artifacts.
451457
*/

src/main/java/com/marklogic/appdeployer/command/modules/DefaultModulesLoaderFactory.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
package com.marklogic.appdeployer.command.modules;
22

33
import com.marklogic.appdeployer.AppConfig;
4-
import com.marklogic.client.DatabaseClient;
5-
import com.marklogic.client.ext.tokenreplacer.DefaultTokenReplacer;
6-
import com.marklogic.client.ext.tokenreplacer.PropertiesSource;
7-
import com.marklogic.client.ext.tokenreplacer.RoxyTokenReplacer;
8-
import com.marklogic.client.ext.tokenreplacer.TokenReplacer;
4+
import com.marklogic.client.ext.batch.RestBatchWriter;
95
import com.marklogic.client.ext.helper.LoggingObject;
106
import com.marklogic.client.ext.modulesloader.ModulesLoader;
117
import com.marklogic.client.ext.modulesloader.ModulesManager;
128
import com.marklogic.client.ext.modulesloader.impl.*;
9+
import com.marklogic.client.ext.tokenreplacer.DefaultTokenReplacer;
10+
import com.marklogic.client.ext.tokenreplacer.PropertiesSource;
11+
import com.marklogic.client.ext.tokenreplacer.RoxyTokenReplacer;
12+
import com.marklogic.client.ext.tokenreplacer.TokenReplacer;
1313
import com.marklogic.xcc.template.XccTemplate;
1414

15-
import java.io.File;
1615
import java.util.Map;
1716
import java.util.Properties;
1817

@@ -26,8 +25,11 @@ public ModulesLoader newModulesLoader(AppConfig appConfig) {
2625
modulesManager = new PropertiesModuleManager(path);
2726
}
2827

29-
DatabaseClient modulesDatabaseClient = appConfig.newModulesDatabaseClient();
30-
AssetFileLoader assetFileLoader = new AssetFileLoader(modulesDatabaseClient, modulesManager);
28+
int threadCount = appConfig.getModulesLoaderThreadCount();
29+
30+
RestBatchWriter assetBatchWriter = new RestBatchWriter(appConfig.newModulesDatabaseClient(), false);
31+
assetBatchWriter.setThreadCount(threadCount);
32+
AssetFileLoader assetFileLoader = new AssetFileLoader(assetBatchWriter, modulesManager);
3133

3234
String permissions = appConfig.getModulePermissions();
3335
if (permissions != null) {
@@ -49,6 +51,7 @@ public ModulesLoader newModulesLoader(AppConfig appConfig) {
4951

5052
DefaultModulesLoader modulesLoader = new DefaultModulesLoader(assetFileLoader);
5153
modulesLoader.setModulesManager(modulesManager);
54+
modulesLoader.setTaskThreadCount(threadCount);
5255

5356
if (appConfig.isStaticCheckAssets()) {
5457
modulesLoader.setStaticChecker(newStaticChecker(appConfig));

src/test/java/com/marklogic/appdeployer/DefaultAppConfigFactoryTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public void allProperties() {
121121
p.setProperty("mlModuleTimestampsPath", "custom/timestamps/path.properties");
122122
p.setProperty("mlDeleteTestModules", "true");
123123
p.setProperty("mlDeleteTestModulesPattern", "/some/pattern");
124+
p.setProperty("mlModulesLoaderThreadCount", "3");
124125

125126
p.setProperty("mlModelsPath", "ml/models");
126127
p.setProperty("mlInstanceConverterPath", "ext/my/path");
@@ -193,6 +194,7 @@ public void allProperties() {
193194
assertFalse(config.isUseRoxyTokenPrefix());
194195
assertTrue(config.isDeleteTestModules());
195196
assertEquals("/some/pattern", config.getDeleteTestModulesPattern());
197+
assertEquals(3, config.getModulesLoaderThreadCount());
196198

197199
assertEquals("ml/models", config.getModelsPath());
198200
assertEquals("ext/my/path", config.getInstanceConverterPath());

0 commit comments

Comments
 (0)