Repository: usergrid Updated Branches: refs/heads/master 9ee4288ce -> 58c1d09fb
Use one injector in tests and, at most, one Akka cluster per test class. Project: http://git-wip-us.apache.org/repos/asf/usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/usergrid/commit/58c1d09f Tree: http://git-wip-us.apache.org/repos/asf/usergrid/tree/58c1d09f Diff: http://git-wip-us.apache.org/repos/asf/usergrid/diff/58c1d09f Branch: refs/heads/master Commit: 58c1d09fbffe9bd5a70a3ec27e1a59c00dfb2dc6 Parents: 9ee4288 Author: Dave Johnson <snoopd...@apache.org> Authored: Mon Nov 14 16:53:32 2016 -0800 Committer: Dave Johnson <snoopd...@apache.org> Committed: Mon Nov 14 16:53:32 2016 -0800 ---------------------------------------------------------------------- .../persistence/qakka/AbstractAkkaTest.java | 83 ++++++++++++++++++++ 1 file changed, 83 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/usergrid/blob/58c1d09f/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/AbstractAkkaTest.java ---------------------------------------------------------------------- diff --git a/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/AbstractAkkaTest.java b/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/AbstractAkkaTest.java new file mode 100644 index 0000000..3c57da9 --- /dev/null +++ b/stack/corepersistence/queue/src/test/java/org/apache/usergrid/persistence/qakka/AbstractAkkaTest.java @@ -0,0 +1,83 @@ +/* + * 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.usergrid.persistence.qakka; + +import com.google.inject.Injector; +import org.apache.usergrid.persistence.core.migration.schema.MigrationException; +import org.apache.usergrid.persistence.core.migration.schema.MigrationManager; +import org.junit.BeforeClass; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + + +public abstract class AbstractAkkaTest { + private static final Logger logger = LoggerFactory.getLogger( AbstractAkkaTest.class ); + + static AtomicInteger nextPort = new AtomicInteger(3551); + +// protected static Injector sharedInjector; + + static AtomicBoolean migrated = new AtomicBoolean( false ); + + static { new KeyspaceDropper(); } + + + public AbstractAkkaTest() { + if ( !migrated.getAndSet( true ) ) { + //setInjector( Guice.createInjector( new TestModule() ) ); + MigrationManager migrationManager = getInjector().getInstance( MigrationManager.class ); + try { + migrationManager.migrate(); + } catch (MigrationException e) { + logger.error("Error in migration", e); + } + } + } + + protected abstract Injector getInjector(); + + +// protected Injector getInjector() { +// return sharedInjector; +// } +// +// protected static void setInjector(Injector injector) { +// AbstractTest.sharedInjector = injector; +// } + + + protected static int getNextAkkaPort() { + int ret = nextPort.getAndIncrement(); + logger.info("Returning port {}", ret); + return ret; + } + + + @BeforeClass + public static void startCassandra() throws Exception { + //EmbeddedCassandraServerHelper.startEmbeddedCassandra("/cassandra.yaml"); + } + + + +}