diff --git a/cellbase-app/pom.xml b/cellbase-app/pom.xml index 2fbecfa9c..8005eecf2 100644 --- a/cellbase-app/pom.xml +++ b/cellbase-app/pom.xml @@ -6,7 +6,7 @@ org.opencb.cellbase cellbase - 5.8.1-SNAPSHOT + 5.8.2-SNAPSHOT ../pom.xml diff --git a/cellbase-client/pom.xml b/cellbase-client/pom.xml index 1763a644a..c0416167d 100644 --- a/cellbase-client/pom.xml +++ b/cellbase-client/pom.xml @@ -6,7 +6,7 @@ org.opencb.cellbase cellbase - 5.8.1-SNAPSHOT + 5.8.2-SNAPSHOT ../pom.xml diff --git a/cellbase-core/pom.xml b/cellbase-core/pom.xml index f20aac251..66c31d086 100644 --- a/cellbase-core/pom.xml +++ b/cellbase-core/pom.xml @@ -6,7 +6,7 @@ org.opencb.cellbase cellbase - 5.8.1-SNAPSHOT + 5.8.2-SNAPSHOT ../pom.xml diff --git a/cellbase-lib/pom.xml b/cellbase-lib/pom.xml index 10c17f0af..a4f8449f6 100644 --- a/cellbase-lib/pom.xml +++ b/cellbase-lib/pom.xml @@ -6,7 +6,7 @@ org.opencb.cellbase cellbase - 5.8.1-SNAPSHOT + 5.8.2-SNAPSHOT ../pom.xml diff --git a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/impl/core/MetaMongoDBAdaptor.java b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/impl/core/MetaMongoDBAdaptor.java index 9361f48d0..e5cd4d38c 100644 --- a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/impl/core/MetaMongoDBAdaptor.java +++ b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/impl/core/MetaMongoDBAdaptor.java @@ -16,17 +16,19 @@ package org.opencb.cellbase.lib.impl.core; +import com.mongodb.ReadPreference; +import com.mongodb.WriteConcern; import com.mongodb.client.model.Filters; import com.mongodb.client.model.Updates; import org.bson.BsonDocument; import org.bson.Document; import org.bson.conversions.Bson; import org.codehaus.jackson.map.ObjectMapper; +import org.opencb.cellbase.core.api.key.ApiKeyStats; import org.opencb.cellbase.core.api.query.AbstractQuery; import org.opencb.cellbase.core.api.query.ProjectionQueryOptions; import org.opencb.cellbase.core.exception.CellBaseException; import org.opencb.cellbase.core.result.CellBaseDataResult; -import org.opencb.cellbase.core.api.key.ApiKeyStats; import org.opencb.cellbase.lib.iterator.CellBaseIterator; import org.opencb.commons.datastore.core.FacetField; import org.opencb.commons.datastore.core.QueryOptions; @@ -55,7 +57,7 @@ public MetaMongoDBAdaptor(MongoDataStore mongoDataStore) { private void init() { logger.debug("MetaMongoDBAdaptor: in 'constructor'"); mongoDBCollection = mongoDataStore.getCollection("metadata"); - apiKeyStatsMongoDBCollection = mongoDataStore.getCollection("apikey_stats"); + apiKeyStatsMongoDBCollection = mongoDataStore.getCollection("apikey_stats", WriteConcern.ACKNOWLEDGED, ReadPreference.primary()); } public CellBaseDataResult getAll() { diff --git a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java index efddbe716..a503ba704 100644 --- a/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java +++ b/cellbase-lib/src/main/java/org/opencb/cellbase/lib/variant/annotation/VariantAnnotationCalculator.java @@ -615,9 +615,9 @@ private List runAnnotationProcess(List normalizedVar } } } catch (Exception e) { - e.printStackTrace(); + variantAnnotation.setDisplayConsequenceType(VariantAnnotationUtils.FUNCTION_UNCERTAIN_VARIANT); + variantAnnotation.setConsequenceTypes(Collections.emptyList()); logger.error("Something wrong happened when calculation consequence type for variant " + variant, e); - throw e; } } diff --git a/cellbase-server/pom.xml b/cellbase-server/pom.xml index aaf34ea2d..9b4720e13 100644 --- a/cellbase-server/pom.xml +++ b/cellbase-server/pom.xml @@ -6,7 +6,7 @@ org.opencb.cellbase cellbase - 5.8.1-SNAPSHOT + 5.8.2-SNAPSHOT ../pom.xml diff --git a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java index ed21eac32..fc961bb9a 100755 --- a/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java +++ b/cellbase-server/src/main/java/org/opencb/cellbase/server/rest/GenericRestWSServer.java @@ -118,7 +118,9 @@ public GenericRestWSServer(@PathParam("version") String version, @PathParam("spe this.assembly = assembly; try { - init(); + if (!INITIALIZED.get()) { + init(); + } if (this.assembly == null) { // Default assembly depends on the CellBaseConfiguration (so it has to be already initialized) @@ -131,9 +133,9 @@ public GenericRestWSServer(@PathParam("version") String version, @PathParam("spe } } - private void init() throws IOException, CellBaseException { + private synchronized void init() throws IOException, CellBaseException { // we need to make sure we only init one single time - if (INITIALIZED.compareAndSet(false, true)) { + if (!INITIALIZED.get()) { SERVICE_START_DATE = new SimpleDateFormat("yyyyMMdd_HHmmss").format(Calendar.getInstance().getTime()); WATCH = new StopWatch(); WATCH.start(); @@ -167,19 +169,21 @@ private void init() throws IOException, CellBaseException { cellBaseManagerFactory = new CellBaseManagerFactory(cellBaseConfiguration); logger.info("***************************************************"); + // Get default API key (for anonymous queries) + if (apiKeyManager == null) { + apiKeyManager = new ApiKeyManager(cellBaseConfiguration.getSecretKey()); + defaultApiKey = apiKeyManager.getDefaultApiKey(); + logger.info("default API key {}", defaultApiKey); + } + // Initialize Monitor monitor = new Monitor(cellBaseManagerFactory.getMetaManager()); + + INITIALIZED.set(true); } } private void initQuery() throws CellBaseException { - // Get default API key (for anonymous queries) - if (apiKeyManager == null) { - apiKeyManager = new ApiKeyManager(cellBaseConfiguration.getSecretKey()); - defaultApiKey = apiKeyManager.getDefaultApiKey(); - logger.info("default API key {}", defaultApiKey); - } - startTime = System.currentTimeMillis(); query = new Query(); uriParams = convertMultiToMap(uriInfo.getQueryParameters()); @@ -191,12 +195,10 @@ private void initQuery() throws CellBaseException { // Set default API key, if necessary String apiKey = uriParams.getOrDefault(API_KEY_PARAM, null); - logger.info("Before checking, API key {}", apiKey); if (StringUtils.isEmpty(apiKey)) { apiKey = defaultApiKey; uriParams.put(API_KEY_PARAM, apiKey); } - logger.info("After checking, API key {}", uriParams.get(API_KEY_PARAM)); checkLimit(); @@ -281,7 +283,8 @@ private void checkVersion() throws CellBaseException { } private void checkApiKey() throws CellBaseException { - if (!uriInfo.getPath().contains("health")) { + // Update the API key content only for non-meta endpoints + if (!uriInfo.getPath().contains("/meta/")) { String apiKey = getApiKey(); ApiKeyJwtPayload payload = apiKeyManager.decode(apiKey); @@ -422,7 +425,7 @@ protected Response createOkResponse(Object obj) { // Update API key stats, if necessary try { - if (!uriInfo.getPath().contains("health")) { + if (!uriInfo.getPath().contains("/meta/")) { String apiKey = getApiKey(); MetaManager metaManager = cellBaseManagerFactory.getMetaManager(); long bytes = (jsonResponse.getEntity() != null) ? jsonResponse.getEntity().toString().length() : 0; diff --git a/pom.xml b/pom.xml index 480934711..b916d25dc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.opencb.cellbase cellbase - 5.8.1-SNAPSHOT + 5.8.2-SNAPSHOT pom CellBase project @@ -24,7 +24,7 @@ ${project.version} 4.12.1-SNAPSHOT - 2.12.1-SNAPSHOT + 2.12.2-SNAPSHOT 0.1.0 2.11.4 1.9.13