[
https://issues.apache.org/jira/browse/RYA-174?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15596005#comment-15596005
]
ASF GitHub Bot commented on RYA-174:
------------------------------------
Github user isper3at commented on a diff in the pull request:
https://github.com/apache/incubator-rya/pull/118#discussion_r84526738
--- Diff:
dao/mongodb.rya/src/main/java/org/apache/rya/mongodb/MockMongoFactory.java ---
@@ -0,0 +1,97 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.rya.mongodb;
+
+import java.io.IOException;
+import java.net.ServerSocket;
+import java.net.UnknownHostException;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.mongodb.MongoClient;
+import com.mongodb.MongoException;
+import com.mongodb.ServerAddress;
+
+import de.flapdoodle.embed.mongo.Command;
+import de.flapdoodle.embed.mongo.MongodExecutable;
+import de.flapdoodle.embed.mongo.MongodProcess;
+import de.flapdoodle.embed.mongo.MongodStarter;
+import de.flapdoodle.embed.mongo.config.IMongodConfig;
+import de.flapdoodle.embed.mongo.config.MongodConfigBuilder;
+import de.flapdoodle.embed.mongo.config.Net;
+import de.flapdoodle.embed.mongo.config.RuntimeConfigBuilder;
+import de.flapdoodle.embed.mongo.distribution.IFeatureAwareVersion;
+import de.flapdoodle.embed.mongo.distribution.Version;
+
+public class MockMongoFactory {
+ private static Logger logger =
LoggerFactory.getLogger(MockMongoFactory.class.getName());
+
+ public static MockMongoFactory newFactory() throws IOException {
+ return MockMongoFactory.with(Version.Main.PRODUCTION);
+ }
+
+ public static MockMongoFactory with(final IFeatureAwareVersion
version) throws IOException {
+ return new MockMongoFactory(version);
+ }
+
+ private final MongodExecutable mongodExecutable;
+ private final MongodProcess mongodProcess;
+
+ /**
+ * Create the testing utility using the specified version of MongoDB.
+ *
+ * @param version
+ * version of MongoDB.
+ */
+ private MockMongoFactory(final IFeatureAwareVersion version) throws
IOException {
+ final MongodStarter runtime = MongodStarter.getInstance(new
RuntimeConfigBuilder().defaultsWithLogger(Command.MongoD, logger).build());
+ mongodExecutable = runtime.prepare(newMongodConfig(version));
+ mongodProcess = mongodExecutable.start();
+ }
+
+ private IMongodConfig newMongodConfig(final IFeatureAwareVersion
version) throws UnknownHostException, IOException {
+ Net net = new Net(findRandomOpenPortOnAllLocalInterfaces(), false);
+ return new MongodConfigBuilder().version(version).net(net).build();
+ }
+
+ private int findRandomOpenPortOnAllLocalInterfaces() throws
IOException {
+ try (ServerSocket socket = new ServerSocket(0);) {
+ return socket.getLocalPort();
+ }
+ }
+
+ /**
+ * Creates a new Mongo connection.
+ *
+ * @throws MongoException
+ * @throws UnknownHostException
+ */
+ public MongoClient newMongo() throws UnknownHostException,
MongoException {
--- End diff --
can you rename this to newMongoClient(), there is an object in the mongo
api called Mongo that's different from the client
> Embedded Mongo tries to bind to busy ports
> ------------------------------------------
>
> Key: RYA-174
> URL: https://issues.apache.org/jira/browse/RYA-174
> Project: Rya
> Issue Type: Bug
> Reporter: Aaron Mihalik
> Assignee: Aaron Mihalik
> Fix For: 3.2.10
>
>
> There are a couple mongo tests that fail while building on builds.a.o. It
> looks like Embedded Mongo will try to bind to ports that are already in use.
> https://builds.apache.org/view/Incubator%20Projects/job/incubator-rya-master/org.apache.rya$rya.indexing/31/testReport/junit/mvm.rya.indexing.mongo/MongoGeoIndexerSfTest/testIntersectsLine/
> https://builds.apache.org/view/Incubator%20Projects/job/incubator-rya-master/org.apache.rya$rya.indexing/31/testReport/junit/mvm.rya.indexing.mongo/MongoTemporalIndexerTest/testQueryInstantHasBeginningInterval/
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)