[ 
https://issues.apache.org/jira/browse/RYA-414?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16310161#comment-16310161
 ] 

ASF GitHub Bot commented on RYA-414:
------------------------------------

Github user kchilton2 commented on a diff in the pull request:

    https://github.com/apache/incubator-rya/pull/256#discussion_r159509027
  
    --- Diff: 
dao/mongodb.rya/src/test/java/org/apache/rya/mongodb/MongoTestBase.java ---
    @@ -33,27 +34,43 @@
      */
     public class MongoTestBase {
     
    -    private static MongoClient mongoClient = null;
    -    protected static MongoDBRdfConfiguration conf;
    +    private MongoClient mongoClient = null;
    +    protected StatefulMongoDBRdfConfiguration conf;
     
         @Before
         public void setupTest() throws Exception {
    -        conf = new MongoDBRdfConfiguration( new Configuration() );
    +        // Setup the configuration that will be used within the test.
    +        final MongoDBRdfConfiguration conf = new MongoDBRdfConfiguration( 
new Configuration() );
             conf.setBoolean("sc.useMongo", true);
             conf.setTablePrefix("test_");
             conf.setMongoDBName("testDB");
    -        mongoClient = EmbeddedMongoSingleton.getInstance();
    -        conf.setMongoClient(mongoClient);
    -    }
    +        
conf.setMongoHostname(EmbeddedMongoSingleton.getMongodConfig().net().getServerAddress().getHostAddress());
    +        
conf.setMongoPort(Integer.toString(EmbeddedMongoSingleton.getMongodConfig().net().getPort()));
    +
    +        // Let tests update the configuration.
    +        updateConfiguration(conf);
    +
    +        // Create the stateful configuration object.
    +        mongoClient = EmbeddedMongoSingleton.getNewMongoClient();
    +        final List<MongoSecondaryIndex> indexers = 
conf.getInstances("ac.additional.indexers", MongoSecondaryIndex.class);
    +        this.conf = new StatefulMongoDBRdfConfiguration(conf, mongoClient, 
indexers);
     
    -    @After
    -    public void cleanupTest() {
    -        // Remove any DBs that were created by the test.
    +        // Remove any DBs that were created by previous tests.
             for(final String dbName : mongoClient.listDatabaseNames()) {
                 mongoClient.dropDatabase(dbName);
             }
         }
     
    +    /**
    +     * Override this method if you would like to augment the configuration 
object that
    +     * will be used to initialize indexers and create the mongo client 
prior to running a test.
    +     *
    +     * @param conf - The configuration object that may be updated. (not 
null)
    +     */
    +    protected void updateConfiguration(final MongoDBRdfConfiguration conf) 
{
    --- End diff --
    
    Yes. Most of them.


> Fix inconsistent method of using MongoClient within a Sail object
> -----------------------------------------------------------------
>
>                 Key: RYA-414
>                 URL: https://issues.apache.org/jira/browse/RYA-414
>             Project: Rya
>          Issue Type: Bug
>            Reporter: Andrew Smith
>            Assignee: Kevin Chilton
>            Priority: Blocker
>
> We've decided to introduce a stateful configuration object that is used to 
> hold onto objects that needs to be shared across components within a Sail 
> object in favor of having a static holder. The static holder limited our 
> ability to use more than a single Sail object within a single JVM because all 
> of those Sail objects would all have to access the same Mongo DB repository.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to