Mercurial > hg > thermostat-ng > web-gateway
changeset 215:554b822def15
Unify common web service service code part 2
This code gets rid of MongoStorageHandler entirely, and enhances
MongoExecutor to handle all cases.
The common code is simpler.
At this point, almost any GET request (except for jvms/tree, which has
its own implementation) can return metadata and handle pagination.
Reviewed-by: sgehwolf
Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2017-July/024279.html
author | Simon Tooke <stooke@redhat.com> |
---|---|
date | Tue, 25 Jul 2017 14:26:07 -0400 |
parents | d9afe9c11b06 |
children | 638f67045739 |
files | common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/MongoStorageHandler.java common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/executor/MongoExecutor.java common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/servlet/MongoHttpHandlerHelper.java services/jvms/src/main/java/com/redhat/thermostat/gateway/service/jvms/mongo/JvmInfoMongoStorageHandler.java |
diffstat | 4 files changed, 81 insertions(+), 234 deletions(-) [+] |
line wrap: on
line diff
--- a/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/MongoStorageHandler.java Tue Jul 25 11:21:41 2017 -0400 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* - * Copyright 2012-2017 Red Hat, Inc. - * - * This file is part of Thermostat. - * - * Thermostat is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published - * by the Free Software Foundation; either version 2, or (at your - * option) any later version. - * - * Thermostat is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with Thermostat; see the file COPYING. If not see - * <http://www.gnu.org/licenses/>. - * - * Linking this code with other modules is making a combined work - * based on this code. Thus, the terms and conditions of the GNU - * General Public License cover the whole combination. - * - * As a special exception, the copyright holders of this code give - * you permission to link this code with independent modules to - * produce an executable, regardless of the license terms of these - * independent modules, and to copy and distribute the resulting - * executable under terms of your choice, provided that you also - * meet, for each linked independent module, the terms and conditions - * of the license of that module. An independent module is a module - * which is not derived from or based on this code. If you modify - * this code, you may extend this exception to your version of the - * library, but you are not obligated to do so. If you do not wish - * to do so, delete this exception statement from your version. - */ - -package com.redhat.thermostat.gateway.common.mongodb; - -import static com.mongodb.client.model.Filters.and; -import static com.mongodb.client.model.Filters.eq; -import static com.mongodb.client.model.Projections.exclude; -import static com.mongodb.client.model.Projections.excludeId; -import static com.mongodb.client.model.Projections.fields; -import static com.mongodb.client.model.Projections.include; -import static com.redhat.thermostat.gateway.common.mongodb.filters.MongoRequestFilters.buildAnd; -import static com.redhat.thermostat.gateway.common.mongodb.filters.MongoRequestFilters.buildEq; - -import java.util.Arrays; -import java.util.List; - -import com.redhat.thermostat.gateway.common.mongodb.filters.MongoQuery; -import org.bson.Document; -import org.bson.conversions.Bson; - -import com.mongodb.BasicDBObject; -import com.mongodb.CursorType; -import com.mongodb.DBObject; -import com.mongodb.client.FindIterable; -import com.mongodb.client.MongoCollection; -import com.mongodb.util.JSON; -import com.redhat.thermostat.gateway.common.mongodb.filters.MongoRequestFilters; -import com.redhat.thermostat.gateway.common.mongodb.filters.MongoSortFilters; -import com.redhat.thermostat.gateway.common.mongodb.response.MongoResponseBuilder; - -public class MongoStorageHandler { - - private static final String SET_FIELD_NAME = "set"; - - private final MongoResponseBuilder.Builder mongoResponseBuilder = new MongoResponseBuilder.Builder(); - - public String getMany(MongoCollection<Document> collection, String queries, Integer limit, Integer offset, String sort, String includes, String excludes) { - final MongoQuery query = queries == null ? null : new MongoQuery(MongoRequestFilters.buildQueriesFilter(queries)); - return getMany(collection, query, limit, offset, sort, includes, excludes); - } - - public String getMany(MongoCollection<Document> collection, Bson query, Integer limit, Integer offset, String sort, String includes, String excludes) { - FindIterable<Document> documents = query == null ? collection.find() : collection.find(query); - documents = buildProjection(documents, includes, excludes); - final Bson sortObject = MongoSortFilters.createSortObject(sort); - documents = documents.sort(sortObject).limit(limit).skip(offset).batchSize(limit).cursorType(CursorType.NonTailable); - return mongoResponseBuilder.addQueryDocuments(documents).build(); - } - - private FindIterable<Document> buildProjection(FindIterable<Document> documents, String includes, String excludes) { - if (excludes != null) { - List<String> excludesList = Arrays.asList(excludes.split(",")); - documents = documents.projection(fields(exclude(excludesList), excludeId())); - } else if (includes != null) { - List<String> includesList = Arrays.asList(includes.split(",")); - documents = documents.projection(fields(include(includesList), excludeId())); - } else { - documents = documents.projection(excludeId()); - } - - return documents; - } - - public void addSystemObjects(MongoCollection<DBObject> collection, String systemId, String body) { - if (body.length() > 0) { - List<DBObject> inputList = (List<DBObject>) JSON.parse(body); - for (DBObject o : inputList) { - o.put(ThermostatFields.SYSTEM_ID, systemId); - } - collection.insertMany(inputList); - } - } - - public void addJvmObjects(MongoCollection<DBObject> collection, String systemId, String jvmId, String body) { - if (body.length() > 0) { - List<DBObject> inputList = (List<DBObject>) JSON.parse(body); - for (DBObject o : inputList) { - o.put(ThermostatFields.SYSTEM_ID, systemId); - o.put(ThermostatFields.JVM_ID, jvmId); - } - collection.insertMany(inputList); - } - } - - public void deleteMany(MongoCollection<Document> collection, Bson query) { - collection.deleteMany(query); - } - - public void updateOneSystemObject(MongoCollection<Document> collection, final String systemId, String queries, String body) { - Bson sysQuery = buildEq(ThermostatFields.SYSTEM_ID, systemId); - Bson query = buildAnd(sysQuery, MongoRequestFilters.buildQueriesFilter(queries)); - - BasicDBObject inputObject = (BasicDBObject) JSON.parse(body); - BasicDBObject setObject = (BasicDBObject) inputObject.get(SET_FIELD_NAME); - - if (setObject.containsField(ThermostatFields.SYSTEM_ID)) { - throw new UnsupportedOperationException("Updating " + ThermostatFields.SYSTEM_ID + " field is not allowed"); - } - - final Bson fields = new Document("$set", setObject); - - collection.updateMany(query, fields); - } - - public void updateOneJvmObject(MongoCollection<Document> collection, final String systemId, final String jvmId, String queries, String body) { - Bson sysQuery = buildEq(ThermostatFields.SYSTEM_ID, systemId); - Bson jvmQuery = buildEq(ThermostatFields.JVM_ID, jvmId); - Bson query = buildAnd(buildAnd(sysQuery, jvmQuery), MongoRequestFilters.buildQueriesFilter(queries)); - - BasicDBObject inputObject = (BasicDBObject) JSON.parse(body); - BasicDBObject setObject = (BasicDBObject) inputObject.get(SET_FIELD_NAME); - - if (setObject.containsField(ThermostatFields.SYSTEM_ID)) { - throw new UnsupportedOperationException("Updating " + ThermostatFields.SYSTEM_ID + " field is not allowed"); - } - if (setObject.containsField(ThermostatFields.JVM_ID)) { - throw new UnsupportedOperationException("Updating " + ThermostatFields.JVM_ID + " field is not allowed"); - } - final Bson fields = new Document("$set", setObject); - - collection.updateMany(query, fields); - } -}
--- a/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/executor/MongoExecutor.java Tue Jul 25 11:21:41 2017 -0400 +++ b/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/executor/MongoExecutor.java Tue Jul 25 14:26:07 2017 -0400 @@ -47,7 +47,7 @@ import java.util.List; import java.util.Set; -import com.redhat.thermostat.gateway.common.mongodb.MongoStorageHandler; +import com.redhat.thermostat.gateway.common.mongodb.ThermostatFields; import org.bson.Document; import org.bson.conversions.Bson; @@ -87,8 +87,9 @@ } public MongoDataResultContainer execPutRequest(MongoCollection<Document> collection, String body, - String queries, Set<String> realms) throws IOException { - return execPutRequest(collection, body, buildClientQueries(queries), realms); + String queries, Set<String> realms, String systemId, String jvmId) throws IOException { + List<String> queryList = buildClientQueries(queries, systemId, jvmId); + return execPutRequest(collection, body, queryList, realms); } public MongoDataResultContainer execPutRequest(MongoCollection<Document> collection, String body, @@ -98,6 +99,9 @@ Document setDocument = inputDocument.get("set", Document.class); setDocument.remove(KeycloakFields.REALMS_KEY); + setDocument.remove(ThermostatFields.SYSTEM_ID); + setDocument.remove(ThermostatFields.JVM_ID); + final Bson fields = new Document("$set", setDocument); final Bson bsonQueries = MongoRequestFilters.buildQuery(queries, realms); @@ -115,7 +119,7 @@ return execDeleteRequest(collection, buildClientQueries(queries), realms); } - public MongoDataResultContainer execDeleteRequest(MongoCollection<Document> collection, List<String> queries, + private MongoDataResultContainer execDeleteRequest(MongoCollection<Document> collection, List<String> queries, Set<String> realms) { MongoDataResultContainer metaDataContainer = new MongoDataResultContainer(); if (queries != null && !queries.isEmpty() || realms != null && !realms.isEmpty()) { @@ -131,7 +135,7 @@ } public MongoDataResultContainer execPostRequest(MongoCollection<DBObject> collection, String body, - Set<String> realms) { + Set<String> realms, String systemId, String jvmId) { MongoDataResultContainer metaDataContainer = new MongoDataResultContainer(); if (body.length() > 0) { @@ -142,7 +146,12 @@ if (realms != null && !realms.isEmpty()) { object.put(KeycloakFields.REALMS_KEY, realms); } - + if (systemId != null && !systemId.isEmpty()) { + object.put(ThermostatFields.SYSTEM_ID, systemId); + } + if (jvmId != null && !jvmId.isEmpty()) { + object.put(ThermostatFields.JVM_ID, jvmId); + } } collection.insertMany(inputList); @@ -151,6 +160,10 @@ return metaDataContainer; } + private List<String> buildClientQueries(String queries, String systemId, String jvmId) throws IOException { + return buildClientQueries(andSystemIdJvmIdQuery(queries, systemId, jvmId)); + } + private List<String> buildClientQueries(String queries) throws IOException { if (queries != null) { List<String> queriesList = Arrays.asList(queries.split(",")); @@ -179,4 +192,22 @@ return documents; } + + private String andSystemIdJvmIdQuery(final String originalQuery, final String systemId, final String jvmId) { + if (jvmId == null || jvmId.isEmpty()) { + final String sysQuery = (isNullOrEmpty(systemId) ? null : ThermostatFields.SYSTEM_ID + "==\"" + systemId + '"'); + if (sysQuery == null) { + return originalQuery; + } + return isNullOrEmpty(originalQuery) ? sysQuery : sysQuery + ',' + originalQuery; + } else { + final String jvmQuery = ThermostatFields.JVM_ID + "==\"" + jvmId ; + final String sysJvmQuery = jvmQuery + (isNullOrEmpty(systemId) ? "" : ',' + ThermostatFields.SYSTEM_ID + "==\"" + systemId + '"'); + return isNullOrEmpty(originalQuery) ? sysJvmQuery : sysJvmQuery + ',' + originalQuery; + } + } + + private final boolean isNullOrEmpty(final String s) { + return s == null || s.isEmpty(); + } } \ No newline at end of file
--- a/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/servlet/MongoHttpHandlerHelper.java Tue Jul 25 11:21:41 2017 -0400 +++ b/common/mongodb/src/main/java/com/redhat/thermostat/gateway/common/mongodb/servlet/MongoHttpHandlerHelper.java Tue Jul 25 14:26:07 2017 -0400 @@ -39,14 +39,12 @@ import com.mongodb.DBObject; import com.mongodb.MongoTimeoutException; import com.mongodb.MongoWriteException; + import com.redhat.thermostat.gateway.common.core.auth.keycloak.RealmAuthorizer; -import com.redhat.thermostat.gateway.common.mongodb.MongoStorageHandler; import com.redhat.thermostat.gateway.common.mongodb.ThermostatFields; import com.redhat.thermostat.gateway.common.mongodb.ThermostatMongoStorage; import com.redhat.thermostat.gateway.common.mongodb.executor.MongoDataResultContainer; import com.redhat.thermostat.gateway.common.mongodb.executor.MongoExecutor; -import com.redhat.thermostat.gateway.common.mongodb.filters.MongoQuery; -import com.redhat.thermostat.gateway.common.mongodb.filters.MongoRequestFilters; import com.redhat.thermostat.gateway.common.mongodb.response.MongoMetaDataGenerator; import com.redhat.thermostat.gateway.common.mongodb.response.MongoMetaDataResponseBuilder; import com.redhat.thermostat.gateway.common.mongodb.response.MongoResponseBuilder; @@ -67,7 +65,6 @@ private final String collectionName; private final MongoExecutor mongoExecutor = new MongoExecutor(); - private final MongoStorageHandler mongoStorageHandler = new MongoStorageHandler(); private final HttpResponseExceptionHandler exceptionHandler = new HttpResponseExceptionHandler(); public MongoHttpHandlerHelper(String collectionName) { @@ -84,29 +81,12 @@ * HTTP GET handling */ - public Response handleGetWithJvmID(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String jvmId, Integer limit, Integer offset, String sort, String queries, String includes, String excludes, String returnMetadata) { - try { - ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); - final MongoQuery querySystemId = new MongoQuery(MongoRequestFilters.buildEq(ThermostatFields.SYSTEM_ID, systemId)); - final MongoQuery queryJvmId = new MongoQuery(MongoRequestFilters.buildEq(ThermostatFields.JVM_ID, jvmId)); - String message = mongoStorageHandler.getMany(storage.getDatabase().getCollection(collectionName), - MongoRequestFilters.buildAnd(querySystemId, queryJvmId), 1, 0, null, includes, excludes); - return Response.status(Response.Status.OK).entity(message).build(); - } catch (Exception e) { - return Response.status(Response.Status.BAD_REQUEST).build(); - } + public Response handleGetWithSystemID(HttpServletRequest httpServletRequest, ServletContext context, String systemId, Integer limit, Integer offset, String sort, String queries, String includes, String excludes, String returnMetadata) { + return handleGet(httpServletRequest, context, limit, offset, sort, andSystemIdQuery(queries, systemId), includes, excludes, returnMetadata); } - public Response handleGetWithSystemID(HttpServletRequest httpServletRequest, ServletContext context, String systemId, Integer limit, Integer offset, String sort, String queries, String includes, String excludes, String returnMetadata) { - try { - final ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); - final MongoQuery systemIdQuery = new MongoQuery(MongoRequestFilters.buildEq(ThermostatFields.SYSTEM_ID, systemId)); - final MongoQuery query = new MongoQuery(MongoRequestFilters.buildAnd(systemIdQuery, MongoRequestFilters.buildQueriesFilter(queries))); - final String message = mongoStorageHandler.getMany(storage.getDatabase().getCollection(collectionName), query, limit, offset, sort, includes, excludes); - return Response.status(Response.Status.OK).entity(message).build(); - } catch (Exception e) { - return exceptionHandler.generateResponseForException(e); - } + public Response handleGetWithJvmID(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String jvmId, Integer limit, Integer offset, String sort, String queries, String includes, String excludes, String returnMetadata) { + return handleGet(httpServletRequest, context, limit, offset, sort, andSystemIdJvmIdQuery(queries, systemId, jvmId), includes, excludes, returnMetadata); } public Response handleGet(HttpServletRequest httpServletRequest, ServletContext context, Integer limit, Integer offset, String sort, String queries, String includes, String excludes, String returnMetadata) { @@ -153,38 +133,30 @@ */ public Response handlePutWithSystemId(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String queries, String metadata, String body) { - try { - ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); - mongoStorageHandler.updateOneSystemObject(storage.getDatabase().getCollection(collectionName), systemId, queries, body); - return Response.status(Response.Status.OK).build(); - } catch (Exception e) { - return exceptionHandler.generateResponseForException(e); - } + return handlePut(httpServletRequest, context, systemId, null, queries, metadata, body); } public Response handlePutWithJvmId(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String jvmId, String queries, String metadata, String body) { - try { - ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); - mongoStorageHandler.updateOneJvmObject(storage.getDatabase().getCollection(collectionName), systemId, jvmId, queries, body); - return Response.status(Response.Status.OK).build(); - } catch (Exception e) { - return exceptionHandler.generateResponseForException(e); - } + return handlePut(httpServletRequest, context, systemId, jvmId, queries, metadata, body); } public Response handlePut(HttpServletRequest httpServletRequest, ServletContext context, String queries, String metadata, String body) { + return handlePut(httpServletRequest, context, null, null, queries, metadata, body); + } + + public Response handlePut(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String jvmId, String queries, String metadata, String body) { try { RealmAuthorizer realmAuthorizer = (RealmAuthorizer) httpServletRequest.getAttribute(RealmAuthorizer.class.getName()); ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); if (realmAuthorizer != null) { if (realmAuthorizer.updatable()) { - mongoExecutor.execPutRequest(storage.getDatabase().getCollection(collectionName), body, queries, realmAuthorizer.getUpdatableRealms()); + mongoExecutor.execPutRequest(storage.getDatabase().getCollection(collectionName), body, queries, realmAuthorizer.getUpdatableRealms(), systemId, jvmId); } else { return Response.status(Response.Status.FORBIDDEN).build(); } } else { - mongoExecutor.execPutRequest(storage.getDatabase().getCollection(collectionName), body, queries, null); + mongoExecutor.execPutRequest(storage.getDatabase().getCollection(collectionName), body, queries, null, systemId, jvmId); } return Response.status(Response.Status.OK).build(); @@ -198,28 +170,26 @@ */ public Response handlePostWithSystemID(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String returnMetadata, String body) { - try { - ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); - mongoStorageHandler.addSystemObjects(storage.getDatabase().getCollection(collectionName, DBObject.class), systemId, body); - return Response.status(Response.Status.OK).build(); - } catch (Exception e) { - return exceptionHandler.generateResponseForException(e); - } + return handlePost(httpServletRequest, context, systemId, null, returnMetadata, body); } - public Response handlePost(HttpServletRequest httpServletRequest, ServletContext context, String metadata, String body) { + public Response handlePost(HttpServletRequest httpServletRequest, ServletContext context, String returnMetadata, String body) { + return handlePost(httpServletRequest, context, null, null, returnMetadata, body); + } + + public Response handlePost(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String jvmId, String metadata, String body) { try { RealmAuthorizer realmAuthorizer = (RealmAuthorizer) httpServletRequest.getAttribute(RealmAuthorizer.class.getName()); ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); if (realmAuthorizer != null) { if (realmAuthorizer.writable()) { - mongoExecutor.execPostRequest(storage.getDatabase().getCollection(collectionName, DBObject.class), body, realmAuthorizer.getWritableRealms()); + mongoExecutor.execPostRequest(storage.getDatabase().getCollection(collectionName, DBObject.class), body, realmAuthorizer.getWritableRealms(), systemId, jvmId); } else { return Response.status(Response.Status.FORBIDDEN).build(); } } else { - mongoExecutor.execPostRequest(storage.getDatabase().getCollection(collectionName, DBObject.class), body, null); + mongoExecutor.execPostRequest(storage.getDatabase().getCollection(collectionName, DBObject.class), body, null, systemId, jvmId); } return Response.status(Response.Status.OK).build(); } catch (Exception e) { @@ -232,26 +202,11 @@ */ public Response handleDeleteWithSystemID(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String queries, String metadata) { - try { - ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); - final MongoQuery query = new MongoQuery(MongoRequestFilters.buildEq(ThermostatFields.SYSTEM_ID, systemId)); - mongoStorageHandler.deleteMany(storage.getDatabase().getCollection(collectionName), query); - return Response.status(Response.Status.OK).build(); - } catch(Exception e) { - return exceptionHandler.generateResponseForException(e); - } + return handleDelete(httpServletRequest, context, andSystemIdQuery(queries, systemId), metadata); } public Response handleDeleteWithJvmID(HttpServletRequest httpServletRequest, ServletContext context, String systemId, String jvmId, String queries, String metadata) { - try { - ThermostatMongoStorage storage = (ThermostatMongoStorage) context.getAttribute(ServletContextConstants.MONGODB_CLIENT_ATTRIBUTE); - final MongoQuery querySystemId = new MongoQuery(MongoRequestFilters.buildEq(ThermostatFields.SYSTEM_ID, systemId)); - final MongoQuery queryJvmId = new MongoQuery(MongoRequestFilters.buildEq(ThermostatFields.JVM_ID, jvmId)); - mongoStorageHandler.deleteMany(storage.getDatabase().getCollection(collectionName), MongoRequestFilters.buildAnd(querySystemId, queryJvmId)); - return Response.status(Response.Status.OK).build(); - } catch (Exception e) { - return exceptionHandler.generateResponseForException(e); - } + return handleDelete(httpServletRequest, context, andSystemIdJvmIdQuery(queries, systemId, jvmId), metadata); } public Response handleDelete(HttpServletRequest httpServletRequest, ServletContext context, String queries, String metadata) { @@ -273,4 +228,24 @@ return exceptionHandler.generateResponseForException(e); } } + + /* + * Utility code + */ + + private String andSystemIdQuery(final String originalQuery, final String systemId) { + final String sysQuery = ThermostatFields.SYSTEM_ID + "==\"" + systemId + '"'; + return isNullOrEmpty(originalQuery) ? sysQuery : sysQuery + ',' + originalQuery; + } + + private String andSystemIdJvmIdQuery(final String originalQuery, final String systemId, final String jvmId) { + final String jvmQuery = ThermostatFields.JVM_ID + "==\"" + jvmId + '"'; + final String sysJvmQuery = jvmQuery + (isNullOrEmpty(systemId) ? "" : ',' + ThermostatFields.SYSTEM_ID + "==\"" + systemId + '"'); + return isNullOrEmpty(originalQuery) ? sysJvmQuery : sysJvmQuery + ',' + originalQuery; + } + + private final boolean isNullOrEmpty(final String s) { + return s == null || s.isEmpty(); + } + }
--- a/services/jvms/src/main/java/com/redhat/thermostat/gateway/service/jvms/mongo/JvmInfoMongoStorageHandler.java Tue Jul 25 11:21:41 2017 -0400 +++ b/services/jvms/src/main/java/com/redhat/thermostat/gateway/service/jvms/mongo/JvmInfoMongoStorageHandler.java Tue Jul 25 14:26:07 2017 -0400 @@ -52,8 +52,6 @@ import java.util.List; import java.util.Map; -import com.redhat.thermostat.gateway.common.mongodb.MongoStorageHandler; - import org.bson.Document; import org.bson.conversions.Bson; @@ -62,7 +60,7 @@ import com.mongodb.client.MongoCollection; import com.mongodb.util.JSON; -public class JvmInfoMongoStorageHandler extends MongoStorageHandler { +public class JvmInfoMongoStorageHandler { private static final String SET_KEY = "$set";