From d73f5d978ce72304e35de479ee0f312ef10cce27 Mon Sep 17 00:00:00 2001
From: Jeffrey Phillips Freeman <jeffrey.freeman@syncleus.com>
Date: Sat, 13 Jun 2015 17:54:20 -0400
Subject: [PATCH] Added TEXT_SEARCH feature enabling explicitly rather than
relying on defaults.
---
.../maven/plugins/mongodb/StartMongoMojo.java | 51 +++++++++++--------
1 file changed, 30 insertions(+), 21 deletions(-)
diff --git a/src/main/java/com/syncleus/maven/plugins/mongodb/StartMongoMojo.java b/src/main/java/com/syncleus/maven/plugins/mongodb/StartMongoMojo.java
index 54510e1..3972f45 100644
--- a/src/main/java/com/syncleus/maven/plugins/mongodb/StartMongoMojo.java
+++ b/src/main/java/com/syncleus/maven/plugins/mongodb/StartMongoMojo.java
@@ -56,15 +56,11 @@ import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.project.MavenProject;
-import javax.inject.Inject;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.*;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Scanner;
+import java.util.*;
import java.util.concurrent.TimeUnit;
import static java.util.Collections.singletonList;
@@ -295,6 +291,11 @@ public class StartMongoMojo extends AbstractMongoMojo {
*/
private Integer setPort = null;
+ /**
+ * Not a mojo configuration parameter, this is used itnernally/
+ */
+ private Set<Feature> setFeatures = null;
+
public StartMongoMojo() {
}
@@ -414,7 +415,7 @@ public class StartMongoMojo extends AbstractMongoMojo {
.net(new Net(bindIp, getPort(), Network.localhostIsIPv6()))
.replication(new Storage(getDataDirectory(), replSet, oplogSize));
- configBuilder = this.configureSyncDelay(configBuilder);
+ configBuilder.cmdOptions(this.createCmdOptions().build());
return configBuilder.build();
} catch (final UnknownHostException e) {
@@ -424,17 +425,23 @@ public class StartMongoMojo extends AbstractMongoMojo {
}
}
- private MongodConfigBuilder configureSyncDelay(final MongodConfigBuilder config) {
- if (this.syncDelay == null) {
- return config.cmdOptions(new MongoCmdOptionsBuilder()
- .defaultSyncDelay()
- .build());
- } else if (this.syncDelay > 0) {
- return config.cmdOptions(new MongoCmdOptionsBuilder()
- .syncDelay(this.syncDelay)
- .build());
- } else
- return config;
+ private MongoCmdOptionsBuilder createCmdOptions() {
+ MongoCmdOptionsBuilder config = new MongoCmdOptionsBuilder();
+ config = this.configureSyncDelay(config);
+ config = this.configureTextSearch(config);
+ return config;
+ }
+
+ private MongoCmdOptionsBuilder configureSyncDelay(final MongoCmdOptionsBuilder config) {
+ if (this.syncDelay == null)
+ return config.defaultSyncDelay();
+ return config.syncDelay(this.syncDelay);
+ }
+
+ private MongoCmdOptionsBuilder configureTextSearch(final MongoCmdOptionsBuilder config) {
+ if(getFeatures().contains(Feature.TEXT_SEARCH))
+ return config.enableTextSearch(true);
+ return config;
}
private ProcessOutput getOutputConfig() throws MojoFailureException {
@@ -499,7 +506,7 @@ public class StartMongoMojo extends AbstractMongoMojo {
private IFeatureAwareVersion createVersion() {
- final Feature[] features = getFeatures();
+ final Feature[] features = getFeatures().toArray(new Feature[getFeatures().size()]);
if (this.version == null || this.version.equals("")) {
if (features.length == 0)
@@ -561,14 +568,16 @@ public class StartMongoMojo extends AbstractMongoMojo {
});
}
- private Feature[] getFeatures() {
+ private Set<Feature> getFeatures() {
+ if( setFeatures != null )
+ return setFeatures;
final HashSet<Feature> featuresSet = new HashSet<Feature>();
if (this.features != null && this.features.length > 0) {
for (final String featureString : this.features)
featuresSet.add(Feature.valueOf(featureString.toUpperCase()));
}
- final Feature[] retVal = new Feature[featuresSet.size()];
- return featuresSet.toArray(retVal);
+ this.setFeatures = featuresSet;
+ return featuresSet;
}
private int getPort() {
--
GitLab