Browse Source

AMBARI-18253. Fix LogSearch utility classes (Miklos Gergely via oleewere)

oleewere 9 years ago
parent
commit
db69ed7bd3
43 changed files with 554 additions and 759 deletions
  1. 4 4
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java
  2. 17 21
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java
  3. 2 2
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java
  4. 4 5
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java
  5. 2 3
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java
  6. 10 16
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java
  7. 10 10
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java
  8. 8 8
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java
  9. 7 14
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java
  10. 14 13
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java
  11. 6 11
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java
  12. 15 21
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java
  13. 1 5
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java
  14. 44 49
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java
  15. 12 10
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java
  16. 105 106
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogsMgr.java
  17. 9 21
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/MgrBase.java
  18. 22 25
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java
  19. 19 17
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGeneration.java
  20. 13 21
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGenerationBase.java
  21. 0 4
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsREST.java
  22. 0 4
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigREST.java
  23. 4 4
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/metrics/SolrMetricsLoader.java
  24. 9 18
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/BizUtil.java
  25. 4 0
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/CommonUtil.java
  26. 11 21
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/DateUtil.java
  27. 7 10
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/FileUtil.java
  28. 19 22
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/JSONUtil.java
  29. 0 132
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/QueryBase.java
  30. 8 8
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/RESTErrorUtil.java
  31. 132 32
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/SolrUtil.java
  32. 2 9
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchAuthFailureHandler.java
  33. 1 7
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchAuthenticationEntryPoint.java
  34. 13 13
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchKRBAuthenticationFilter.java
  35. 4 4
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LdapUtil.java
  36. 2 2
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAbstractAuthenticationProvider.java
  37. 1 12
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProvider.java
  38. 5 8
      ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProvider.java
  39. 2 2
      ambari-logsearch/ambari-logsearch-portal/src/main/webapp/META-INF/applicationContext.xml
  40. 0 1
      ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/SolrDaoBaseTest.java
  41. 4 9
      ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/UserConfigSolrDaoTest.java
  42. 2 2
      ambari-logsearch/ambari-logsearch-portal/src/test/resources/applicationContext.xml
  43. 0 53
      ambari-logsearch/ambari-logsearch-portal/src/test/resources/applicationContext_testManagers.xml

+ 4 - 4
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java

@@ -25,10 +25,10 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 
+import org.apache.ambari.logsearch.common.ConfigHelper;
 import org.apache.ambari.logsearch.common.ManageStartEndTime;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.solr.metrics.SolrMetricsLoader;
-import org.apache.ambari.logsearch.util.ConfigUtil;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.eclipse.jetty.server.Connector;
@@ -92,7 +92,7 @@ public class LogSearch {
     logger.debug(server.dump());
     logger
         .debug("==============================================================================");
-    ConfigUtil.initializeApplicationConfig();
+    ConfigHelper.initializeApplicationConfig();
     server.join();
   }
 
@@ -100,7 +100,7 @@ public class LogSearch {
     Server server = new Server();
     ServerConnector connector = new ServerConnector(server);
     boolean portSpecified = argv.length > 0;
-    String protcolProperty = PropertiesUtil.getProperty(LOGSEARCH_PROTOCOL_PROP,HTTP_PROTOCOL);
+    String protcolProperty = PropertiesHelper.getProperty(LOGSEARCH_PROTOCOL_PROP,HTTP_PROTOCOL);
     if (StringUtils.isEmpty(protcolProperty)) {
       protcolProperty = HTTP_PROTOCOL;
     }

+ 17 - 21
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/ConfigUtil.java → ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java

@@ -17,14 +17,13 @@
  * under the License.
  */
 
-package org.apache.ambari.logsearch.util;
+package org.apache.ambari.logsearch.common;
 
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import org.apache.ambari.logsearch.common.LogSearchConstants;
-import org.apache.ambari.logsearch.common.MessageEnums;
+
 import org.apache.ambari.logsearch.dao.SolrDaoBase;
 import org.apache.ambari.logsearch.manager.MgrBase;
 import org.apache.commons.lang.ArrayUtils;
@@ -32,16 +31,25 @@ import org.apache.log4j.Logger;
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONObject;
 
-public class ConfigUtil {
+public class ConfigHelper {
   private static final Logger logger = Logger.getLogger(MgrBase.class);
 
   public static HashMap<String, String> serviceLogsColumnMapping = new HashMap<String, String>();
-
   public static HashMap<String, String> auditLogsColumnMapping = new HashMap<String, String>();
 
-
+  private ConfigHelper() {
+    throw new UnsupportedOperationException();
+  }
+  
   public static void initializeApplicationConfig() {
-    initializeColumnMapping();
+    String serviceLogsColumnMappingArray[] = PropertiesHelper.getPropertyStringList("logsearch.solr.service.logs.column.mapping");
+    String auditLogsColumnMappingArray[] = PropertiesHelper.getPropertyStringList("logsearch.solr.audit.logs.column.mapping");
+
+    // Initializing column mapping for Service Logs
+    intializeUISolrColumnMapping(serviceLogsColumnMappingArray, serviceLogsColumnMapping);
+
+    // Initializing column mapping for Audit Logs
+    intializeUISolrColumnMapping(auditLogsColumnMappingArray, auditLogsColumnMapping);
   }
 
   private static void intializeUISolrColumnMapping(String columnMappingArray[], HashMap<String, String> columnMappingMap) {
@@ -59,16 +67,6 @@ public class ConfigUtil {
       }
     }
   }
-  private static void initializeColumnMapping() {
-    String serviceLogsColumnMappingArray[] = PropertiesUtil.getPropertyStringList("logsearch.solr.service.logs.column.mapping");
-    String auditLogsColumnMappingArray[] = PropertiesUtil.getPropertyStringList("logsearch.solr.audit.logs.column.mapping");
-
-    // Initializing column mapping for Service Logs
-    intializeUISolrColumnMapping(serviceLogsColumnMappingArray, serviceLogsColumnMapping);
-
-    // Initializing column mapping for Audit Logs
-    intializeUISolrColumnMapping(auditLogsColumnMappingArray, auditLogsColumnMapping);
-  }
 
   public static void extractSchemaFieldsName(String responseString, HashMap<String, String> schemaFieldsNameMap,
       HashMap<String, String> schemaFieldTypeMap) {
@@ -97,10 +95,8 @@ public class ConfigUtil {
         JSONObject explrObject = jsonArrayList.getJSONObject(i);
         String name = explrObject.getString("name");
         String type = explrObject.getString("type");
-        if (!name.contains("@") && !name.startsWith("_")
-            && !name.contains("_md5") && !name.contains("_ms")
-            && !name.contains(LogSearchConstants.NGRAM_SUFFIX)
-            && !name.contains("tags") && !name.contains("_str")) {
+        if (!name.contains("@") && !name.startsWith("_") && !name.contains("_md5") && !name.contains("_ms") &&
+            !name.contains(LogSearchConstants.NGRAM_SUFFIX) && !name.contains("tags") && !name.contains("_str")) {
           _schemaFieldsNameMap.put(name, type);
         }
       }

+ 2 - 2
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/ExternalServerClient.java → ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java

@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.ambari.logsearch.util;
+package org.apache.ambari.logsearch.common;
 
 import java.util.List;
 import java.util.Map;
@@ -53,7 +53,7 @@ public class ExternalServerClient {
 
   @PostConstruct
   public void initialization() {
-    hostURL = PropertiesUtil.getProperty(
+    hostURL = PropertiesHelper.getProperty(
         LogsearchAbstractAuthenticationProvider.AUTH_METHOD_PROP_START_WITH
             + "external_auth.host_url", hostURL);
   }

+ 4 - 5
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/PropertiesUtil.java → ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java

@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.ambari.logsearch.util;
+package org.apache.ambari.logsearch.common;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -33,15 +33,14 @@ import org.springframework.beans.BeansException;
 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
 import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
 
-public class PropertiesUtil extends PropertyPlaceholderConfigurer {
-  private static final Logger logger = Logger.getLogger(PropertiesUtil.class);
+public class PropertiesHelper extends PropertyPlaceholderConfigurer {
+  private static final Logger logger = Logger.getLogger(PropertiesHelper.class);
   
   private static final String LOGSEARCH_PROP_FILE="logsearch.properties";
   
   private static Map<String, String> propertiesMap;
 
-  private PropertiesUtil() {
-
+  private PropertiesHelper() {
   }
   
  static {

+ 2 - 3
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java

@@ -26,7 +26,6 @@ import java.util.Set;
 
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.commons.lang.StringEscapeUtils;
 
 public class SearchCriteria {
@@ -58,7 +57,7 @@ public class SearchCriteria {
       if (request.getParameter("pageSize") != null && (!request.getParameter("pageSize").isEmpty())) {
         this.maxRows = new Integer(request.getParameter("pageSize"));
       } else {
-        this.maxRows = PropertiesUtil.getIntProperty("db.maxResults", 50);
+        this.maxRows = PropertiesHelper.getIntProperty("db.maxResults", 50);
       }
     } catch (NumberFormatException e) {
       // do nothing
@@ -197,7 +196,7 @@ public class SearchCriteria {
    * @param caId
    */
   public void addParam(String name, Object value) {
-    String solrValue = PropertiesUtil.getProperty(name);
+    String solrValue = PropertiesHelper.getProperty(name);
     if (solrValue == null || solrValue.isEmpty()) {
       paramList.put(name, value);
     } else {

+ 10 - 16
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/XMLPropertiesUtil.java → ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java

@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.ambari.logsearch.util;
+package org.apache.ambari.logsearch.common;
 
 import java.io.IOException;
 import java.io.InputStream;
@@ -33,22 +33,20 @@ import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
-public class XMLPropertiesUtil extends DefaultPropertiesPersister {
-  private static Logger logger = Logger.getLogger(XMLPropertiesUtil.class);
+public class XMLPropertiesHelper extends DefaultPropertiesPersister {
+  private static Logger logger = Logger.getLogger(XMLPropertiesHelper.class);
 
-  public XMLPropertiesUtil() {
+  public XMLPropertiesHelper() {
   }
 
   @Override
   public void loadFromXml(Properties properties, InputStream inputStream)
       throws IOException {
     try {
-      DocumentBuilderFactory xmlDocumentBuilderFactory = DocumentBuilderFactory
-          .newInstance();
+      DocumentBuilderFactory xmlDocumentBuilderFactory = DocumentBuilderFactory.newInstance();
       xmlDocumentBuilderFactory.setIgnoringComments(true);
       xmlDocumentBuilderFactory.setNamespaceAware(true);
-      DocumentBuilder xmlDocumentBuilder = xmlDocumentBuilderFactory
-          .newDocumentBuilder();
+      DocumentBuilder xmlDocumentBuilder = xmlDocumentBuilderFactory.newDocumentBuilder();
       Document xmlDocument = xmlDocumentBuilder.parse(inputStream);
       if (xmlDocument != null) {
         xmlDocument.getDocumentElement().normalize();
@@ -60,15 +58,11 @@ public class XMLPropertiesUtil extends DefaultPropertiesPersister {
               Element eElement = (Element) nNode;
               String propertyName = "";
               String propertyValue = "";
-              if (eElement.getElementsByTagName("name") != null
-                  && eElement.getElementsByTagName("name").item(0) != null) {
-                propertyName = eElement.getElementsByTagName("name").item(0)
-                    .getTextContent().trim();
+              if (eElement.getElementsByTagName("name") != null && eElement.getElementsByTagName("name").item(0) != null) {
+                propertyName = eElement.getElementsByTagName("name").item(0).getTextContent().trim();
               }
-              if (eElement.getElementsByTagName("value") != null
-                  && eElement.getElementsByTagName("value").item(0) != null) {
-                propertyValue = eElement.getElementsByTagName("value").item(0)
-                    .getTextContent().trim();
+              if (eElement.getElementsByTagName("value") != null && eElement.getElementsByTagName("value").item(0) != null) {
+                propertyValue = eElement.getElementsByTagName("value").item(0).getTextContent().trim();
               }
               if (propertyName != null && !propertyName.isEmpty()) {
                 properties.put(propertyName, propertyValue);

+ 10 - 10
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java

@@ -24,8 +24,8 @@ import java.util.Collection;
 
 import javax.annotation.PostConstruct;
 
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.manager.MgrBase.LogType;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
@@ -41,15 +41,15 @@ public class AuditSolrDao extends SolrDaoBase {
 
   @PostConstruct
   public void postConstructor() {
-    String solrUrl = PropertiesUtil.getProperty("logsearch.solr.audit.logs.url");
-    String zkConnectString = PropertiesUtil.getProperty("logsearch.solr.audit.logs.zk_connect_string");
-    String collection = PropertiesUtil.getProperty("logsearch.solr.collection.audit.logs", "audit_logs");
-    String aliasNameIn = PropertiesUtil.getProperty("logsearch.solr.audit.logs.alias.name", "audit_logs_alias");
-    String rangerAuditCollection = PropertiesUtil.getProperty("logsearch.ranger.audit.logs.collection.name");
-    String splitInterval = PropertiesUtil.getProperty("logsearch.audit.logs.split.interval.mins", "none");
-    String configName = PropertiesUtil.getProperty("logsearch.solr.audit.logs.config.name", "audit_logs");
-    int numberOfShards = PropertiesUtil.getIntProperty("logsearch.collection.audit.logs.numshards", 1);
-    int replicationFactor = PropertiesUtil.getIntProperty("logsearch.collection.audit.logs.replication.factor", 1);
+    String solrUrl = PropertiesHelper.getProperty("logsearch.solr.audit.logs.url");
+    String zkConnectString = PropertiesHelper.getProperty("logsearch.solr.audit.logs.zk_connect_string");
+    String collection = PropertiesHelper.getProperty("logsearch.solr.collection.audit.logs", "audit_logs");
+    String aliasNameIn = PropertiesHelper.getProperty("logsearch.solr.audit.logs.alias.name", "audit_logs_alias");
+    String rangerAuditCollection = PropertiesHelper.getProperty("logsearch.ranger.audit.logs.collection.name");
+    String splitInterval = PropertiesHelper.getProperty("logsearch.audit.logs.split.interval.mins", "none");
+    String configName = PropertiesHelper.getProperty("logsearch.solr.audit.logs.config.name", "audit_logs");
+    int numberOfShards = PropertiesHelper.getIntProperty("logsearch.collection.audit.logs.numshards", 1);
+    int replicationFactor = PropertiesHelper.getIntProperty("logsearch.collection.audit.logs.replication.factor", 1);
 
     try {
       connectToSolr(solrUrl, zkConnectString, collection);

+ 8 - 8
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java

@@ -21,8 +21,8 @@ package org.apache.ambari.logsearch.dao;
 
 import javax.annotation.PostConstruct;
 
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.manager.MgrBase.LogType;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
@@ -38,13 +38,13 @@ public class ServiceLogsSolrDao extends SolrDaoBase {
   @PostConstruct
   public void postConstructor() {
     logger.info("postConstructor() called.");
-    String solrUrl = PropertiesUtil.getProperty("logsearch.solr.url");
-    String zkConnectString = PropertiesUtil.getProperty("logsearch.solr.zk_connect_string");
-    String collection = PropertiesUtil.getProperty("logsearch.solr.collection.service.logs", "hadoop_logs");
-    String splitInterval = PropertiesUtil.getProperty("logsearch.service.logs.split.interval.mins", "none");
-    String configName = PropertiesUtil.getProperty("logsearch.solr.service.logs.config.name", "hadoop_logs");
-    int numberOfShards = PropertiesUtil.getIntProperty("logsearch.collection.service.logs.numshards", 1);
-    int replicationFactor = PropertiesUtil.getIntProperty("logsearch.collection.service.logs.replication.factor", 1);
+    String solrUrl = PropertiesHelper.getProperty("logsearch.solr.url");
+    String zkConnectString = PropertiesHelper.getProperty("logsearch.solr.zk_connect_string");
+    String collection = PropertiesHelper.getProperty("logsearch.solr.collection.service.logs", "hadoop_logs");
+    String splitInterval = PropertiesHelper.getProperty("logsearch.service.logs.split.interval.mins", "none");
+    String configName = PropertiesHelper.getProperty("logsearch.solr.service.logs.config.name", "hadoop_logs");
+    int numberOfShards = PropertiesHelper.getIntProperty("logsearch.collection.service.logs.numshards", 1);
+    int replicationFactor = PropertiesHelper.getIntProperty("logsearch.collection.service.logs.replication.factor", 1);
 
     try {
       connectToSolr(solrUrl, zkConnectString, collection);

+ 7 - 14
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java

@@ -26,12 +26,11 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 
+import org.apache.ambari.logsearch.common.ConfigHelper;
 import org.apache.ambari.logsearch.common.LogSearchContext;
 import org.apache.ambari.logsearch.common.MessageEnums;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.manager.MgrBase.LogType;
-import org.apache.ambari.logsearch.util.ConfigUtil;
-import org.apache.ambari.logsearch.util.JSONUtil;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.ambari.logsearch.util.RESTErrorUtil;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
@@ -56,7 +55,6 @@ import org.apache.solr.common.cloud.Replica;
 import org.apache.solr.common.cloud.Slice;
 import org.apache.solr.common.cloud.ZkStateReader;
 import org.apache.solr.common.util.NamedList;
-import org.springframework.beans.factory.annotation.Autowired;
 
 import com.google.common.annotations.VisibleForTesting;
 
@@ -75,11 +73,6 @@ public abstract class SolrDaoBase {
 
   private LogType logType;
 
-  @Autowired
-  protected JSONUtil jsonUtil;
-  @Autowired
-  protected RESTErrorUtil restErrorUtil;
-
   @VisibleForTesting
   protected String collectionName = null;
   @VisibleForTesting
@@ -446,7 +439,7 @@ public abstract class SolrDaoBase {
       }
       return queryResponse;
     } else {
-      throw restErrorUtil.createRESTException("Solr configuration improper for " + logType.getLabel() +" logs",
+      throw RESTErrorUtil.createRESTException("Solr configuration improper for " + logType.getLabel() +" logs",
           MessageEnums.ERROR_SYSTEM);
     }
   }
@@ -468,8 +461,8 @@ public abstract class SolrDaoBase {
   }
 
   private void setupSecurity() {
-    String jaasFile = PropertiesUtil.getProperty("logsearch.solr.jaas.file", "/etc/security/keytabs/logsearch_solr.service.keytab");
-    boolean securityEnabled = PropertiesUtil.getBooleanProperty("logsearch.solr.kerberos.enable", false);
+    String jaasFile = PropertiesHelper.getProperty("logsearch.solr.jaas.file", "/etc/security/keytabs/logsearch_solr.service.keytab");
+    boolean securityEnabled = PropertiesHelper.getBooleanProperty("logsearch.solr.kerberos.enable", false);
     if (securityEnabled) {
       System.setProperty("java.security.auth.login.config", jaasFile);
       HttpClientUtil.setConfigurer(new Krb5HttpClientConfigurer());
@@ -519,7 +512,7 @@ public abstract class SolrDaoBase {
     SolrRequest<SchemaResponse> request = new SchemaRequest();
     request.setMethod(METHOD.GET);
     request.setPath("/schema");
-    String historyCollection = PropertiesUtil.getProperty("logsearch.solr.collection.history","history");
+    String historyCollection = PropertiesHelper.getProperty("logsearch.solr.collection.history","history");
     if (solrClient != null && !collectionName.equals(historyCollection)) {
       NamedList<Object> namedList = null;
       try {
@@ -530,7 +523,7 @@ public abstract class SolrDaoBase {
       }
       
       if (namedList != null) {
-        ConfigUtil.extractSchemaFieldsName(namedList.toString(), schemaFieldsNameMap,schemaFieldTypeMap);
+        ConfigHelper.extractSchemaFieldsName(namedList.toString(), schemaFieldsNameMap,schemaFieldTypeMap);
         return true;
       }
     }

+ 14 - 13
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java

@@ -29,6 +29,7 @@ import java.util.Scanner;
 import javax.annotation.PostConstruct;
 import org.apache.ambari.logsearch.view.VLogfeederFilterWrapper;
 import org.apache.ambari.logsearch.common.LogSearchConstants;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.response.QueryResponse;
@@ -42,7 +43,7 @@ import org.codehaus.jettison.json.JSONObject;
 import com.google.gson.JsonParseException;
 
 import org.apache.ambari.logsearch.manager.MgrBase.LogType;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
+import org.apache.ambari.logsearch.util.JSONUtil;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
@@ -59,11 +60,11 @@ public class UserConfigSolrDao extends SolrDaoBase {
 
   @PostConstruct
   public void postConstructor() {
-    String solrUrl = PropertiesUtil.getProperty("logsearch.solr.url");
-    String zkConnectString = PropertiesUtil.getProperty("logsearch.solr.zk_connect_string");
-    String collection = PropertiesUtil.getProperty("logsearch.solr.collection.history", "history");
-    String configName = PropertiesUtil.getProperty("logsearch.solr.history.config.name", "history");
-    int replicationFactor = PropertiesUtil.getIntProperty("logsearch.collection.history.replication.factor", 2);
+    String solrUrl = PropertiesHelper.getProperty("logsearch.solr.url");
+    String zkConnectString = PropertiesHelper.getProperty("logsearch.solr.zk_connect_string");
+    String collection = PropertiesHelper.getProperty("logsearch.solr.collection.history", "history");
+    String configName = PropertiesHelper.getProperty("logsearch.solr.history.config.name", "history");
+    int replicationFactor = PropertiesHelper.getIntProperty("logsearch.collection.history.replication.factor", 2);
     String splitInterval = "none";
     int numberOfShards = 1;
 
@@ -88,7 +89,7 @@ public class UserConfigSolrDao extends SolrDaoBase {
 
   public void saveUserFilter(VLogfeederFilterWrapper logfeederFilterWrapper) throws SolrException, SolrServerException, IOException {
     String filterName = LogSearchConstants.LOGFEEDER_FILTER_NAME;
-    String json = jsonUtil.objToJson(logfeederFilterWrapper);
+    String json = JSONUtil.objToJson(logfeederFilterWrapper);
     SolrInputDocument configDocument = new SolrInputDocument();
     configDocument.addField(LogSearchConstants.ID, logfeederFilterWrapper.getId());
     configDocument.addField(LogSearchConstants.ROW_TYPE, filterName);
@@ -115,14 +116,14 @@ public class UserConfigSolrDao extends SolrDaoBase {
     VLogfeederFilterWrapper logfeederFilterWrapper = null;
     if (!CollectionUtils.isEmpty(documentList)) {
       SolrDocument configDoc = documentList.get(0);
-      String configJson = jsonUtil.objToJson(configDoc);
-      HashMap<String, Object> configMap = (HashMap<String, Object>) jsonUtil.jsonToMapObject(configJson);
+      String configJson = JSONUtil.objToJson(configDoc);
+      HashMap<String, Object> configMap = (HashMap<String, Object>) JSONUtil.jsonToMapObject(configJson);
       String json = (String) configMap.get(LogSearchConstants.VALUES);
-      logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil.jsonToObj(json, VLogfeederFilterWrapper.class);
+      logfeederFilterWrapper = (VLogfeederFilterWrapper) JSONUtil.jsonToObj(json, VLogfeederFilterWrapper.class);
       logfeederFilterWrapper.setId("" + configDoc.get(LogSearchConstants.ID));
 
     } else {
-      String logfeederDefaultLevels = PropertiesUtil.getProperty("logsearch.logfeeder.include.default.level", DEFAULT_LEVELS);
+      String logfeederDefaultLevels = PropertiesHelper.getProperty("logsearch.logfeeder.include.default.level", DEFAULT_LEVELS);
       JSONArray levelJsonArray = new JSONArray(Arrays.asList(logfeederDefaultLevels.split(",")));
 
       String hadoopServiceString = getHadoopServiceConfigJSON();
@@ -148,7 +149,7 @@ public class UserConfigSolrDao extends SolrDaoBase {
           }
         }
         jsonValue.put("filter", componentList);
-        logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil.jsonToObj(jsonValue.toString(), VLogfeederFilterWrapper.class);
+        logfeederFilterWrapper = (VLogfeederFilterWrapper) JSONUtil.jsonToObj(jsonValue.toString(), VLogfeederFilterWrapper.class);
         logfeederFilterWrapper.setId(""+new Date().getTime());
         saveUserFilter(logfeederFilterWrapper);
 
@@ -181,7 +182,7 @@ public class UserConfigSolrDao extends SolrDaoBase {
     }
 
     String hadoopServiceConfig = result.toString();
-    if (jsonUtil.isJSONValid(hadoopServiceConfig)) {
+    if (JSONUtil.isJSONValid(hadoopServiceConfig)) {
       return hadoopServiceConfig;
     }
     return null;

+ 6 - 11
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java

@@ -28,11 +28,10 @@ import javax.annotation.PostConstruct;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.GrantedAuthority;
 import org.springframework.stereotype.Repository;
-
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.util.CommonUtil;
 import org.apache.ambari.logsearch.util.FileUtil;
 import org.apache.ambari.logsearch.util.JSONUtil;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.ambari.logsearch.web.model.Privilege;
 import org.apache.ambari.logsearch.web.model.Role;
 import org.apache.ambari.logsearch.web.model.User;
@@ -51,10 +50,6 @@ public class UserDao {
   private static final String ENC_PASSWORD = "en_password";
   private static final String NAME = "name";
 
-  @Autowired
-  private JSONUtil jsonUtil;
-  @Autowired
-  private FileUtil fileUtil;
   @Autowired
   private LogsearchFileAuthenticationProvider fileAuthenticationProvider;
 
@@ -65,21 +60,21 @@ public class UserDao {
   public void initialization() {
     if (fileAuthenticationProvider.isEnable()) {
       try {
-        String userPassJsonFileName = PropertiesUtil.getProperty("logsearch.login.credentials.file");
+        String userPassJsonFileName = PropertiesHelper.getProperty("logsearch.login.credentials.file");
         logger.info("USER PASS JSON  file NAME:" + userPassJsonFileName);
-        File jsonFile = fileUtil.getFileFromClasspath(userPassJsonFileName);
+        File jsonFile = FileUtil.getFileFromClasspath(userPassJsonFileName);
         if (jsonFile == null || !jsonFile.exists()) {
           logger.fatal("user_pass json file not found in classpath :" + userPassJsonFileName);
           System.exit(1);
         }
-        HashMap<String, Object> userInfos = jsonUtil.readJsonFromFile(jsonFile);
+        HashMap<String, Object> userInfos = JSONUtil.readJsonFromFile(jsonFile);
         userList = (ArrayList<HashMap<String, String>>) userInfos.get("users");
         if (userList != null) {
           boolean isUpdated = this.encryptAllPassword();
           userInfos.put("users", userList);
           if (isUpdated) {
-            String jsonStr = jsonUtil.mapToJSON(userInfos);
-            jsonUtil.writeJSONInFile(jsonStr, jsonFile, true);
+            String jsonStr = JSONUtil.mapToJSON(userInfos);
+            JSONUtil.writeJSONInFile(jsonStr, jsonFile, true);
           }
         } else {
           userList = new ArrayList<HashMap<String, String>>();

+ 15 - 21
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java

@@ -47,8 +47,6 @@ import org.apache.solr.common.util.SimpleOrderedMap;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-
-
 @Component
 public class GraphDataGenerator extends GraphDataGeneratorBase {
 
@@ -56,10 +54,6 @@ public class GraphDataGenerator extends GraphDataGeneratorBase {
 
   @Autowired
   private QueryGeneration queryGenerator;
-  @Autowired
-  private RESTErrorUtil restErrorUtil;
-  @Autowired
-  private SolrUtil solrUtil;
 
   public VBarDataList getAnyGraphData(SearchCriteria searchCriteria, SolrDaoBase solrDaoBase, SolrQuery solrQuery) {
     // X axis credentials
@@ -131,10 +125,10 @@ public class GraphDataGenerator extends GraphDataGeneratorBase {
     Collection<VBarGraphData> vBarGraphDatas = new ArrayList<VBarGraphData>();
     VBarGraphData vBarGraphData = new VBarGraphData();
     Collection<VNameValue> vNameValues = new ArrayList<VNameValue>();
-    queryGenerator.setMainQuery(solrQuery, null);
+    SolrUtil.setMainQuery(solrQuery, null);
     queryGenerator.setSingleIncludeFilter(solrQuery, fieldTime, "[" + from + " TO " + to + "]");
     if (typeXAxis.contains("string") || typeXAxis.contains("key_lower_case") || typeXAxis.contains("text")) {
-      queryGenerator.setFacetField(solrQuery, xAxisField);
+      SolrUtil.setFacetField(solrQuery, xAxisField);
       try {
         QueryResponse response = solrDaoBase.process(solrQuery);
         if (response != null && response.getResults() != null) {
@@ -184,10 +178,10 @@ public class GraphDataGenerator extends GraphDataGeneratorBase {
         logger.error("Got exception for solr query :" + query, e.getCause());
       }
     } else {
-      queryGenerator.setRowCount(solrQuery, 0);
+      SolrUtil.setRowCount(solrQuery, 0);
       String yAxis = yAxisField.contains("count") ? "sum" : yAxisField;
       String jsonQuery = queryGenerator.buildJSONFacetAggregatedFuncitonQuery(yAxis, xAxisField);
-      queryGenerator.setJSONFacet(solrQuery, jsonQuery);
+      SolrUtil.setJSONFacet(solrQuery, jsonQuery);
       try {
         QueryResponse response = solrDaoBase.process(solrQuery);
         SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) response.getResponse().get("facets");
@@ -218,17 +212,17 @@ public class GraphDataGenerator extends GraphDataGeneratorBase {
     VBarDataList dataList = new VBarDataList();
     Collection<VBarGraphData> vGraphData = new ArrayList<VBarGraphData>();
     String mainQuery = queryGenerator.buildInclusiveRangeFilterQuery(fieldTime, from, to);
-    queryGenerator.setMainQuery(solrQuery, mainQuery);
-    queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
+    SolrUtil.setMainQuery(solrQuery, mainQuery);
+    SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
     String jsonQuery = "";
-    if (solrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) {
+    if (SolrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) {
       String function = (yAxisField.contains("count")) ? "sum" : yAxisField;
       jsonQuery = queryGenerator.buidlJSONFacetRangeQueryForNumber(stackField, xAxisField, function);
     } else {
       jsonQuery = queryGenerator.buildJsonFacetTermsRangeQuery(stackField, xAxisField);
     }
     try {
-      queryGenerator.setJSONFacet(solrQuery, jsonQuery);
+      SolrUtil.setJSONFacet(solrQuery, jsonQuery);
       dataList.setGraphData(vGraphData);
       QueryResponse response = solrDaoBase.process(solrQuery);
       if (response == null) {
@@ -268,7 +262,7 @@ public class GraphDataGenerator extends GraphDataGeneratorBase {
     } catch (SolrException | IOException | SolrServerException e) {
       String query = solrQuery != null ? solrQuery.toQueryString() : "";
       logger.error("Got exception for solr query :" + query, e.getCause());
-      throw restErrorUtil.createRESTException(MessageEnums.DATA_NOT_FOUND.getMessage().getMessage(), MessageEnums.DATA_NOT_FOUND);
+      throw RESTErrorUtil.createRESTException(MessageEnums.DATA_NOT_FOUND.getMessage().getMessage(), MessageEnums.DATA_NOT_FOUND);
     }
   }
 
@@ -279,13 +273,13 @@ public class GraphDataGenerator extends GraphDataGeneratorBase {
     Collection<VBarGraphData> vBarGraphDatas = new ArrayList<VBarGraphData>();
     VBarGraphData vBarGraphData = new VBarGraphData();
     Collection<VNameValue> vNameValues = new ArrayList<VNameValue>();
-    queryGenerator.setMainQuery(solrQuery, null);
-    if (solrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) {
+    SolrUtil.setMainQuery(solrQuery, null);
+    if (SolrUtil.isSolrFieldNumber(typeXAxis,solrDaoBase)) {
       queryGenerator.setSingleRangeFilter(solrQuery, fieldTime, from, to);
       return normalGraph(xAxisField, yAxisField, from, to, solrDaoBase, typeXAxis, fieldTime, solrQuery);
     } else {
       try {
-        queryGenerator.setFacetRange(solrQuery, xAxisField, from, to, unit);
+        SolrUtil.setFacetRange(solrQuery, xAxisField, from, to, unit);
         QueryResponse response = solrDaoBase.process(solrQuery);
         if (response != null) {
           Long count = response.getResults().getNumFound();
@@ -322,13 +316,13 @@ public class GraphDataGenerator extends GraphDataGeneratorBase {
       SolrDaoBase solrDaoBase, SolrQuery solrQuery) {
     VBarDataList dataList = new VBarDataList();
     List<VBarGraphData> histogramData = new ArrayList<VBarGraphData>();
-    queryGenerator.setMainQuery(solrQuery, null);
-    queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
+    SolrUtil.setMainQuery(solrQuery, null);
+    SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
     String jsonHistogramQuery =
         queryGenerator.buildJSONFacetTermTimeRangeQuery(stackField, xAxisField, from, to, unit).replace("\\", "");
     try {
       solrQuery.set("json.facet", jsonHistogramQuery);
-      queryGenerator.setRowCount(solrQuery, 0);
+      SolrUtil.setRowCount(solrQuery, 0);
       QueryResponse response = solrDaoBase.process(solrQuery);
       if (response != null) {
         SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) response.getResponse().get("facets");

+ 1 - 5
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java

@@ -30,13 +30,9 @@ import org.apache.ambari.logsearch.view.VNameValue;
 import org.apache.commons.lang.StringUtils;
 import org.apache.solr.common.util.NamedList;
 import org.apache.solr.common.util.SimpleOrderedMap;
-import org.springframework.beans.factory.annotation.Autowired;
 
 class GraphDataGeneratorBase extends MgrBase {
 
-  @Autowired
-  private DateUtil dateUtil;
-
   private static final String BUCKETS = "buckets";
   
   private static enum DataType {
@@ -86,7 +82,7 @@ class GraphDataGeneratorBase extends MgrBase {
                   for (Object levelBucket : levelBuckets) {
                     SimpleOrderedMap<Object> countValue = (SimpleOrderedMap<Object>) levelBucket;
                     if (countValue != null) {
-                      String innerName = dateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0));
+                      String innerName = DateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0));
                       String innerValue = countValue.getVal(1) != null ? countValue.getVal(1).toString() : "";
                       VNameValue vNameValue = new VNameValue(innerName, innerValue);
                       vNameValues.add(vNameValue);

+ 44 - 49
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java

@@ -32,17 +32,18 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 
+import org.apache.ambari.logsearch.common.ConfigHelper;
 import org.apache.ambari.logsearch.common.LogSearchConstants;
 import org.apache.ambari.logsearch.common.ManageStartEndTime;
 import org.apache.ambari.logsearch.common.MessageEnums;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.common.SearchCriteria;
 import org.apache.ambari.logsearch.dao.AuditSolrDao;
 import org.apache.ambari.logsearch.graph.GraphDataGenerator;
 import org.apache.ambari.logsearch.util.BizUtil;
-import org.apache.ambari.logsearch.util.ConfigUtil;
 import org.apache.ambari.logsearch.util.DateUtil;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.ambari.logsearch.util.RESTErrorUtil;
+import org.apache.ambari.logsearch.util.SolrUtil;
 import org.apache.ambari.logsearch.view.VBarDataList;
 import org.apache.ambari.logsearch.view.VBarGraphData;
 import org.apache.ambari.logsearch.view.VGroupList;
@@ -72,12 +73,6 @@ public class AuditMgr extends MgrBase {
   @Autowired
   private AuditSolrDao auditSolrDao;
   @Autowired
-  private RESTErrorUtil restErrorUtil;
-  @Autowired
-  private BizUtil bizUtil;
-  @Autowired
-  private DateUtil dateUtil;
-  @Autowired
   private GraphDataGenerator graphDataGenerator;
 
   public String getLogs(SearchCriteria searchCriteria) {
@@ -101,8 +96,8 @@ public class AuditMgr extends MgrBase {
     SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria);
     SolrDocumentList docList = new SolrDocumentList();
     try {
-      queryGenerator.setFacetField(solrQuery, LogSearchConstants.AUDIT_COMPONENT);
-      queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
+      SolrUtil.setFacetField(solrQuery, LogSearchConstants.AUDIT_COMPONENT);
+      SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
       List<FacetField> facetFields = null;
       List<Count> componentsCount = new ArrayList<Count>();
       FacetField facetField = null;
@@ -131,7 +126,7 @@ public class AuditMgr extends MgrBase {
       return docList;
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
 
@@ -157,8 +152,8 @@ public class AuditMgr extends MgrBase {
       LogSearchConstants.AUDIT_EVTTIME, from, to, unit).replace("\\", "");
 
     try {
-      queryGenerator.setJSONFacet(solrQuery, jsonHistogramQuery);
-      queryGenerator.setRowCount(solrQuery, 0);
+      SolrUtil.setJSONFacet(solrQuery, jsonHistogramQuery);
+      SolrUtil.setRowCount(solrQuery, 0);
       QueryResponse response = auditSolrDao.process(solrQuery);
       if (response == null){
         return convertObjToString(dataList);
@@ -176,7 +171,7 @@ public class AuditMgr extends MgrBase {
 
     } catch (SolrServerException | SolrException | IOException e) {
       logger.error(e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
 
     }
   }
@@ -195,9 +190,9 @@ public class AuditMgr extends MgrBase {
 
       VNameValueList nameValueList = new VNameValueList(nameValues);
 
-      queryGenerator.setFacetField(solrQuery, facetField);
-      queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_COUNT);
-      queryGenerator.setFacetLimit(solrQuery, top.intValue());
+      SolrUtil.setFacetField(solrQuery, facetField);
+      SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_COUNT);
+      SolrUtil.setFacetLimit(solrQuery, top.intValue());
 
       List<Count> countList = new ArrayList<FacetField.Count>();
       QueryResponse queryResponse = auditSolrDao.process(solrQuery);
@@ -223,7 +218,7 @@ public class AuditMgr extends MgrBase {
 
     } catch (SolrException | IOException | SolrServerException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
 
@@ -234,11 +229,11 @@ public class AuditMgr extends MgrBase {
     solrQuery.setParam("event", "/audit/logs/live/count");
     try {
       Date[] timeRange = ManageStartEndTime.getStartEndTime();
-      String startDate = dateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[0]);
-      String endDate = dateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[1]);
+      String startDate = DateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[0]);
+      String endDate = DateUtil.convertGivenDateFormatToSolrDateFormat(timeRange[1]);
 
-      queryGenerator.setMainQuery(solrQuery, null);
-      queryGenerator.setFacetRange(solrQuery, LogSearchConstants.AUDIT_EVTTIME, startDate, endDate, "+2MINUTE");
+      SolrUtil.setMainQuery(solrQuery, null);
+      SolrUtil.setFacetRange(solrQuery, LogSearchConstants.AUDIT_EVTTIME, startDate, endDate, "+2MINUTE");
       List<RangeFacet.Count> listCount;
 
       QueryResponse response = auditSolrDao.process(solrQuery);
@@ -270,7 +265,7 @@ public class AuditMgr extends MgrBase {
     } catch (SolrException | SolrServerException | ParseException
       | IOException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
 
@@ -279,8 +274,8 @@ public class AuditMgr extends MgrBase {
     String jsonUserQuery =
         "{Users:{type:terms, field:reqUser, facet:{ Repo:{ type:terms, field:repo, facet:{eventCount:\"sum(event_count)\"}}}}}";
     SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria);
-    queryGenerator.setJSONFacet(solrQuery, jsonUserQuery);
-    queryGenerator.setRowCount(solrQuery, 0);
+    SolrUtil.setJSONFacet(solrQuery, jsonUserQuery);
+    SolrUtil.setRowCount(solrQuery, 0);
     try {
       VBarDataList vBarDataList = new VBarDataList();
       QueryResponse queryResponse = auditSolrDao.process(solrQuery);
@@ -302,12 +297,12 @@ public class AuditMgr extends MgrBase {
       if (jsonFacetResponse.toString().equals("{count=0}")) {
         return convertObjToString(vBarDataList);
       }
-      vBarDataList = bizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users");
+      vBarDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users");
       return convertObjToString(vBarDataList);
 
     } catch (SolrServerException | SolrException | IOException e) {
       logger.error("Error during solrQuery=" + e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
 
@@ -316,8 +311,8 @@ public class AuditMgr extends MgrBase {
     String jsonUserQuery =
         "{Users:{type:terms,field:resource,facet:{Repo:{type:terms,field:repo,facet:{eventCount:\"sum(event_count)\"}}}}}";
     SolrQuery solrQuery = queryGenerator.commonAuditFilterQuery(searchCriteria);
-    queryGenerator.setJSONFacet(solrQuery, jsonUserQuery);
-    queryGenerator.setRowCount(solrQuery, 0);
+    SolrUtil.setJSONFacet(solrQuery, jsonUserQuery);
+    SolrUtil.setRowCount(solrQuery, 0);
     try {
       VBarDataList vBarDataList = new VBarDataList();
       QueryResponse queryResponse = auditSolrDao.process(solrQuery);
@@ -333,12 +328,12 @@ public class AuditMgr extends MgrBase {
       @SuppressWarnings("unchecked")
       SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) namedList.get("facets");
 
-      vBarDataList = bizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users");
+      vBarDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users");
       return convertObjToString(vBarDataList);
 
     } catch (SolrServerException | SolrException | IOException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
 
@@ -354,14 +349,14 @@ public class AuditMgr extends MgrBase {
     VBarDataList dataList = new VBarDataList();
     List<VBarGraphData> histogramData = new ArrayList<VBarGraphData>();
 
-    queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
+    SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
 
     String jsonHistogramQuery = queryGenerator.buildJSONFacetTermTimeRangeQuery(LogSearchConstants.AUDIT_REQUEST_USER,
         LogSearchConstants.AUDIT_EVTTIME, from, to, unit).replace("\\", "");
 
     try {
-      queryGenerator.setJSONFacet(solrQuery, jsonHistogramQuery);
-      queryGenerator.setRowCount(solrQuery, 0);
+      SolrUtil.setJSONFacet(solrQuery, jsonHistogramQuery);
+      SolrUtil.setRowCount(solrQuery, 0);
       QueryResponse response = auditSolrDao.process(solrQuery);
       if (response == null){
         return convertObjToString(dataList);
@@ -378,19 +373,19 @@ public class AuditMgr extends MgrBase {
 
     } catch (SolrException | IOException | SolrServerException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
 
   }
 
   public String getAuditLogsSchemaFieldsName() {
-    String excludeArray[] = PropertiesUtil.getPropertyStringList("logsearch.solr.audit.logs.exclude.columnlist");
+    String excludeArray[] = PropertiesHelper.getPropertyStringList("logsearch.solr.audit.logs.exclude.columnlist");
     List<String> fieldNames = new ArrayList<String>();
     HashMap<String, String> uiFieldColumnMapping = new HashMap<String, String>();
-    ConfigUtil.getSchemaFieldsName(excludeArray, fieldNames,auditSolrDao);
+    ConfigHelper.getSchemaFieldsName(excludeArray, fieldNames,auditSolrDao);
 
     for (String fieldName : fieldNames) {
-      String uiField = ConfigUtil.auditLogsColumnMapping.get(fieldName + LogSearchConstants.SOLR_SUFFIX);
+      String uiField = ConfigHelper.auditLogsColumnMapping.get(fieldName + LogSearchConstants.SOLR_SUFFIX);
       if (uiField == null) {
         uiFieldColumnMapping.put(fieldName, fieldName);
       } else {
@@ -398,7 +393,7 @@ public class AuditMgr extends MgrBase {
       }
     }
 
-    uiFieldColumnMapping = bizUtil.sortHashMapByValues(uiFieldColumnMapping);
+    uiFieldColumnMapping = BizUtil.sortHashMapByValues(uiFieldColumnMapping);
     return convertObjToString(uiFieldColumnMapping);
 
   }
@@ -431,7 +426,7 @@ public class AuditMgr extends MgrBase {
       ArrayList<Object> levelBuckets = (ArrayList<Object>) ((NamedList<Object>) level.get(innerField)).get("buckets");
       for (Object temp1 : levelBuckets) {
         SimpleOrderedMap<Object> countValue = (SimpleOrderedMap<Object>) temp1;
-        String value = dateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0));
+        String value = DateUtil.convertDateWithMillisecondsToSolrDate((Date) countValue.getVal(0));
 
         String count = "" + countValue.getVal(1);
         VNameValue vNameValue = new VNameValue();
@@ -455,8 +450,8 @@ public class AuditMgr extends MgrBase {
     startTime = startTime == null ? "" : startTime;
     endTime = endTime == null ? "" : "_" + endTime;
 
-    queryGenerator.setJSONFacet(solrQuery, jsonUserQuery);
-    queryGenerator.setRowCount(solrQuery, 0);
+    SolrUtil.setJSONFacet(solrQuery, jsonUserQuery);
+    SolrUtil.setRowCount(solrQuery, 0);
 
     String dataFormat = (String) searchCriteria.getParamValue("format");
     FileOutputStream fis = null;
@@ -465,21 +460,21 @@ public class AuditMgr extends MgrBase {
       if(queryResponse == null){
         VResponse response = new VResponse();
         response.setMsgDesc("Query was not able to execute "+solrQuery);
-        throw restErrorUtil.createRESTException(response);
+        throw RESTErrorUtil.createRESTException(response);
       }
 
       NamedList<Object> namedList = queryResponse.getResponse();
       if (namedList == null) {
         VResponse response = new VResponse();
         response.setMsgDesc("Query was not able to execute "+solrQuery);
-        throw restErrorUtil.createRESTException(response);
+        throw RESTErrorUtil.createRESTException(response);
       }
       VBarDataList vBarUserDataList = new VBarDataList();
       VBarDataList vBarResourceDataList = new VBarDataList();
 
       SimpleOrderedMap<Object> jsonFacetResponse = (SimpleOrderedMap<Object>) namedList.get("facets");
-      vBarUserDataList = bizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users");
-      vBarResourceDataList = bizUtil.buildSummaryForTopCounts(jsonFacetResponse,"y","x");
+      vBarUserDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse,"Repo","Users");
+      vBarResourceDataList = BizUtil.buildSummaryForTopCounts(jsonFacetResponse,"y","x");
       String data = "";
       String summary = "";
       if ("text".equals(dataFormat)) {
@@ -570,7 +565,7 @@ public class AuditMgr extends MgrBase {
 
     } catch (SolrServerException | SolrException | IOException e) {
       logger.error("Error during solrQuery=" + e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     } finally {
       if (fis != null) {
         try {
@@ -599,7 +594,7 @@ public class AuditMgr extends MgrBase {
     SolrQuery serivceLoadQuery = queryGenerator.commonAuditFilterQuery(searchCriteria);
 
     try {
-      queryGenerator.setFacetField(serivceLoadQuery, LogSearchConstants.AUDIT_COMPONENT);
+      SolrUtil.setFacetField(serivceLoadQuery, LogSearchConstants.AUDIT_COMPONENT);
       QueryResponse serviceLoadResponse = auditSolrDao.process(serivceLoadQuery);
       if (serviceLoadResponse == null){
         return convertObjToString(dataList);
@@ -629,7 +624,7 @@ public class AuditMgr extends MgrBase {
 
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error during solrQuery=" + e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
 }

+ 12 - 10
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java

@@ -28,6 +28,8 @@ import org.apache.ambari.logsearch.common.SearchCriteria;
 import org.apache.ambari.logsearch.dao.AuditSolrDao;
 import org.apache.ambari.logsearch.dao.ServiceLogsSolrDao;
 import org.apache.ambari.logsearch.dao.SolrDaoBase;
+import org.apache.ambari.logsearch.util.RESTErrorUtil;
+import org.apache.ambari.logsearch.util.SolrUtil;
 import org.apache.ambari.logsearch.view.VLogFile;
 import org.apache.ambari.logsearch.view.VLogFileList;
 import org.apache.ambari.logsearch.view.VSolrLogList;
@@ -61,8 +63,8 @@ public class LogFileMgr extends MgrBase {
     String host = (String) searchCriteria.getParamValue("host");
     int minCount = 1;// to remove zero count facet
     SolrQuery solrQuery = new SolrQuery();
-    queryGenerator.setMainQuery(solrQuery, null);
-    queryGenerator.setFacetFieldWithMincount(solrQuery, LogSearchConstants.SOLR_PATH, minCount);
+    SolrUtil.setMainQuery(solrQuery, null);
+    SolrUtil.setFacetFieldWithMincount(solrQuery, LogSearchConstants.SOLR_PATH, minCount);
     // adding filter
     queryGenerator.setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_COMPONENT, componentName);
     queryGenerator.setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_HOST, host);
@@ -77,7 +79,7 @@ public class LogFileMgr extends MgrBase {
       } else if (logType.equalsIgnoreCase(LogType.AUDIT.name())) {
         daoMgr = auditSolrDao;
       } else {
-        throw restErrorUtil.createRESTException(logType + " is not a valid logType", MessageEnums.INVALID_INPUT_DATA);
+        throw RESTErrorUtil.createRESTException(logType + " is not a valid logType", MessageEnums.INVALID_INPUT_DATA);
       }
       QueryResponse queryResponse = daoMgr.process(solrQuery);
       if (queryResponse.getFacetField(LogSearchConstants.SOLR_PATH) != null) {
@@ -96,7 +98,7 @@ public class LogFileMgr extends MgrBase {
       }
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error in solr query  :" + e.getLocalizedMessage() + "\n Query :" + solrQuery.toQueryString(), e.getCause());
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
     logFileList.setLogFiles(logFiles);
     String jsonStr = "";
@@ -111,31 +113,31 @@ public class LogFileMgr extends MgrBase {
     String component = (String) searchCriteria.getParamValue("component");
     String tailSize = (String) searchCriteria.getParamValue("tailSize");
     if (StringUtils.isBlank(host)) {
-      throw restErrorUtil.createRESTException("missing Host Name", MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException("missing Host Name", MessageEnums.ERROR_SYSTEM);
     }
     tailSize = (StringUtils.isBlank(tailSize)) ? "10" : tailSize;
     SolrQuery logFileTailQuery = new SolrQuery();
     try {
       int tail = Integer.parseInt(tailSize);
       tail = tail > 100 ? 100 : tail;
-      queryGenerator.setMainQuery(logFileTailQuery, null);
+      SolrUtil.setMainQuery(logFileTailQuery, null);
       queryGenerator.setSingleIncludeFilter(logFileTailQuery, LogSearchConstants.SOLR_HOST, host);
       if (!StringUtils.isBlank(logFile)) {
-        queryGenerator.setSingleIncludeFilter(logFileTailQuery, LogSearchConstants.SOLR_PATH, solrUtil.makeSolrSearchString(logFile));
+        queryGenerator.setSingleIncludeFilter(logFileTailQuery, LogSearchConstants.SOLR_PATH, SolrUtil.makeSolrSearchString(logFile));
       } else if (!StringUtils.isBlank(component)) {
         queryGenerator.setSingleIncludeFilter(logFileTailQuery, LogSearchConstants.SOLR_COMPONENT, component);
       } else {
-        throw restErrorUtil.createRESTException("component or logfile parameter must be present", MessageEnums.ERROR_SYSTEM);
+        throw RESTErrorUtil.createRESTException("component or logfile parameter must be present", MessageEnums.ERROR_SYSTEM);
       }
 
-      queryGenerator.setRowCount(logFileTailQuery, tail);
+      SolrUtil.setRowCount(logFileTailQuery, tail);
       queryGenerator.setSortOrderDefaultServiceLog(logFileTailQuery, new SearchCriteria());
       VSolrLogList solrLogList = getLogAsPaginationProvided(logFileTailQuery, serviceLogsSolrDao);
       return convertObjToString(solrLogList);
 
     } catch (NumberFormatException ne) {
 
-      throw restErrorUtil.createRESTException(ne.getMessage(),
+      throw RESTErrorUtil.createRESTException(ne.getMessage(),
         MessageEnums.ERROR_SYSTEM);
 
     }

+ 105 - 106
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogsMgr.java

@@ -38,16 +38,19 @@ import java.util.concurrent.CopyOnWriteArrayList;
 
 import javax.ws.rs.core.Response;
 
+import org.apache.ambari.logsearch.common.ConfigHelper;
 import org.apache.ambari.logsearch.common.LogSearchConstants;
 import org.apache.ambari.logsearch.common.MessageEnums;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.common.SearchCriteria;
 import org.apache.ambari.logsearch.dao.ServiceLogsSolrDao;
 import org.apache.ambari.logsearch.graph.GraphDataGenerator;
 import org.apache.ambari.logsearch.query.QueryGenerationBase;
 import org.apache.ambari.logsearch.util.BizUtil;
-import org.apache.ambari.logsearch.util.ConfigUtil;
+import org.apache.ambari.logsearch.util.DateUtil;
 import org.apache.ambari.logsearch.util.FileUtil;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
+import org.apache.ambari.logsearch.util.RESTErrorUtil;
+import org.apache.ambari.logsearch.util.SolrUtil;
 import org.apache.ambari.logsearch.view.VBarDataList;
 import org.apache.ambari.logsearch.view.VBarGraphData;
 import org.apache.ambari.logsearch.view.VCount;
@@ -97,10 +100,6 @@ public class LogsMgr extends MgrBase {
   @Autowired
   private ServiceLogsSolrDao serviceLogsSolrDao;
   @Autowired
-  private BizUtil bizUtil;
-  @Autowired
-  private FileUtil fileUtil;
-  @Autowired
   private GraphDataGenerator graphDataGenerator;
 
   public String searchLogs(SearchCriteria searchCriteria) {
@@ -114,7 +113,7 @@ public class LogsMgr extends MgrBase {
         return getPageByKeyword(searchCriteria);
       } catch (SolrException | SolrServerException e) {
         logger.error("Error while getting keyword=" + keyword, e);
-        throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+        throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
             .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
       }
     } else if (!StringUtils.isBlank(logId)) {
@@ -122,7 +121,7 @@ public class LogsMgr extends MgrBase {
         return getPageByLogId(searchCriteria);
       } catch (SolrException e) {
         logger.error("Error while getting keyword=" + keyword, e);
-        throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+        throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
             .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
       }
     } else if (isLastPage) {
@@ -152,10 +151,10 @@ public class LogsMgr extends MgrBase {
 
     SolrQuery solrQuery = new SolrQuery();
     VGroupList collection = new VGroupList();
-    queryGenerator.setMainQuery(solrQuery, null);
-    queryGenerator.setFacetField(solrQuery,
+    SolrUtil.setMainQuery(solrQuery, null);
+    SolrUtil.setFacetField(solrQuery,
         field);
-    queryGenerator.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
+    SolrUtil.setFacetSort(solrQuery, LogSearchConstants.FACET_INDEX);
     try {
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
       if(response == null){
@@ -190,7 +189,7 @@ public class LogsMgr extends MgrBase {
       return convertObjToString(collection);
     } catch (IOException | SolrServerException | SolrException e) {
       logger.error(e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
 
@@ -205,8 +204,8 @@ public class LogsMgr extends MgrBase {
     String hierarchy = "host,type,level";
     VGraphInfo graphInfo = new VGraphInfo();
     try {
-      queryGenerator.setMainQuery(solrQuery, null);
-      queryGenerator.setFacetPivot(solrQuery, 1, hierarchy);
+      SolrUtil.setMainQuery(solrQuery, null);
+      SolrUtil.setFacetPivot(solrQuery, 1, hierarchy);
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
       if (response == null) {
         return convertObjToString(graphInfo);
@@ -228,7 +227,7 @@ public class LogsMgr extends MgrBase {
       return convertObjToString(graphInfo);
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
@@ -255,11 +254,11 @@ public class LogsMgr extends MgrBase {
     VCountList collection = new VCountList();
     List<VCount> vCounts = new ArrayList<VCount>();
     SolrQuery solrQuery = new SolrQuery();
-    queryGenerator.setMainQuery(solrQuery, null);
+    SolrUtil.setMainQuery(solrQuery, null);
     if(field == null){
       return collection;
     }
-    queryGenerator.setFacetField(solrQuery, field);
+    SolrUtil.setFacetField(solrQuery, field);
     try {
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
       if (response == null){
@@ -286,7 +285,7 @@ public class LogsMgr extends MgrBase {
 
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
 
@@ -419,7 +418,7 @@ public class LogsMgr extends MgrBase {
     VNodeList list = new VNodeList();
     try {
 
-      queryGenerator.setFacetPivot(solrQuery, 1, firstHirarchy,
+      SolrUtil.setFacetPivot(solrQuery, 1, firstHirarchy,
         secondHirarchy);
 
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
@@ -454,7 +453,7 @@ public class LogsMgr extends MgrBase {
       list.setvNodeList(dataList);
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
 
@@ -485,7 +484,7 @@ public class LogsMgr extends MgrBase {
     String secondHirarchy = "type,level";
 
     try {
-      queryGenerator.setFacetPivot(solrQuery, 1, firstHirarchy,
+      SolrUtil.setFacetPivot(solrQuery, 1, firstHirarchy,
         secondHirarchy);
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
       List<List<PivotField>> firstHirarchicalPivotFields = null;
@@ -516,7 +515,7 @@ public class LogsMgr extends MgrBase {
       return convertObjToString(list);
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
@@ -536,7 +535,7 @@ public class LogsMgr extends MgrBase {
     HashMap<String, String> map = new HashMap<String, String>();
     List<VNameValue> logsCounts = new ArrayList<VNameValue>();
     try {
-      queryGenerator.setFacetField(query, LogSearchConstants.SOLR_LEVEL);
+      SolrUtil.setFacetField(query, LogSearchConstants.SOLR_LEVEL);
       List<Count> logLevelCounts = getFacetCounts(query,
           LogSearchConstants.SOLR_LEVEL);
       if (logLevelCounts == null) {
@@ -587,11 +586,11 @@ public class LogsMgr extends MgrBase {
 
     String key = (String) searchCriteria.getParamValue("keyword");
     if(StringUtils.isBlank(key)){
-      throw restErrorUtil.createRESTException("Keyword was not given",
+      throw RESTErrorUtil.createRESTException("Keyword was not given",
           MessageEnums.DATA_NOT_FOUND);
     }
 
-    String keyword = solrUtil.escapeForStandardTokenizer(key);
+    String keyword = SolrUtil.escapeForStandardTokenizer(key);
 
     if(keyword.startsWith("\"") && keyword.endsWith("\"")){
       keyword = keyword.substring(1);
@@ -625,13 +624,13 @@ public class LogsMgr extends MgrBase {
         queryResponse = serviceLogsSolrDao.process(
             nextPageLogTimeQuery);
         if(queryResponse == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
 
         SolrDocumentList docList = queryResponse.getResults();
         if(docList ==null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
 
@@ -639,10 +638,10 @@ public class LogsMgr extends MgrBase {
 
         Date logDate = (Date) solrDoc.get(LogSearchConstants.LOGTIME);
         if(logDate == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
-        nextPageLogTime = dateUtil
+        nextPageLogTime = DateUtil
           .convertDateWithMillisecondsToSolrDate(logDate);
         nextPageLogID = ""
           + solrDoc.get(LogSearchConstants.ID);
@@ -661,17 +660,17 @@ public class LogsMgr extends MgrBase {
           LogSearchConstants.LOGTIME, "\"" + nextPageLogTime + "\"");
         queryGenerator.setSingleExcludeFilter(listRemoveIds,
           LogSearchConstants.ID, nextPageLogID);
-        queryGenerator.setFl(listRemoveIds, LogSearchConstants.ID);
+        SolrUtil.setFl(listRemoveIds, LogSearchConstants.ID);
         queryResponse = serviceLogsSolrDao.process(
             listRemoveIds);
         if(queryResponse == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
 
         SolrDocumentList docListIds = queryResponse.getResults();
         if(docListIds ==null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
         boolean isFirst = true;
@@ -726,13 +725,13 @@ public class LogsMgr extends MgrBase {
         queryResponse = serviceLogsSolrDao.process(
             logTimeThroughRangeQuery);
         if(queryResponse == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
 
         SolrDocumentList documentList = queryResponse.getResults();
         if(documentList ==null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
 
@@ -743,10 +742,10 @@ public class LogsMgr extends MgrBase {
 
         Date keywordLogDate = (Date) solrDocument.get(LogSearchConstants.LOGTIME);
         if(keywordLogDate == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
-        String originalKeywordDate = dateUtil
+        String originalKeywordDate = DateUtil
           .convertDateWithMillisecondsToSolrDate(keywordLogDate);
         String keywordId = "" + solrDocument.get(LogSearchConstants.ID);
 
@@ -758,14 +757,14 @@ public class LogsMgr extends MgrBase {
         if (!StringUtils.isBlank(sortByType) && sortByType
           .equalsIgnoreCase(LogSearchConstants.ASCENDING_ORDER)) {
           keywordLogDate = DateUtils.addMilliseconds(keywordLogDate, 1);
-          String keywordDateTime = dateUtil
+          String keywordDateTime = DateUtil
             .convertDateWithMillisecondsToSolrDate(keywordLogDate);
           queryGenerator.setSingleRangeFilter(rangeLogQuery,
             LogSearchConstants.LOGTIME, startTime,
             keywordDateTime);
         } else {
           keywordLogDate = DateUtils.addMilliseconds(keywordLogDate, -1);
-          String keywordDateTime = dateUtil
+          String keywordDateTime = DateUtil
             .convertDateWithMillisecondsToSolrDate(keywordLogDate);
           queryGenerator.setSingleRangeFilter(rangeLogQuery,
             LogSearchConstants.LOGTIME, keywordDateTime,
@@ -784,7 +783,7 @@ public class LogsMgr extends MgrBase {
             .commonServiceFilterQuery(searchCriteria);
           queryGenerator.setSingleIncludeFilter(sameIdQuery,
             LogSearchConstants.LOGTIME, "\"" + originalKeywordDate + "\"");
-          queryGenerator.setFl(sameIdQuery, LogSearchConstants.ID);
+          SolrUtil.setFl(sameIdQuery, LogSearchConstants.ID);
           SolrDocumentList sameQueryDocList = serviceLogsSolrDao.process(sameIdQuery)
             .getResults();
           for (SolrDocument solrDocumenent : sameQueryDocList) {
@@ -819,7 +818,7 @@ public class LogsMgr extends MgrBase {
         int maxRows = searchCriteria.getMaxRows();
 
         if (currentPageNumber == 0) {
-          throw restErrorUtil.createRESTException("This is first Page Not",
+          throw RESTErrorUtil.createRESTException("This is first Page Not",
             MessageEnums.DATA_NOT_FOUND);
         }
 
@@ -838,20 +837,20 @@ public class LogsMgr extends MgrBase {
         queryResponse = serviceLogsSolrDao.process(
             lastLogTime);
         if(queryResponse == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
 
         SolrDocumentList docList = queryResponse.getResults();
         if(docList ==null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
         SolrDocument solrDoc = docList.get(0);
 
         Date logDate = (Date) solrDoc.get(LogSearchConstants.LOGTIME);
         String sortByType = searchCriteria.getSortType();
-        lastLogsLogTime = dateUtil
+        lastLogsLogTime = DateUtil
           .convertDateWithMillisecondsToSolrDate(logDate);
         String lastLogsLogId = ""
           + solrDoc.get(LogSearchConstants.ID);
@@ -867,17 +866,17 @@ public class LogsMgr extends MgrBase {
           LogSearchConstants.LOGTIME, "\"" + lastLogsLogTime + "\"");
         queryGenerator.setSingleExcludeFilter(listRemoveIds,
           LogSearchConstants.ID, lastLogsLogId);
-        queryGenerator.setFl(listRemoveIds, LogSearchConstants.ID);
+        SolrUtil.setFl(listRemoveIds, LogSearchConstants.ID);
         queryResponse = serviceLogsSolrDao.process(
             lastLogTime);
         if(queryResponse == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
 
         SolrDocumentList docListIds = queryResponse.getResults();
         if(docListIds == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
         boolean isFirst = true;
@@ -942,13 +941,13 @@ public class LogsMgr extends MgrBase {
         queryResponse = serviceLogsSolrDao.process(
             logTimeThroughRangeQuery);
         if(queryResponse == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
 
         SolrDocumentList documentList = queryResponse.getResults();
         if(documentList == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
         SolrDocument solrDocument = new SolrDocument();
@@ -958,10 +957,10 @@ public class LogsMgr extends MgrBase {
 
         Date keywordLogDate = (Date) solrDocument.get(LogSearchConstants.LOGTIME);
         if(keywordLogDate == null){
-          throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+          throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
               MessageEnums.ERROR_SYSTEM);
         }
-        String originalKeywordDate = dateUtil
+        String originalKeywordDate = DateUtil
           .convertDateWithMillisecondsToSolrDate(keywordLogDate);
         String keywordId = "" + solrDocument.get(LogSearchConstants.ID);
 
@@ -972,8 +971,8 @@ public class LogsMgr extends MgrBase {
 
         if (!StringUtils.isBlank(sortByType) && sortByType
           .equalsIgnoreCase(LogSearchConstants.ASCENDING_ORDER)) {
-       //   keywordLogDate = dateUtil.addMilliSecondsToDate(keywordLogDate, 1);
-          String keywordDateTime = dateUtil
+       //   keywordLogDate = DateUtil.addMilliSecondsToDate(keywordLogDate, 1);
+          String keywordDateTime = DateUtil
             .convertDateWithMillisecondsToSolrDate(keywordLogDate);
           queryGenerator.setSingleRangeFilter(rangeLogQuery,
             LogSearchConstants.LOGTIME, startTime,
@@ -981,8 +980,8 @@ public class LogsMgr extends MgrBase {
 
 
         } else {
-     //     keywordLogDate = dateUtil.addMilliSecondsToDate(keywordLogDate, -1);
-          String keywordDateTime = dateUtil
+     //     keywordLogDate = DateUtil.addMilliSecondsToDate(keywordLogDate, -1);
+          String keywordDateTime = DateUtil
             .convertDateWithMillisecondsToSolrDate(keywordLogDate);
           queryGenerator.setSingleRangeFilter(rangeLogQuery,
             LogSearchConstants.LOGTIME, keywordDateTime,
@@ -998,7 +997,7 @@ public class LogsMgr extends MgrBase {
             .commonServiceFilterQuery(searchCriteria);
           queryGenerator.setSingleIncludeFilter(sameIdQuery,
             LogSearchConstants.LOGTIME, "\"" + originalKeywordDate + "\"");
-          queryGenerator.setFl(sameIdQuery, LogSearchConstants.ID);
+          SolrUtil.setFl(sameIdQuery, LogSearchConstants.ID);
           SolrDocumentList sameQueryDocList = serviceLogsSolrDao.process(sameIdQuery)
             .getResults();
           for (SolrDocument solrDocumenent : sameQueryDocList) {
@@ -1028,7 +1027,7 @@ public class LogsMgr extends MgrBase {
       }
 
     }
-    throw restErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
+    throw RESTErrorUtil.createRESTException("The keyword "+"\""+key+"\""+" was not found",
         MessageEnums.ERROR_SYSTEM);
   }
 
@@ -1051,10 +1050,10 @@ public class LogsMgr extends MgrBase {
     try {
 
       SolrQuery logTimeByIdQuery = new SolrQuery();
-      queryGenerator.setMainQuery(logTimeByIdQuery, null);
+      SolrUtil.setMainQuery(logTimeByIdQuery, null);
       queryGenerator.setSingleIncludeFilter(logTimeByIdQuery,
           LogSearchConstants.ID, logId);
-      queryGenerator.setRowCount(solrQuery, 1);
+      SolrUtil.setRowCount(solrQuery, 1);
 
       QueryResponse queryResponse = serviceLogsSolrDao
           .process(logTimeByIdQuery);
@@ -1073,9 +1072,9 @@ public class LogsMgr extends MgrBase {
       }
 
       if (dateOfLogId != null) {
-        logTime = dateUtil.convertDateWithMillisecondsToSolrDate(dateOfLogId);
+        logTime = DateUtil.convertDateWithMillisecondsToSolrDate(dateOfLogId);
         Date endDate = DateUtils.addMilliseconds(dateOfLogId, 1);
-        endTimeMinusOneMilli = (String) dateUtil
+        endTimeMinusOneMilli = (String) DateUtil
             .convertDateWithMillisecondsToSolrDate(endDate);
       }
 
@@ -1088,7 +1087,7 @@ public class LogsMgr extends MgrBase {
       solrQuery.remove(LogSearchConstants.LOGTIME);
       queryGenerator.setSingleRangeFilter(solrQuery,
           LogSearchConstants.LOGTIME, endTimeMinusOneMilli, endLogTime);
-      queryGenerator.setRowCount(solrQuery, 0);
+      SolrUtil.setRowCount(solrQuery, 0);
       startIndex = countQuery(solrQuery,serviceLogsSolrDao);
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error(e);
@@ -1128,7 +1127,7 @@ public class LogsMgr extends MgrBase {
       logger.error(e);
     }
 
-    throw restErrorUtil.createRESTException("LogId not Found",
+    throw RESTErrorUtil.createRESTException("LogId not Found",
         MessageEnums.ERROR_SYSTEM);
   }
 
@@ -1138,7 +1137,7 @@ public class LogsMgr extends MgrBase {
     List<VNameValue> logsCounts = new ArrayList<VNameValue>();
     try {
 
-      queryGenerator.setFacetRange(solrQuery, LogSearchConstants.LOGTIME,
+      SolrUtil.setFacetRange(solrQuery, LogSearchConstants.LOGTIME,
         from, to, unit);
 
       List<RangeFacet.Count> logLevelCounts = null;
@@ -1205,8 +1204,8 @@ public class LogsMgr extends MgrBase {
         "\\", "");
 
     try {
-      queryGenerator.setJSONFacet(solrQuery, jsonHistogramQuery);
-      queryGenerator.setRowCount(solrQuery,Integer.parseInt(deafalutValue));
+      SolrUtil.setJSONFacet(solrQuery, jsonHistogramQuery);
+      SolrUtil.setRowCount(solrQuery,Integer.parseInt(deafalutValue));
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
       if (response == null){
         return convertObjToString(dataList);
@@ -1259,7 +1258,7 @@ public class LogsMgr extends MgrBase {
 
     } catch (SolrServerException | SolrException | IOException e) {
       logger.error(e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
 
     }
@@ -1278,7 +1277,7 @@ public class LogsMgr extends MgrBase {
   public String cancelFindRequestByDate(String uniqueId) {
     if (StringUtils.isEmpty(uniqueId)) {
       logger.error("Unique id is Empty");
-      throw restErrorUtil.createRESTException("Unique id is Empty",
+      throw RESTErrorUtil.createRESTException("Unique id is Empty",
         MessageEnums.DATA_NOT_FOUND);
     }
 
@@ -1292,7 +1291,7 @@ public class LogsMgr extends MgrBase {
   public boolean cancelRequest(String uniqueId) {
     if (StringUtils.isBlank(uniqueId)) {
       logger.error("Unique id is Empty");
-      throw restErrorUtil.createRESTException("Unique id is Empty",
+      throw RESTErrorUtil.createRESTException("Unique id is Empty",
         MessageEnums.DATA_NOT_FOUND);
     }
     for (String date : cancelByDate) {
@@ -1318,10 +1317,10 @@ public class LogsMgr extends MgrBase {
       utcOffset = "0";
     }
 
-    if (!dateUtil.isDateValid(from) || !dateUtil.isDateValid(to)) {
+    if (!DateUtil.isDateValid(from) || !DateUtil.isDateValid(to)) {
       logger.error("Not valid date format. Valid format should be"
           + LogSearchConstants.SOLR_DATE_FORMAT_PREFIX_Z);
-      throw restErrorUtil.createRESTException("Not valid date format. Valid format should be"
+      throw RESTErrorUtil.createRESTException("Not valid date format. Valid format should be"
           + LogSearchConstants.SOLR_DATE_FORMAT_PREFIX_Z,
           MessageEnums.INVALID_INPUT_DATA);
 
@@ -1332,13 +1331,13 @@ public class LogsMgr extends MgrBase {
       to = to.replace("T", " ");
       to = to.replace(".", ",");
 
-      to = dateUtil.addOffsetToDate(to, Long.parseLong(utcOffset),
+      to = DateUtil.addOffsetToDate(to, Long.parseLong(utcOffset),
           "yyyy-MM-dd HH:mm:ss,SSS");
-      from = dateUtil.addOffsetToDate(from, Long.parseLong(utcOffset),
+      from = DateUtil.addOffsetToDate(from, Long.parseLong(utcOffset),
           "yyyy-MM-dd HH:mm:ss,SSS");
     }
 
-    String fileName = dateUtil.getCurrentDateInString();
+    String fileName = DateUtil.getCurrentDateInString();
     if (searchCriteria.getParamValue("hostLogFile") != null
       && searchCriteria.getParamValue("compLogFile") != null) {
       fileName = searchCriteria.getParamValue("hostLogFile") + "_"
@@ -1349,16 +1348,16 @@ public class LogsMgr extends MgrBase {
     try {
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
       if (response == null) {
-        throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+        throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
             .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
       }
       SolrDocumentList docList = response.getResults();
       if (docList == null) {
-        throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+        throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
             .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
       }
 
-      VSummary vsummary = bizUtil.buildSummaryForLogFile(docList);
+      VSummary vsummary = BizUtil.buildSummaryForLogFile(docList);
       vsummary.setFormat(format);
       vsummary.setFrom(from);
       vsummary.setTo(to);
@@ -1421,7 +1420,7 @@ public class LogsMgr extends MgrBase {
 
         Date logTimeDateObj = (Date) solrDoc.get(LogSearchConstants.LOGTIME);
         if(logTimeDateObj != null){
-        String logTime = dateUtil.convertSolrDateToNormalDateFormat(
+        String logTime = DateUtil.convertSolrDateToNormalDateFormat(
             logTimeDateObj.getTime(), Long.parseLong(utcOffset));
         solrDoc.remove(LogSearchConstants.LOGTIME);
         solrDoc.addField(LogSearchConstants.LOGTIME, logTime);
@@ -1429,20 +1428,20 @@ public class LogsMgr extends MgrBase {
       }
 
       if (format.toLowerCase(Locale.ENGLISH).equals(".txt")) {
-        textToSave = bizUtil.convertObjectToNormalText(docList);
+        textToSave = BizUtil.convertObjectToNormalText(docList);
       } else if (format.toLowerCase(Locale.ENGLISH).equals(".json")) {
         textToSave = convertObjToString(docList);
       } else {
-        throw restErrorUtil.createRESTException(
+        throw RESTErrorUtil.createRESTException(
             "unsoported format either should be json or text",
             MessageEnums.ERROR_SYSTEM);
       }
-      return fileUtil.saveToFile(textToSave, fileName, vsummary);
+      return FileUtil.saveToFile(textToSave, fileName, vsummary);
 
     } catch (SolrException | SolrServerException | IOException
       | ParseException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
@@ -1460,7 +1459,7 @@ public class LogsMgr extends MgrBase {
     VNodeList list = new VNodeList();
     try {
 
-      queryGenerator.setFacetPivot(solrQuery, 1, componentLevelHirachy);
+      SolrUtil.setFacetPivot(solrQuery, 1, componentLevelHirachy);
 
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
 
@@ -1498,7 +1497,7 @@ public class LogsMgr extends MgrBase {
       return convertObjToString(list);
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error(e.getMessage() + "SolrQuery"+solrQuery);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
@@ -1516,9 +1515,9 @@ public class LogsMgr extends MgrBase {
       queryGenerator.setSingleIncludeFilter(solrQuery,
         LogSearchConstants.BUNDLE_ID, bundelId);
 
-      queryGenerator.setMainQuery(solrQuery, null);
+      SolrUtil.setMainQuery(solrQuery, null);
       solrQuery.setSort(LogSearchConstants.LOGTIME, SolrQuery.ORDER.asc);
-      queryGenerator.setRowCount(solrQuery, 1);
+      SolrUtil.setRowCount(solrQuery, 1);
 
       List<VNameValue> vNameValues = new ArrayList<VNameValue>();
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
@@ -1544,11 +1543,11 @@ public class LogsMgr extends MgrBase {
       }
 
       solrQuery.clear();
-      queryGenerator.setMainQuery(solrQuery, null);
+      SolrUtil.setMainQuery(solrQuery, null);
       queryGenerator.setSingleIncludeFilter(solrQuery,
         LogSearchConstants.BUNDLE_ID, bundelId);
       solrQuery.setSort(LogSearchConstants.LOGTIME, SolrQuery.ORDER.desc);
-      queryGenerator.setRowCount(solrQuery, 1);
+      SolrUtil.setRowCount(solrQuery, 1);
 
       solrDocList.clear();
       response = serviceLogsSolrDao.process(solrQuery);
@@ -1595,14 +1594,14 @@ public class LogsMgr extends MgrBase {
   }
 
   public String getServiceLogsFieldsName() {
-    String fieldsNameStrArry[] = PropertiesUtil
+    String fieldsNameStrArry[] = PropertiesHelper
       .getPropertyStringList("logsearch.service.logs.fields");
     if (fieldsNameStrArry.length > 0) {
 
       List<String> uiFieldNames = new ArrayList<String>();
       String temp = null;
       for (String field : fieldsNameStrArry) {
-        temp = ConfigUtil.serviceLogsColumnMapping.get(field
+        temp = ConfigHelper.serviceLogsColumnMapping.get(field
             + LogSearchConstants.SOLR_SUFFIX);
         if (temp == null){
           uiFieldNames.add(field);
@@ -1613,7 +1612,7 @@ public class LogsMgr extends MgrBase {
       return convertObjToString(uiFieldNames);
 
     }
-    throw restErrorUtil.createRESTException(
+    throw RESTErrorUtil.createRESTException(
       "No field name found in property file",
       MessageEnums.DATA_NOT_FOUND);
 
@@ -1622,14 +1621,14 @@ public class LogsMgr extends MgrBase {
   public String getServiceLogsSchemaFieldsName() {
 
     List<String> fieldNames = new ArrayList<String>();
-    String excludeArray[] = PropertiesUtil
+    String excludeArray[] = PropertiesHelper
         .getPropertyStringList("logsearch.solr.service.logs.exclude.columnlist");
 
     HashMap<String, String> uiFieldColumnMapping = new LinkedHashMap<String, String>();
-    ConfigUtil.getSchemaFieldsName(excludeArray, fieldNames,serviceLogsSolrDao);
+    ConfigHelper.getSchemaFieldsName(excludeArray, fieldNames,serviceLogsSolrDao);
 
     for (String fieldName : fieldNames) {
-      String uiField = ConfigUtil.serviceLogsColumnMapping.get(fieldName
+      String uiField = ConfigHelper.serviceLogsColumnMapping.get(fieldName
           + LogSearchConstants.SOLR_SUFFIX);
       if (uiField != null) {
         uiFieldColumnMapping.put(fieldName, uiField);
@@ -1641,7 +1640,7 @@ public class LogsMgr extends MgrBase {
     HashMap<String, String> uiFieldColumnMappingSorted = new LinkedHashMap<String, String>();
     uiFieldColumnMappingSorted.put(LogSearchConstants.SOLR_LOG_MESSAGE, LogSearchConstants.SOLR_LOG_MESSAGE);
 
-    Iterator<Entry<String, String>> it = bizUtil
+    Iterator<Entry<String, String>> it = BizUtil
         .sortHashMapByValues(uiFieldColumnMapping).entrySet().iterator();
     while (it.hasNext()) {
       @SuppressWarnings("rawtypes")
@@ -1674,7 +1673,7 @@ public class LogsMgr extends MgrBase {
         .get(innerField)).get("buckets");
       for (Object temp1 : levelBuckets) {
         SimpleOrderedMap<Object> countValue = (SimpleOrderedMap<Object>) temp1;
-        String value = dateUtil
+        String value = DateUtil
           .convertDateWithMillisecondsToSolrDate((Date) countValue
             .getVal(0));
 
@@ -1724,9 +1723,9 @@ public class LogsMgr extends MgrBase {
     String sequenceId = null;
     try {
       SolrQuery solrQuery = new SolrQuery();
-      queryGenerator.setMainQuery(solrQuery,
+      SolrUtil.setMainQuery(solrQuery,
         queryGenerator.buildFilterQuery(LogSearchConstants.ID, id));
-      queryGenerator.setRowCount(solrQuery, 1);
+      SolrUtil.setRowCount(solrQuery, 1);
       QueryResponse response = serviceLogsSolrDao.process(solrQuery);
       if(response == null){
         return convertObjToString(vSolrLogList);
@@ -1735,7 +1734,7 @@ public class LogsMgr extends MgrBase {
       if (docList != null && !docList.isEmpty()) {
         Date date = (Date) docList.get(0).getFieldValue(
           LogSearchConstants.LOGTIME);
-        logTime = dateUtil.convertDateWithMillisecondsToSolrDate(date);
+        logTime = DateUtil.convertDateWithMillisecondsToSolrDate(date);
         sequenceId = ""
           + docList.get(0).getFieldValue(
           LogSearchConstants.SEQUNCE_ID);
@@ -1744,7 +1743,7 @@ public class LogsMgr extends MgrBase {
         return convertObjToString(vSolrLogList);
       }
     } catch (SolrServerException | SolrException | IOException e) {
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR
           .getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
     if (LogSearchConstants.SCROLL_TYPE_BEFORE.equals(scrollType)) {
@@ -1798,7 +1797,7 @@ public class LogsMgr extends MgrBase {
   private VSolrLogList whenScrollUp(SearchCriteria searchCriteria,
                                     String logTime, String sequenceId, String maxRows) {
     SolrQuery solrQuery = new SolrQuery();
-    queryGenerator.setMainQuery(solrQuery, null);
+    SolrUtil.setMainQuery(solrQuery, null);
     /*queryGenerator.setSingleExcludeFilter(solrQuery,
         LogSearchConstants.SEQUNCE_ID, sequenceId);*/
     try {
@@ -1815,7 +1814,7 @@ public class LogsMgr extends MgrBase {
 
     queryGenerator.setSingleRangeFilter(solrQuery,
       LogSearchConstants.LOGTIME, "*", logTime);
-    queryGenerator.setRowCount(solrQuery, Integer.parseInt(maxRows));
+    SolrUtil.setRowCount(solrQuery, Integer.parseInt(maxRows));
     String order1 = LogSearchConstants.LOGTIME + " "
       + LogSearchConstants.DESCENDING_ORDER;
     String order2 = LogSearchConstants.SEQUNCE_ID + " "
@@ -1832,7 +1831,7 @@ public class LogsMgr extends MgrBase {
   private VSolrLogList whenScrollDown(SearchCriteria searchCriteria,
                                       String logTime, String sequenceId, String maxRows) {
     SolrQuery solrQuery = new SolrQuery();
-    queryGenerator.setMainQuery(solrQuery, null);
+    SolrUtil.setMainQuery(solrQuery, null);
     queryGenerator.applyLogFileFilter(solrQuery, searchCriteria);
 
     /*queryGenerator.setSingleExcludeFilter(solrQuery,
@@ -1848,7 +1847,7 @@ public class LogsMgr extends MgrBase {
       LogSearchConstants.SEQUNCE_ID, sequenceId, "*");
     queryGenerator.setSingleRangeFilter(solrQuery,
       LogSearchConstants.LOGTIME, logTime, "*");
-    queryGenerator.setRowCount(solrQuery, Integer.parseInt(maxRows));
+    SolrUtil.setRowCount(solrQuery, Integer.parseInt(maxRows));
 
     String order1 = LogSearchConstants.LOGTIME + " "
       + LogSearchConstants.ASCENDING_ORDER;
@@ -1874,13 +1873,13 @@ public class LogsMgr extends MgrBase {
     utc.set(Calendar.MINUTE, 0);
     utc.set(Calendar.MILLISECOND, 001);
     utc.set(Calendar.SECOND, 0);
-    dateUtil.convertDateWithMillisecondsToSolrDate(utc.getTime());
-    String from = dateUtil.convertDateWithMillisecondsToSolrDate(utc.getTime());
+    DateUtil.convertDateWithMillisecondsToSolrDate(utc.getTime());
+    String from = DateUtil.convertDateWithMillisecondsToSolrDate(utc.getTime());
     utc.set(Calendar.MILLISECOND, 999);
     utc.set(Calendar.SECOND, 59);
     utc.set(Calendar.MINUTE, 59);
     utc.set(Calendar.HOUR, 23);
-    String to = dateUtil.convertDateWithMillisecondsToSolrDate(utc.getTime());
+    String to = DateUtil.convertDateWithMillisecondsToSolrDate(utc.getTime());
     queryGenerator.setSingleRangeFilter(solrQuery,
         LogSearchConstants.LOGTIME, from,to);
     String level = LogSearchConstants.FATAL+","+LogSearchConstants.ERROR+","+LogSearchConstants.WARN;

+ 9 - 21
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/MgrBase.java

@@ -59,21 +59,9 @@ import com.google.gson.JsonSerializer;
 public class MgrBase {
   private static final Logger logger = Logger.getLogger(MgrBase.class);
 
-  @Autowired
-  protected SolrUtil solrUtil;
-
-  @Autowired
-  protected JSONUtil jsonUtil;
-
   @Autowired
   protected QueryGeneration queryGenerator;
 
-  @Autowired
-  protected RESTErrorUtil restErrorUtil;
-
-  @Autowired
-  protected DateUtil dateUtil;
-
   private JsonSerializer<Date> jsonDateSerialiazer = null;
   private JsonDeserializer<Date> jsonDateDeserialiazer = null;
 
@@ -142,14 +130,14 @@ public class MgrBase {
 
     } catch (IOException e) {
       logger.error("Unable to read HadoopServiceConfig.json", e);
-      throw restErrorUtil.createRESTException(e.getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(e.getMessage(), MessageEnums.ERROR_SYSTEM);
     }
 
     String hadoopServiceConfig = result.toString();
-    if (jsonUtil.isJSONValid(hadoopServiceConfig)) {
+    if (JSONUtil.isJSONValid(hadoopServiceConfig)) {
       return hadoopServiceConfig;
     }
-    throw restErrorUtil.createRESTException("Improper JSON", MessageEnums.ERROR_SYSTEM);
+    throw RESTErrorUtil.createRESTException("Improper JSON", MessageEnums.ERROR_SYSTEM);
 
   }
   
@@ -174,8 +162,8 @@ public class MgrBase {
     int numberOfLogsOnLastPage = 0;
     VSolrLogList collection = null;
     try {
-      queryGenerator.setStart(lastPageQuery, 0);
-      queryGenerator.setRowCount(lastPageQuery, maxRows);
+      SolrUtil.setStart(lastPageQuery, 0);
+      SolrUtil.setRowCount(lastPageQuery, maxRows);
       collection = getLogAsPaginationProvided(lastPageQuery, solrDoaBase);
       totalLogs = countQuery(lastPageQuery,solrDoaBase);
       if(maxRows != null){
@@ -199,7 +187,7 @@ public class MgrBase {
 
     } catch (SolrException | SolrServerException | IOException | NumberFormatException e) {
       logger.error("Count Query was not executed successfully",e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
     return collection;
   }
@@ -223,7 +211,7 @@ public class MgrBase {
       return collection;
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error during solrQuery=" + solrQuery, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
   
@@ -249,9 +237,9 @@ public class MgrBase {
 
   protected String getFrom(String from) {
     if (StringUtils.isBlank(from)) {
-      Date date =  dateUtil.getTodayFromDate();
+      Date date = DateUtil.getTodayFromDate();
       try {
-        from = dateUtil.convertGivenDateFormatToSolrDateFormat(date);
+        from = DateUtil.convertGivenDateFormatToSolrDateFormat(date);
       } catch (ParseException e) {
         from = "NOW";
       }

+ 22 - 25
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/UserConfigMgr.java

@@ -29,6 +29,7 @@ import org.apache.ambari.logsearch.common.MessageEnums;
 import org.apache.ambari.logsearch.common.SearchCriteria;
 import org.apache.ambari.logsearch.dao.UserConfigSolrDao;
 import org.apache.ambari.logsearch.query.QueryGeneration;
+import org.apache.ambari.logsearch.util.JSONUtil;
 import org.apache.ambari.logsearch.util.RESTErrorUtil;
 import org.apache.ambari.logsearch.util.SolrUtil;
 import org.apache.ambari.logsearch.view.VLogfeederFilterWrapper;
@@ -55,21 +56,17 @@ public class UserConfigMgr extends MgrBase {
   @Autowired
   private UserConfigSolrDao userConfigSolrDao;
   @Autowired
-  private SolrUtil solrUtil;
-  @Autowired
-  private RESTErrorUtil restErrorUtil;
-  @Autowired
   private QueryGeneration queryGenerator;
 
   public String saveUserConfig(VUserConfig vHistory) {
 
     SolrInputDocument solrInputDoc = new SolrInputDocument();
     if (!isValid(vHistory)) {
-      throw restErrorUtil.createRESTException("No FilterName Specified", MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("No FilterName Specified", MessageEnums.INVALID_INPUT_DATA);
     }
 
     if (isNotUnique(vHistory) && !vHistory.isOverwrite()) {
-      throw restErrorUtil.createRESTException( "Name '" + vHistory.getFiltername() + "' already exists", MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException( "Name '" + vHistory.getFiltername() + "' already exists", MessageEnums.INVALID_INPUT_DATA);
     }
     String loggedInUserName = vHistory.getUserName();
     String filterName = vHistory.getFiltername();
@@ -85,8 +82,8 @@ public class UserConfigMgr extends MgrBase {
     }
     // Check whether the Filter Name exists in solr
     SolrQuery solrQuery = new SolrQuery();
-    queryGenerator.setMainQuery(solrQuery, null);
-    queryGenerator.setSingleIncludeFilter(solrQuery, LogSearchConstants.FILTER_NAME, solrUtil.makeSearcableString(filterName));
+    SolrUtil.setMainQuery(solrQuery, null);
+    queryGenerator.setSingleIncludeFilter(solrQuery, LogSearchConstants.FILTER_NAME, SolrUtil.makeSearcableString(filterName));
     queryGenerator.setSingleIncludeFilter(solrQuery, LogSearchConstants.USER_NAME, loggedInUserName);
     try {
       QueryResponse queryResponse = userConfigSolrDao.process(solrQuery);
@@ -94,12 +91,12 @@ public class UserConfigMgr extends MgrBase {
         SolrDocumentList documentList = queryResponse.getResults();
         if (documentList != null && !documentList.isEmpty() && !vHistory.isOverwrite()) {
           logger.error("Filtername is already present");
-          throw restErrorUtil.createRESTException("Filtername is already present", MessageEnums.INVALID_INPUT_DATA);
+          throw RESTErrorUtil.createRESTException("Filtername is already present", MessageEnums.INVALID_INPUT_DATA);
         }
       }
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error in checking same filtername config", e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
 
     try {
@@ -107,7 +104,7 @@ public class UserConfigMgr extends MgrBase {
       return convertObjToString(solrInputDoc);
     } catch (SolrException | SolrServerException | IOException e) {
       logger.error("Error saving user config. solrDoc=" + solrInputDoc, e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
 
@@ -117,9 +114,9 @@ public class UserConfigMgr extends MgrBase {
 
     if (filterName != null && rowType != null) {
       SolrQuery solrQuery = new SolrQuery();
-      filterName = solrUtil.makeSearcableString(filterName);
+      filterName = SolrUtil.makeSearcableString(filterName);
       solrQuery.setQuery(LogSearchConstants.COMPOSITE_KEY + ":" + filterName + "-" + rowType);
-      queryGenerator.setRowCount(solrQuery, 0);
+      SolrUtil.setRowCount(solrQuery, 0);
       try {
         Long numFound = userConfigSolrDao.process(solrQuery).getResults().getNumFound();
         if (numFound > 0) {
@@ -143,7 +140,7 @@ public class UserConfigMgr extends MgrBase {
     try {
       userConfigSolrDao.deleteUserConfig(id);
     } catch (SolrException | SolrServerException | IOException e) {
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
   }
 
@@ -155,12 +152,12 @@ public class UserConfigMgr extends MgrBase {
 
     String rowType = (String) searchCriteria.getParamValue(LogSearchConstants.ROW_TYPE);
     if (StringUtils.isBlank(rowType)) {
-      throw restErrorUtil.createRESTException("row type was not specified", MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("row type was not specified", MessageEnums.INVALID_INPUT_DATA);
     }
 
     String userName = (String) searchCriteria.getParamValue(LogSearchConstants.USER_NAME);
     if (StringUtils.isBlank(userName)) {
-      throw restErrorUtil.createRESTException("user name was not specified", MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("user name was not specified", MessageEnums.INVALID_INPUT_DATA);
     }
     String filterName = (String) searchCriteria.getParamValue(LogSearchConstants.FILTER_NAME);
     filterName = StringUtils.isBlank(filterName) ? "*" : "*" + filterName + "*";
@@ -168,11 +165,11 @@ public class UserConfigMgr extends MgrBase {
     try {
 
       SolrQuery userConfigQuery = new SolrQuery();
-      queryGenerator.setMainQuery(userConfigQuery, null);
+      SolrUtil.setMainQuery(userConfigQuery, null);
       queryGenerator.setPagination(userConfigQuery, searchCriteria);
       queryGenerator.setSingleIncludeFilter(userConfigQuery, LogSearchConstants.ROW_TYPE, rowType);
       queryGenerator.setSingleORFilter(userConfigQuery, LogSearchConstants.USER_NAME, userName, LogSearchConstants.SHARE_NAME_LIST, userName);
-      queryGenerator.setSingleIncludeFilter(userConfigQuery, LogSearchConstants.FILTER_NAME, solrUtil.makeSearcableString(filterName));
+      queryGenerator.setSingleIncludeFilter(userConfigQuery, LogSearchConstants.FILTER_NAME, SolrUtil.makeSearcableString(filterName));
 
       if (StringUtils.isBlank(searchCriteria.getSortBy())) {
         searchCriteria.setSortBy(LogSearchConstants.FILTER_NAME);
@@ -214,7 +211,7 @@ public class UserConfigMgr extends MgrBase {
     } catch (SolrException | SolrServerException | IOException e) {
       // do nothing
       logger.error(e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
 
     return convertObjToString(userConfigList);
@@ -233,14 +230,14 @@ public class UserConfigMgr extends MgrBase {
       userFilter = userConfigSolrDao.getUserFilter();
     } catch (SolrServerException | IOException e) {
       logger.error(e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
     return convertObjToString(userFilter);
   }
 
   public String saveUserFiter(String json) {
     if (!StringUtils.isBlank(json)) {
-      VLogfeederFilterWrapper logfeederFilterWrapper = (VLogfeederFilterWrapper) jsonUtil.jsonToObj(json, VLogfeederFilterWrapper.class);
+      VLogfeederFilterWrapper logfeederFilterWrapper = (VLogfeederFilterWrapper) JSONUtil.jsonToObj(json, VLogfeederFilterWrapper.class);
       try {
         if (logfeederFilterWrapper == null) {
           logger.error(json + " is a invalid json");
@@ -248,7 +245,7 @@ public class UserConfigMgr extends MgrBase {
         userConfigSolrDao.saveUserFilter(logfeederFilterWrapper);
       } catch (SolrException | SolrServerException | IOException e) {
         logger.error("user config not able to save", e);
-        throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+        throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
       }
     }
     return getUserFilter();
@@ -258,8 +255,8 @@ public class UserConfigMgr extends MgrBase {
     List<String> userList = new ArrayList<String>();
     try {
       SolrQuery userListQuery = new SolrQuery();
-      queryGenerator.setMainQuery(userListQuery, null);
-      queryGenerator.setFacetField(userListQuery, LogSearchConstants.USER_NAME);
+      SolrUtil.setMainQuery(userListQuery, null);
+      SolrUtil.setFacetField(userListQuery, LogSearchConstants.USER_NAME);
       QueryResponse queryResponse = userConfigSolrDao.process(userListQuery);
       if (queryResponse == null) {
         return convertObjToString(userList);
@@ -271,7 +268,7 @@ public class UserConfigMgr extends MgrBase {
       }
     } catch (SolrException | SolrServerException | IOException e) {
       logger.warn("Error getting all users.", e);
-      throw restErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(MessageEnums.SOLR_ERROR.getMessage().getMessage(), MessageEnums.ERROR_SYSTEM);
     }
     return convertObjToString(userList);
   }

+ 19 - 17
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGeneration.java

@@ -25,12 +25,14 @@ import java.util.List;
 import java.util.Locale;
 import java.util.regex.Pattern;
 
+import org.apache.ambari.logsearch.common.ConfigHelper;
 import org.apache.ambari.logsearch.common.LogSearchConstants;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.common.SearchCriteria;
 import org.apache.ambari.logsearch.dao.SolrDaoBase;
 import org.apache.ambari.logsearch.manager.MgrBase.LogType;
-import org.apache.ambari.logsearch.util.ConfigUtil;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
+import org.apache.ambari.logsearch.util.JSONUtil;
+import org.apache.ambari.logsearch.util.SolrUtil;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.apache.lucene.analysis.core.KeywordTokenizerFactory;
@@ -87,7 +89,7 @@ public class QueryGeneration extends QueryGenerationBase {
       return advSolrQuery;
     }
 
-    setMainQuery(solrQuery, givenQuery);
+    SolrUtil.setMainQuery(solrQuery, givenQuery);
 
     setSingleRangeFilter(solrQuery, LogSearchConstants.LOGTIME, startTime, endTime);
     addFilter(solrQuery, selectedComp, LogSearchConstants.SOLR_COMPONENT, Condition.OR);
@@ -104,15 +106,15 @@ public class QueryGeneration extends QueryGenerationBase {
     setFilterClauseWithFieldName(solrQuery, globalExcludeComp, LogSearchConstants.SOLR_COMPONENT, LogSearchConstants.MINUS_OPERATOR, Condition.AND);
     setFilterClauseWithFieldName(solrQuery, unselectedComp, LogSearchConstants.SOLR_COMPONENT, LogSearchConstants.MINUS_OPERATOR, Condition.AND);
 
-    urlHostName = solrUtil.escapeQueryChars(urlHostName);
+    urlHostName = SolrUtil.escapeQueryChars(urlHostName);
     setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_HOST, urlHostName);
-    urlComponentName = solrUtil.escapeQueryChars(urlComponentName);
+    urlComponentName = SolrUtil.escapeQueryChars(urlComponentName);
     setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_COMPONENT, urlComponentName);
 
     setPagination(solrQuery, searchCriteria);
     setSortOrderDefaultServiceLog(solrQuery, searchCriteria);
     setSingleIncludeFilter(solrQuery, LogSearchConstants.BUNDLE_ID, bundleId);
-    file_name = solrUtil.escapeQueryChars(file_name);
+    file_name = SolrUtil.escapeQueryChars(file_name);
     setSingleIncludeFilter(solrQuery, LogSearchConstants.SOLR_PATH, file_name);
     setUserSpecificFilter(searchCriteria, solrQuery, LogSearchConstants.INCLUDE_QUERY, LogSearchConstants.INCLUDE_QUERY, logType);
     setUserSpecificFilter(searchCriteria, solrQuery, LogSearchConstants.EXCLUDE_QUERY, LogSearchConstants.EXCLUDE_QUERY, logType);
@@ -150,10 +152,10 @@ public class QueryGeneration extends QueryGenerationBase {
     List<String> conditionQuries = new ArrayList<String>();
     List<String> referalConditionQuries = new ArrayList<String>();
     List<String> elments = new ArrayList<String>();
-    List<HashMap<String, Object>> queryList = jsonUtil.jsonToMapObjectList(queryString);
+    List<HashMap<String, Object>> queryList = JSONUtil.jsonToMapObjectList(queryString);
     if (queryList != null && queryList.size() > 0) {
       if (!StringUtils.isBlank(columnQuery) && !columnQuery.equals(queryString) && !paramName.equals(LogSearchConstants.EXCLUDE_QUERY)) {
-        List<HashMap<String, Object>> columnQueryList = jsonUtil.jsonToMapObjectList(columnQuery);
+        List<HashMap<String, Object>> columnQueryList = JSONUtil.jsonToMapObjectList(columnQuery);
         if (columnQueryList != null && columnQueryList.size() > 0) {
           queryList.addAll(columnQueryList);
         }
@@ -255,7 +257,7 @@ public class QueryGeneration extends QueryGenerationBase {
       fieldType = serviceLogsSolrDao.schemaFieldsNameMap.get(key);
       solrDaoBase = serviceLogsSolrDao;
       if (key.equalsIgnoreCase(LogSearchConstants.SOLR_LOG_MESSAGE)) {
-        return solrUtil.escapeForLogMessage(key, str);
+        return SolrUtil.escapeForLogMessage(key, str);
       }
       break;
     default:
@@ -264,7 +266,7 @@ public class QueryGeneration extends QueryGenerationBase {
       fieldType = null;
     }
     if (!StringUtils.isBlank(fieldType)) {
-      if (solrUtil.isSolrFieldNumber(fieldType, solrDaoBase)) {
+      if (SolrUtil.isSolrFieldNumber(fieldType, solrDaoBase)) {
         String value = putEscapeCharacterForNumber(str, fieldType,solrDaoBase);
         if (!StringUtils.isBlank(value)) {
           return key + ":" + value;
@@ -272,9 +274,9 @@ public class QueryGeneration extends QueryGenerationBase {
           return null;
         }
       } else if (checkTokenizer(fieldType, StandardTokenizerFactory.class,solrDaoBase)) {
-        return key + ":" + solrUtil.escapeForStandardTokenizer(str);
+        return key + ":" + SolrUtil.escapeForStandardTokenizer(str);
       } else if (checkTokenizer(fieldType, KeywordTokenizerFactory.class,solrDaoBase)|| "string".equalsIgnoreCase(fieldType)) {
-        return key + ":" + solrUtil.makeSolrSearchStringWithoutAsterisk(str);
+        return key + ":" + SolrUtil.makeSolrSearchStringWithoutAsterisk(str);
       } else if (checkTokenizer(fieldType, PathHierarchyTokenizerFactory.class,solrDaoBase)) {
         return key + ":" + str;
       }
@@ -296,7 +298,7 @@ public class QueryGeneration extends QueryGenerationBase {
 
   private String parseInputValueAsPerFieldType(String str,String fieldType,SolrDaoBase solrDaoBase ) {
     try {
-      HashMap<String, Object> fieldTypeInfoMap= solrUtil.getFieldTypeInfoMap(fieldType,solrDaoBase);
+      HashMap<String, Object> fieldTypeInfoMap= SolrUtil.getFieldTypeInfoMap(fieldType,solrDaoBase);
       String className = (String) fieldTypeInfoMap.get("class");
       if( className.equalsIgnoreCase(TrieDoubleField.class.getSimpleName())){
         return ""+ Double.parseDouble(str);
@@ -314,7 +316,7 @@ public class QueryGeneration extends QueryGenerationBase {
   }
 
   private String getOriginalValue(String name, String value) {
-    String solrValue = PropertiesUtil.getProperty(name);
+    String solrValue = PropertiesHelper.getProperty(name);
     if (StringUtils.isBlank(solrValue)) {
       return value;
     }
@@ -347,10 +349,10 @@ public class QueryGeneration extends QueryGenerationBase {
     String originalKey;
     switch (logType) {
     case AUDIT:
-      originalKey = ConfigUtil.auditLogsColumnMapping.get(key + LogSearchConstants.UI_SUFFIX);
+      originalKey = ConfigHelper.auditLogsColumnMapping.get(key + LogSearchConstants.UI_SUFFIX);
       break;
     case SERVICE:
-      originalKey = ConfigUtil.serviceLogsColumnMapping.get(key + LogSearchConstants.UI_SUFFIX);
+      originalKey = ConfigHelper.serviceLogsColumnMapping.get(key + LogSearchConstants.UI_SUFFIX);
       break;
     default:
       originalKey = null;
@@ -362,7 +364,7 @@ public class QueryGeneration extends QueryGenerationBase {
   }
   
   private boolean checkTokenizer(String fieldType, Class tokenizerFactoryClass, SolrDaoBase solrDaoBase) {
-    HashMap<String, Object> fieldTypeMap = solrUtil.getFieldTypeInfoMap(fieldType,solrDaoBase);
+    HashMap<String, Object> fieldTypeMap = SolrUtil.getFieldTypeInfoMap(fieldType,solrDaoBase);
     HashMap<String, Object> analyzer = (HashMap<String, Object>) fieldTypeMap.get("analyzer");
     if (analyzer != null) {
       HashMap<String, Object> tokenizerMap = (HashMap<String, Object>) analyzer.get("tokenizer");

+ 13 - 21
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/query/QueryGenerationBase.java

@@ -26,8 +26,6 @@ import org.apache.ambari.logsearch.common.LogSearchConstants;
 import org.apache.ambari.logsearch.common.SearchCriteria;
 import org.apache.ambari.logsearch.dao.AuditSolrDao;
 import org.apache.ambari.logsearch.dao.ServiceLogsSolrDao;
-import org.apache.ambari.logsearch.util.JSONUtil;
-import org.apache.ambari.logsearch.util.QueryBase;
 import org.apache.ambari.logsearch.util.SolrUtil;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
@@ -37,21 +35,15 @@ import org.springframework.beans.factory.annotation.Autowired;
 
 import com.google.gson.Gson;
 
-public abstract class QueryGenerationBase extends QueryBase {
+public abstract class QueryGenerationBase {
 
   private static final Logger logger = Logger.getLogger(QueryGenerationBase.class);
-
-  @Autowired
-  protected SolrUtil solrUtil;
   
   @Autowired
   protected AuditSolrDao auditSolrDao;
   
   @Autowired
   protected ServiceLogsSolrDao serviceLogsSolrDao;
-  
-  @Autowired
-  protected JSONUtil jsonUtil;
 
   public static enum Condition {
     OR, AND
@@ -69,9 +61,9 @@ public abstract class QueryGenerationBase extends QueryBase {
       for (String temp : msgList) {
         count += 1;
         if (LogSearchConstants.SOLR_LOG_MESSAGE.equalsIgnoreCase(messageField)) {
-          queryMsg.append(" " + operator + solrUtil.escapeForLogMessage(messageField, temp));
+          queryMsg.append(" " + operator + SolrUtil.escapeForLogMessage(messageField, temp));
         } else {
-          temp = solrUtil.escapeForStandardTokenizer(temp);
+          temp = SolrUtil.escapeForStandardTokenizer(temp);
           if(temp.startsWith("\"") && temp.endsWith("\"")){
             temp = temp.substring(1);
             temp = temp.substring(0, temp.length()-1);
@@ -95,9 +87,9 @@ public abstract class QueryGenerationBase extends QueryBase {
       String[] arrayOfSepratedString = commaSepratedString.split(LogSearchConstants.LIST_SEPARATOR);
       String filterQuery = null;
       if (Condition.OR.equals(condition)) {
-        filterQuery = solrUtil.orList(operator + field, arrayOfSepratedString,"");
+        filterQuery = SolrUtil.orList(operator + field, arrayOfSepratedString,"");
       } else if (Condition.AND.equals(condition)) {
-        filterQuery = solrUtil.andList(operator + field, arrayOfSepratedString,"");
+        filterQuery = SolrUtil.andList(operator + field, arrayOfSepratedString,"");
       }else{
         logger.warn("Not a valid condition :" + condition.name());
       }
@@ -207,15 +199,15 @@ public abstract class QueryGenerationBase extends QueryBase {
     Integer maxRows = null;
     try {
       startIndex = (Integer) searchCriteria.getStartIndex();
-      setStart(solrQuery, startIndex);
+      SolrUtil.setStart(solrQuery, startIndex);
     } catch (ClassCastException e) {
-      setStart(solrQuery, 0);
+      SolrUtil.setStart(solrQuery, 0);
     }
     try {
       maxRows = (Integer) searchCriteria.getMaxRows();
-      setRowCount(solrQuery, maxRows);
+      SolrUtil.setRowCount(solrQuery, maxRows);
     } catch (ClassCastException e) {
-      setRowCount(solrQuery, 10);
+      SolrUtil.setRowCount(solrQuery, 10);
     }
 
     if (startIndex != null && maxRows != null)
@@ -269,9 +261,9 @@ public abstract class QueryGenerationBase extends QueryBase {
       String[] values = paramValue.split(LogSearchConstants.LIST_SEPARATOR);
       switch (condition) {
       case OR:
-        return solrUtil.orList(solrFieldName, values,"");
+        return SolrUtil.orList(solrFieldName, values,"");
       case AND:
-        return solrUtil.andList(solrFieldName, values, "");
+        return SolrUtil.andList(solrFieldName, values, "");
       default:
         logger.error("Invalid condition " + condition.name());
       }
@@ -292,10 +284,10 @@ public abstract class QueryGenerationBase extends QueryBase {
       String query;;
       switch (condition) {
       case OR:
-        query = solrUtil.orList(solrFieldName, arr,"");
+        query = SolrUtil.orList(solrFieldName, arr,"");
         break;
       case AND:
-        query = solrUtil.andList(solrFieldName, arr, "");
+        query = SolrUtil.andList(solrFieldName, arr, "");
         break;
       default:
         query=null;

+ 0 - 4
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/ServiceLogsREST.java

@@ -32,7 +32,6 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.ambari.logsearch.common.LogSearchConstants;
 import org.apache.ambari.logsearch.common.SearchCriteria;
 import org.apache.ambari.logsearch.manager.LogsMgr;
-import org.apache.ambari.logsearch.util.RESTErrorUtil;
 import org.apache.ambari.logsearch.view.VCountList;
 import org.apache.ambari.logsearch.view.VNameValueList;
 import org.apache.ambari.logsearch.view.VNodeList;
@@ -54,9 +53,6 @@ public class ServiceLogsREST {
   @Autowired
   LogsMgr logMgr;
 
-  @Autowired
-  RESTErrorUtil restErrorUtil;
-
   @GET
   @Produces({"application/json"})
   @ApiOperation(SEARCH_LOGS_OD)

+ 0 - 4
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/rest/UserConfigREST.java

@@ -36,7 +36,6 @@ import io.swagger.annotations.ApiOperation;
 import org.apache.ambari.logsearch.common.LogSearchConstants;
 import org.apache.ambari.logsearch.common.SearchCriteria;
 import org.apache.ambari.logsearch.manager.UserConfigMgr;
-import org.apache.ambari.logsearch.util.RESTErrorUtil;
 import org.apache.ambari.logsearch.view.VUserConfig;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Scope;
@@ -51,9 +50,6 @@ import static org.apache.ambari.logsearch.doc.DocConstants.UserConfigOperationDe
 @Scope("request")
 public class UserConfigREST {
 
-  @Autowired
-  RESTErrorUtil restErrorUtil;
-
   @Autowired
   UserConfigMgr userConfigMgr;
 

+ 4 - 4
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/metrics/SolrMetricsLoader.java

@@ -27,9 +27,9 @@ import java.util.TreeMap;
 
 import javax.management.MalformedObjectNameException;
 
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.solr.AmbariSolrCloudClient;
 import org.apache.ambari.logsearch.solr.AmbariSolrCloudClientBuilder;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.commons.lang.StringUtils;
 import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric;
 import org.apache.hadoop.metrics2.sink.timeline.TimelineMetrics;
@@ -172,15 +172,15 @@ public class SolrMetricsLoader extends TimerTask {
 
   public static void startSolrMetricsLoaderTasks() {
     try {
-      String collectorHosts = PropertiesUtil.getProperty("logsearch.solr.metrics.collector.hosts");
+      String collectorHosts = PropertiesHelper.getProperty("logsearch.solr.metrics.collector.hosts");
       if (StringUtils.isEmpty(collectorHosts)) {
         LOG.warn("No Ambari Metrics service is available, no Solr metrics will be loaded!");
         return;
       }
 
-      int solrJmxPort = PropertiesUtil.getIntProperty("logsearch.solr.jmx.port");
+      int solrJmxPort = PropertiesHelper.getIntProperty("logsearch.solr.jmx.port");
 
-      String zkConnectString = PropertiesUtil.getProperty("logsearch.solr.zk_connect_string");
+      String zkConnectString = PropertiesHelper.getProperty("logsearch.solr.zk_connect_string");
       AmbariSolrCloudClient ambariSolrCloudClient = new AmbariSolrCloudClientBuilder()
           .withZkConnectString(zkConnectString)
           .build();

+ 9 - 18
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/BizUtil.java

@@ -43,13 +43,15 @@ import org.apache.log4j.Logger;
 import org.apache.solr.common.SolrDocument;
 import org.apache.solr.common.SolrDocumentList;
 import org.apache.solr.common.util.SimpleOrderedMap;
-import org.springframework.stereotype.Component;
 
-@Component
 public class BizUtil {
   private static final Logger logger = Logger.getLogger(BizUtil.class);
 
-  public String convertObjectToNormalText(SolrDocumentList docList) {
+  private BizUtil() {
+    throw new UnsupportedOperationException();
+  }
+  
+  public static String convertObjectToNormalText(SolrDocumentList docList) {
     String textToSave = "";
     HashMap<String, String> blankFieldsMap = new HashMap<String, String>();
     if (docList == null){
@@ -76,7 +78,7 @@ public class BizUtil {
 
     for (String field : fieldsForBlankCaculation) {
       if (!StringUtils.isBlank(field)) {
-      blankFieldsMap.put(field, addBlanksToString(maxLengthOfField - field.length(), field));
+        blankFieldsMap.put(field, StringUtils.rightPad(field, maxLengthOfField - field.length()));
       }
     }
 
@@ -114,7 +116,7 @@ public class BizUtil {
     return textToSave;
   }
 
-  public VSummary buildSummaryForLogFile(SolrDocumentList docList) {
+  public static VSummary buildSummaryForLogFile(SolrDocumentList docList) {
     VSummary vsummary = new VSummary();
     if (CollectionUtils.isEmpty(docList)) {
       return vsummary;
@@ -170,19 +172,8 @@ public class BizUtil {
     return vsummary;
   }
 
-  private String addBlanksToString(int count, String field) {
-    if (StringUtils.isBlank(field)) {
-      return field;
-    }
-    if (count > 0) {
-      return String.format("%-" + count + "s", field);
-    }
-    return field;
-
-  }
-
   @SuppressWarnings({"unchecked", "rawtypes"})
-  public VBarDataList buildSummaryForTopCounts(SimpleOrderedMap<Object> jsonFacetResponse,String innerJsonKey,String outerJsonKey) {
+  public static VBarDataList buildSummaryForTopCounts(SimpleOrderedMap<Object> jsonFacetResponse,String innerJsonKey,String outerJsonKey) {
 
     VBarDataList vBarDataList = new VBarDataList();
 
@@ -240,7 +231,7 @@ public class BizUtil {
     return vBarDataList;
   }
   
-  public HashMap<String, String> sortHashMapByValues(HashMap<String, String> passedMap) {
+  public static HashMap<String, String> sortHashMapByValues(HashMap<String, String> passedMap) {
     if (passedMap == null ) {
       return passedMap;
     }

+ 4 - 0
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/CommonUtil.java

@@ -23,6 +23,10 @@ import java.security.SecureRandom;
 import org.springframework.security.authentication.encoding.Md5PasswordEncoder;
 
 public class CommonUtil {
+  private CommonUtil() {
+    throw new UnsupportedOperationException();
+  }
+  
   private static SecureRandom secureRandom = new SecureRandom();
   private static int counter = 0;
 

+ 11 - 21
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/DateUtil.java

@@ -24,26 +24,24 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
-import java.util.GregorianCalendar;
 import java.util.Locale;
 import java.util.TimeZone;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.ambari.logsearch.common.LogSearchConstants;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DateUtils;
 import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
 
-@Component
 public class DateUtil {
 
   private static final Logger logger = Logger.getLogger(DateUtil.class);
 
   private DateUtil() {
-
+    throw new UnsupportedOperationException();
   }
 
-  public String addOffsetToDate(String date, Long utcOffset, String dateFormat) {
+  public static String addOffsetToDate(String date, Long utcOffset, String dateFormat) {
     if (StringUtils.isBlank(date)) {
       logger.debug("input date is empty or null.");
       return null;
@@ -64,7 +62,7 @@ public class DateUtil {
       }
       SimpleDateFormat formatter = new SimpleDateFormat(dateFormat, Locale.ENGLISH);
       Date startDate = formatter.parse(modifiedDate);
-      long toWithOffset = getTimeWithOffset(startDate, utcOffset);
+      long toWithOffset = startDate.getTime() + TimeUnit.MINUTES.toMillis(utcOffset);
       Calendar calendar = Calendar.getInstance();
       calendar.setTimeInMillis(toWithOffset);
       retDate = formatter.format(calendar.getTime());
@@ -74,25 +72,17 @@ public class DateUtil {
     return retDate;
   }
 
-  private long getTimeWithOffset(Date date, Long utcOffset) {
-    return date.getTime() + TimeUnit.MINUTES.toMillis(utcOffset);
-  }
-
-  public String getCurrentDateInString() {
+  public static String getCurrentDateInString() {
     DateFormat df = new SimpleDateFormat("MM-dd-yyyy HH:mm:ss", Locale.ENGLISH);
     Date today = Calendar.getInstance().getTime();
     return df.format(today);
   }
 
-  public Date getTodayFromDate() {
-    Calendar c = new GregorianCalendar();
-    c.set(Calendar.HOUR_OF_DAY, 0);
-    c.set(Calendar.MINUTE, 0);
-    c.set(Calendar.SECOND, 0);
-    return c.getTime();
+  public static Date getTodayFromDate() {
+    return DateUtils.truncate(new Date(), Calendar.DATE);
   }
 
-  public String convertGivenDateFormatToSolrDateFormat(Date date) throws ParseException {
+  public static String convertGivenDateFormatToSolrDateFormat(Date date) throws ParseException {
     String time = date.toString();
     SimpleDateFormat input = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH);
     SimpleDateFormat output = new SimpleDateFormat(LogSearchConstants.SOLR_DATE_FORMAT_PREFIX_Z, Locale.ENGLISH);
@@ -103,7 +93,7 @@ public class DateUtil {
     return output.format(d);
   }
 
-  public String convertDateWithMillisecondsToSolrDate(Date date) {
+  public static String convertDateWithMillisecondsToSolrDate(Date date) {
     if (date == null) {
       return "";
     }
@@ -114,7 +104,7 @@ public class DateUtil {
     return formatter.format(date);
   }
 
-  public String convertSolrDateToNormalDateFormat(long d, long utcOffset) throws ParseException {
+  public static String convertSolrDateToNormalDateFormat(long d, long utcOffset) throws ParseException {
     Date date = new Date(d);
     SimpleDateFormat formatter = new SimpleDateFormat(LogSearchConstants.SOLR_DATE_FORMAT, Locale.ENGLISH);
     TimeZone timeZone = TimeZone.getTimeZone("GMT");
@@ -124,7 +114,7 @@ public class DateUtil {
 
   }
 
-  public boolean isDateValid(String value) {
+  public static boolean isDateValid(String value) {
     if (StringUtils.isBlank(value)) {
       return false;
     }

+ 7 - 10
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/FileUtil.java

@@ -33,18 +33,15 @@ import org.apache.ambari.logsearch.common.MessageEnums;
 import org.apache.ambari.logsearch.view.VHost;
 import org.apache.ambari.logsearch.view.VSummary;
 import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 
-@Component
 public class FileUtil {
-
   private static final Logger logger = Logger.getLogger(FileUtil.class);
 
-  @Autowired
-  private RESTErrorUtil restErrorUtil;
-
-  public Response saveToFile(String text, String fileName, VSummary vsummary) {
+  private FileUtil() {
+    throw new UnsupportedOperationException();
+  }
+  
+  public static Response saveToFile(String text, String fileName, VSummary vsummary) {
     String mainExportedFile = "";
     FileOutputStream fis = null;
     try {
@@ -107,7 +104,7 @@ public class FileUtil {
         .build();
     } catch (Exception e) {
       logger.error(e.getMessage());
-      throw restErrorUtil.createRESTException(e.getMessage(), MessageEnums.ERROR_SYSTEM);
+      throw RESTErrorUtil.createRESTException(e.getMessage(), MessageEnums.ERROR_SYSTEM);
     } finally {
       if (fis != null) {
         try {
@@ -118,7 +115,7 @@ public class FileUtil {
     }
   }
 
-  public File getFileFromClasspath(String filename) {
+  public static File getFileFromClasspath(String filename) {
     URL fileCompleteUrl = Thread.currentThread().getContextClassLoader().getResource(filename);
     logger.debug("File Complete URI :" + fileCompleteUrl);
     File file = null;

+ 19 - 22
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/JSONUtil.java

@@ -37,25 +37,22 @@ import org.codehaus.jackson.type.TypeReference;
 import org.codehaus.jettison.json.JSONArray;
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 
-@Component
 public class JSONUtil {
-
   private static final Logger logger = Logger.getLogger(JSONUtil.class);
 
-  @Autowired
-  private RESTErrorUtil restErrorUtil;
-
   private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS";
-  private Gson gson = new GsonBuilder().setDateFormat(DATE_FORMAT).create();
+  private static final Gson gson = new GsonBuilder().setDateFormat(DATE_FORMAT).create();
 
+  private JSONUtil() {
+    throw new UnsupportedOperationException();
+  }
+  
   @SuppressWarnings("unchecked")
-  public HashMap<String, Object> jsonToMapObject(String jsonStr) {
+  public static HashMap<String, Object> jsonToMapObject(String jsonStr) {
     if (StringUtils.isBlank(jsonStr)) {
       logger.info("jsonString is empty, cannot conver to map");
       return null;
@@ -66,17 +63,17 @@ public class JSONUtil {
       return (HashMap<String, Object>) tempObject;
 
     } catch (JsonParseException e) {
-      throw restErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
     } catch (JsonMappingException e) {
-      throw restErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
     } catch (IOException e) {
-      throw restErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
     }
 
   }
 
   @SuppressWarnings("unchecked")
-  public List<HashMap<String, Object>> jsonToMapObjectList(String jsonStr) {
+  public static List<HashMap<String, Object>> jsonToMapObjectList(String jsonStr) {
     if (StringUtils.isBlank(jsonStr)) {
       return null;
     }
@@ -86,16 +83,16 @@ public class JSONUtil {
       return (List<HashMap<String, Object>>) tempObject;
 
     } catch (JsonParseException e) {
-      throw restErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
     } catch (JsonMappingException e) {
-      throw restErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
     } catch (IOException e) {
-      throw restErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
+      throw RESTErrorUtil.createRESTException("Invalid input data: " + e.getMessage(), MessageEnums.INVALID_INPUT_DATA);
     }
 
   }
 
-  public boolean isJSONValid(String jsonString) {
+  public static boolean isJSONValid(String jsonString) {
     try {
       new JSONObject(jsonString);
     } catch (JSONException ex) {
@@ -108,7 +105,7 @@ public class JSONUtil {
     return true;
   }
 
-  public HashMap<String, Object> readJsonFromFile(File jsonFile) {
+  public static HashMap<String, Object> readJsonFromFile(File jsonFile) {
     ObjectMapper mapper = new ObjectMapper();
     try {
       HashMap<String, Object> jsonmap = mapper.readValue(jsonFile, new TypeReference<HashMap<String, Object>>() {});
@@ -119,7 +116,7 @@ public class JSONUtil {
     return new HashMap<String, Object>();
   }
 
-  public String mapToJSON(Map<String, Object> map) {
+  public static String mapToJSON(Map<String, Object> map) {
     ObjectMapper om = new ObjectMapper();
     try {
       String json = om.writeValueAsString(map);
@@ -134,7 +131,7 @@ public class JSONUtil {
   /**
    * WRITE JOSN IN FILE ( Delete existing file and create new file)
    */
-  public synchronized void writeJSONInFile(String jsonStr, File outputFile, boolean beautify) {
+  public static synchronized void writeJSONInFile(String jsonStr, File outputFile, boolean beautify) {
     FileWriter fileWriter = null;
     if (outputFile == null) {
       logger.error("user_pass json file can't be null.");
@@ -170,11 +167,11 @@ public class JSONUtil {
     }
   }
 
-  public String objToJson(Object obj) {
+  public static String objToJson(Object obj) {
     return gson.toJson(obj);
   }
 
-  public Object jsonToObj(String json, Class<?> klass) {
+  public static Object jsonToObj(String json, Class<?> klass) {
     return gson.fromJson(json, klass);
   }
 

+ 0 - 132
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/QueryBase.java

@@ -1,132 +0,0 @@
-/*
- * 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.ambari.logsearch.util;
-
-import org.apache.ambari.logsearch.common.LogSearchConstants;
-import org.apache.commons.lang.StringUtils;
-import org.apache.solr.client.solrj.SolrQuery;
-
-public class QueryBase {
-
-  //Solr Facet Methods
-  public void setFacetField(SolrQuery solrQuery, String facetField) {
-    solrQuery.setFacet(true);
-    setRowCount(solrQuery, 0);
-    solrQuery.set(LogSearchConstants.FACET_FIELD, facetField);
-    setFacetLimit(solrQuery, -1);
-  }
-
-  public void setJSONFacet(SolrQuery solrQuery, String jsonQuery) {
-    solrQuery.setFacet(true);
-    setRowCount(solrQuery, 0);
-    solrQuery.set(LogSearchConstants.FACET_JSON_FIELD, jsonQuery);
-    setFacetLimit(solrQuery, -1);
-  }
-
-  public void setFacetSort(SolrQuery solrQuery, String sortType) {
-    solrQuery.setFacet(true);
-    solrQuery.setFacetSort(sortType);
-  }
-
-  public void setFacetPivot(SolrQuery solrQuery, int mincount, String... hirarchy) {
-    solrQuery.setFacet(true);
-    setRowCount(solrQuery, 0);
-    solrQuery.set(LogSearchConstants.FACET_PIVOT, hirarchy);
-    solrQuery.set(LogSearchConstants.FACET_PIVOT_MINCOUNT, mincount);
-    setFacetLimit(solrQuery, -1);
-  }
-
-  public void setFacetDate(SolrQuery solrQuery, String facetField, String from, String to, String unit) {
-    solrQuery.setFacet(true);
-    setRowCount(solrQuery, 0);
-    solrQuery.set(LogSearchConstants.FACET_DATE, facetField);
-    solrQuery.set(LogSearchConstants.FACET_DATE_START, from);
-    solrQuery.set(LogSearchConstants.FACET_DATE_END, to);
-    solrQuery.set(LogSearchConstants.FACET_DATE_GAP, unit);
-    solrQuery.set(LogSearchConstants.FACET_MINCOUNT, 0);
-    setFacetLimit(solrQuery, -1);
-  }
-
-  public void setFacetRange(SolrQuery solrQuery, String facetField, String from, String to, String unit) {
-    solrQuery.setFacet(true);
-    setRowCount(solrQuery, 0);
-    solrQuery.set(LogSearchConstants.FACET_RANGE, facetField);
-    solrQuery.set(LogSearchConstants.FACET_RANGE_START, from);
-    solrQuery.set(LogSearchConstants.FACET_RANGE_END, to);
-    solrQuery.set(LogSearchConstants.FACET_RANGE_GAP, unit);
-    solrQuery.set(LogSearchConstants.FACET_MINCOUNT, 0);
-    setFacetLimit(solrQuery, -1);
-  }
-
-  public void setFacetLimit(SolrQuery solrQuery, int limit) {
-    solrQuery.set("facet.limit", limit);
-  }
-
-  //Solr Group Mehtods
-  public void setGroupField(SolrQuery solrQuery, String groupField, int rows) {
-    solrQuery.set(LogSearchConstants.FACET_GROUP, true);
-    solrQuery.set(LogSearchConstants.FACET_GROUP_FIELD, groupField);
-    solrQuery.set(LogSearchConstants.FACET_GROUP_MAIN, true);
-    setRowCount(solrQuery, rows);
-  }
-
-  //Main Query
-  public void setMainQuery(SolrQuery solrQuery, String query) {
-    String defalultQuery = "*:*";
-    if (StringUtils.isBlank(query)){
-      solrQuery.setQuery(defalultQuery);
-    }else{
-      solrQuery.setQuery(query);
-    }
-  }
-
-  public void setStart(SolrQuery solrQuery, int start) {
-    int defaultStart = 0;
-    if (start > defaultStart) {
-      solrQuery.setStart(start);
-    } else {
-      solrQuery.setStart(defaultStart);
-    }
-  }
-
-  //Set Number of Rows
-  public void setRowCount(SolrQuery solrQuery, int rows) {
-    if (rows > 0) {
-      solrQuery.setRows(rows);
-    } else {
-      solrQuery.setRows(0);
-      solrQuery.remove(LogSearchConstants.SORT);
-    }
-  }
-
-  //Solr Facet Methods
-  public void setFacetFieldWithMincount(SolrQuery solrQuery, String facetField, int minCount) {
-    solrQuery.setFacet(true);
-    setRowCount(solrQuery, 0);
-    solrQuery.set(LogSearchConstants.FACET_FIELD, facetField);
-    solrQuery.set(LogSearchConstants.FACET_MINCOUNT, minCount);
-    setFacetLimit(solrQuery, -1);
-  }
-  
-  public void setFl(SolrQuery solrQuery,String field){
-    solrQuery.set(LogSearchConstants.FL, field);
-  }
-
-}

+ 8 - 8
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/RESTErrorUtil.java

@@ -29,19 +29,19 @@ import org.apache.ambari.logsearch.common.MessageEnums;
 import org.apache.ambari.logsearch.view.VMessage;
 import org.apache.ambari.logsearch.view.VResponse;
 import org.apache.log4j.Logger;
-import org.springframework.stereotype.Component;
 
-@Component
 public class RESTErrorUtil {
+  private static final Logger logger = Logger.getLogger(RESTErrorUtil.class);
 
-  private static Logger logger = Logger.getLogger(RESTErrorUtil.class);
-
-  public WebApplicationException createRESTException(VResponse response) {
+  private RESTErrorUtil() {
+    throw new UnsupportedOperationException();
+  }
+  
+  public static WebApplicationException createRESTException(VResponse response) {
     return createRESTException(response, HttpServletResponse.SC_BAD_REQUEST);
   }
 
-  public WebApplicationException createRESTException(String errorMessage,
-                                                     MessageEnums messageEnum) {
+  public static WebApplicationException createRESTException(String errorMessage, MessageEnums messageEnum) {
     List<VMessage> messageList = new ArrayList<VMessage>();
     messageList.add(messageEnum.getMessage());
 
@@ -54,7 +54,7 @@ public class RESTErrorUtil {
     return webAppEx;
   }
 
-  private WebApplicationException createRESTException(VResponse response, int sc) {
+  private static WebApplicationException createRESTException(VResponse response, int sc) {
     Response errorResponse = Response.status(sc).entity(response).build();
     WebApplicationException restException = new WebApplicationException(errorResponse);
     restException.fillInStackTrace();

+ 132 - 32
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/util/SolrUtil.java

@@ -25,30 +25,28 @@ import java.util.Locale;
 
 import org.apache.ambari.logsearch.common.LogSearchConstants;
 import org.apache.ambari.logsearch.dao.SolrDaoBase;
+import org.apache.solr.client.solrj.SolrQuery;
 import org.apache.solr.schema.TrieDoubleField;
 import org.apache.solr.schema.TrieFloatField;
 import org.apache.solr.schema.TrieIntField;
 import org.apache.solr.schema.TrieLongField;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
-import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
 
-@Component
 public class SolrUtil {
-
-  @Autowired
-  private JSONUtil jsonUtil;
-
-  public String setField(String fieldName, String value) {
+  private SolrUtil() {
+    throw new UnsupportedOperationException();
+  }
+  
+  public static String setField(String fieldName, String value) {
     if (value == null || value.trim().length() == 0) {
       return "";
     }
     return fieldName + ":" + value.trim().toLowerCase(Locale.ENGLISH);
   }
 
-  public String inList(String fieldName, int[] values) {
+  public static String inList(String fieldName, int[] values) {
     if (ArrayUtils.isEmpty(values)) {
       return "";
     }
@@ -64,7 +62,7 @@ public class SolrUtil {
     }
   }
 
-  public String inList(Collection<Long> values) {
+  public static String inList(Collection<Long> values) {
     if (CollectionUtils.isEmpty(values)) {
       return "";
     }
@@ -81,7 +79,7 @@ public class SolrUtil {
 
   }
 
-  public String orList(String fieldName, String[] valueList, String wildCard) {
+  public static String orList(String fieldName, String[] valueList, String wildCard) {
     if (ArrayUtils.isEmpty(valueList)) {
       return "";
     }
@@ -109,7 +107,7 @@ public class SolrUtil {
 
   }
 
-  public String andList(String fieldName, String[] valueList, String wildCard) {
+  public static String andList(String fieldName, String[] valueList, String wildCard) {
     if (ArrayUtils.isEmpty(valueList)) {
       return "";
     }
@@ -140,7 +138,7 @@ public class SolrUtil {
   /**
    * Copied from Solr ClientUtils.escapeQueryChars and removed escaping *
    */
-  public String escapeQueryChars(String s) {
+  public static String escapeQueryChars(String s) {
     StringBuilder sb = new StringBuilder();
     int prev = 0;
     if (s != null) {
@@ -169,7 +167,7 @@ public class SolrUtil {
     return sb.toString();
   }
 
-  private String escapeForWhiteSpaceTokenizer(String search) {
+  private static String escapeForWhiteSpaceTokenizer(String search) {
     if (search == null) {
       return null;
     }
@@ -188,7 +186,7 @@ public class SolrUtil {
     return newSearch;
   }
 
-  public String escapeForStandardTokenizer(String search) {
+  public static String escapeForStandardTokenizer(String search) {
     if (search == null) {
       return null;
     }
@@ -207,7 +205,7 @@ public class SolrUtil {
     return newSearch;
   }
 
-  private String escapeForKeyTokenizer(String search) {
+  private static String escapeForKeyTokenizer(String search) {
     if (search.startsWith("*") && search.endsWith("*") && !StringUtils.isBlank(search)) {
       // Remove the * from both the sides
       if (search.length() > 1) {
@@ -226,7 +224,7 @@ public class SolrUtil {
    * This is a special case scenario to handle log_message for wild card
    * scenarios
    */
-  public String escapeForLogMessage(String field, String search) {
+  public static String escapeForLogMessage(String field, String search) {
     if (search.startsWith("*") && search.endsWith("*")) {
       field = LogSearchConstants.SOLR_KEY_LOG_MESSAGE;
       search = escapeForKeyTokenizer(search);
@@ -238,7 +236,7 @@ public class SolrUtil {
     return field + ":" + search;
   }
 
-  public String makeSolrSearchString(String search) {
+  public static String makeSolrSearchString(String search) {
     String newString = search.trim();
     String newSearch = newString.replaceAll("(?=[]\\[+&|!(){},:\"^~/=$@%?:.\\\\])", "\\\\");
     newSearch = newSearch.replace("\n", "*");
@@ -249,7 +247,7 @@ public class SolrUtil {
     return "*" + newSearch + "*";
   }
 
-  public String makeSolrSearchStringWithoutAsterisk(String search) {
+  public static String makeSolrSearchStringWithoutAsterisk(String search) {
     String newString = search.trim();
     String newSearch = newString.replaceAll("(?=[]\\[+&|!(){}^\"~=/$@%?:.\\\\])", "\\\\");
     newSearch = newSearch.replace("\n", "*");
@@ -261,7 +259,7 @@ public class SolrUtil {
     return newSearch;
   }
 
-  public String makeSearcableString(String search) {
+  public static String makeSearcableString(String search) {
     if (StringUtils.isBlank(search)) {
       return "";
     }
@@ -272,7 +270,7 @@ public class SolrUtil {
   }
   
 
-  public boolean isSolrFieldNumber(String fieldType,SolrDaoBase solrDaoBase) {
+  public static boolean isSolrFieldNumber(String fieldType,SolrDaoBase solrDaoBase) {
     if (StringUtils.isBlank(fieldType)) {
       return false;
     } else {
@@ -281,30 +279,25 @@ public class SolrUtil {
         return false;
       }
       String fieldTypeClassName = (String) typeInfoMap.get("class");
-      if (fieldTypeClassName.equalsIgnoreCase(TrieIntField.class
-          .getSimpleName())) {
+      if (fieldTypeClassName.equalsIgnoreCase(TrieIntField.class.getSimpleName())) {
         return true;
       }
-      if (fieldTypeClassName.equalsIgnoreCase(TrieDoubleField.class
-          .getSimpleName())) {
+      if (fieldTypeClassName.equalsIgnoreCase(TrieDoubleField.class.getSimpleName())) {
         return true;
       }
-      if (fieldTypeClassName.equalsIgnoreCase(TrieFloatField.class
-          .getSimpleName())) {
+      if (fieldTypeClassName.equalsIgnoreCase(TrieFloatField.class.getSimpleName())) {
         return true;
       }
-      if (fieldTypeClassName.equalsIgnoreCase(TrieLongField.class
-          .getSimpleName())) {
+      if (fieldTypeClassName.equalsIgnoreCase(TrieLongField.class.getSimpleName())) {
         return true;
       }
       return false;
     }
   }
   
-  public HashMap<String, Object> getFieldTypeInfoMap(String fieldType,SolrDaoBase solrDaoBase) {
+  public static HashMap<String, Object> getFieldTypeInfoMap(String fieldType,SolrDaoBase solrDaoBase) {
     String fieldTypeMetaData = solrDaoBase.schemaFieldTypeMap.get(fieldType);
-    HashMap<String, Object> fieldTypeMap = jsonUtil
-        .jsonToMapObject(fieldTypeMetaData);
+    HashMap<String, Object> fieldTypeMap = JSONUtil.jsonToMapObject(fieldTypeMetaData);
     if (fieldTypeMap == null) {
       return new HashMap<String, Object>();
     }
@@ -315,4 +308,111 @@ public class SolrUtil {
     }
     return fieldTypeMap;
   }
+  
+  //=============================================================================================================
+  
+  //Solr Facet Methods
+  public static void setFacetField(SolrQuery solrQuery, String facetField) {
+    solrQuery.setFacet(true);
+    setRowCount(solrQuery, 0);
+    solrQuery.set(LogSearchConstants.FACET_FIELD, facetField);
+    setFacetLimit(solrQuery, -1);
+  }
+
+  public static void setJSONFacet(SolrQuery solrQuery, String jsonQuery) {
+    solrQuery.setFacet(true);
+    setRowCount(solrQuery, 0);
+    solrQuery.set(LogSearchConstants.FACET_JSON_FIELD, jsonQuery);
+    setFacetLimit(solrQuery, -1);
+  }
+
+  public static void setFacetSort(SolrQuery solrQuery, String sortType) {
+    solrQuery.setFacet(true);
+    solrQuery.setFacetSort(sortType);
+  }
+
+  public static void setFacetPivot(SolrQuery solrQuery, int mincount, String... hirarchy) {
+    solrQuery.setFacet(true);
+    setRowCount(solrQuery, 0);
+    solrQuery.set(LogSearchConstants.FACET_PIVOT, hirarchy);
+    solrQuery.set(LogSearchConstants.FACET_PIVOT_MINCOUNT, mincount);
+    setFacetLimit(solrQuery, -1);
+  }
+
+  public static void setFacetDate(SolrQuery solrQuery, String facetField, String from, String to, String unit) {
+    solrQuery.setFacet(true);
+    setRowCount(solrQuery, 0);
+    solrQuery.set(LogSearchConstants.FACET_DATE, facetField);
+    solrQuery.set(LogSearchConstants.FACET_DATE_START, from);
+    solrQuery.set(LogSearchConstants.FACET_DATE_END, to);
+    solrQuery.set(LogSearchConstants.FACET_DATE_GAP, unit);
+    solrQuery.set(LogSearchConstants.FACET_MINCOUNT, 0);
+    setFacetLimit(solrQuery, -1);
+  }
+
+  public static void setFacetRange(SolrQuery solrQuery, String facetField, String from, String to, String unit) {
+    solrQuery.setFacet(true);
+    setRowCount(solrQuery, 0);
+    solrQuery.set(LogSearchConstants.FACET_RANGE, facetField);
+    solrQuery.set(LogSearchConstants.FACET_RANGE_START, from);
+    solrQuery.set(LogSearchConstants.FACET_RANGE_END, to);
+    solrQuery.set(LogSearchConstants.FACET_RANGE_GAP, unit);
+    solrQuery.set(LogSearchConstants.FACET_MINCOUNT, 0);
+    setFacetLimit(solrQuery, -1);
+  }
+
+  public static void setFacetLimit(SolrQuery solrQuery, int limit) {
+    solrQuery.set("facet.limit", limit);
+  }
+
+  //Solr Group Mehtods
+  public static void setGroupField(SolrQuery solrQuery, String groupField, int rows) {
+    solrQuery.set(LogSearchConstants.FACET_GROUP, true);
+    solrQuery.set(LogSearchConstants.FACET_GROUP_FIELD, groupField);
+    solrQuery.set(LogSearchConstants.FACET_GROUP_MAIN, true);
+    setRowCount(solrQuery, rows);
+  }
+
+  //Main Query
+  public static void setMainQuery(SolrQuery solrQuery, String query) {
+    String defalultQuery = "*:*";
+    if (StringUtils.isBlank(query)){
+      solrQuery.setQuery(defalultQuery);
+    }else{
+      solrQuery.setQuery(query);
+    }
+  }
+
+  public static void setStart(SolrQuery solrQuery, int start) {
+    int defaultStart = 0;
+    if (start > defaultStart) {
+      solrQuery.setStart(start);
+    } else {
+      solrQuery.setStart(defaultStart);
+    }
+  }
+
+  //Set Number of Rows
+  public static void setRowCount(SolrQuery solrQuery, int rows) {
+    if (rows > 0) {
+      solrQuery.setRows(rows);
+    } else {
+      solrQuery.setRows(0);
+      solrQuery.remove(LogSearchConstants.SORT);
+    }
+  }
+
+  //Solr Facet Methods
+  public static void setFacetFieldWithMincount(SolrQuery solrQuery, String facetField, int minCount) {
+    solrQuery.setFacet(true);
+    setRowCount(solrQuery, 0);
+    solrQuery.set(LogSearchConstants.FACET_FIELD, facetField);
+    solrQuery.set(LogSearchConstants.FACET_MINCOUNT, minCount);
+    setFacetLimit(solrQuery, -1);
+  }
+  
+  public static void setFl(SolrQuery solrQuery,String field){
+    solrQuery.set(LogSearchConstants.FL, field);
+  }
+  
 }

+ 2 - 9
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchAuthFailureHandler.java

@@ -24,27 +24,20 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.ambari.logsearch.util.RESTErrorUtil;
 import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.AuthenticationException;
 import org.springframework.security.web.authentication.ExceptionMappingAuthenticationFailureHandler;
 
 public class LogsearchAuthFailureHandler extends ExceptionMappingAuthenticationFailureHandler {
-
   private static final Logger logger = Logger.getLogger(LogsearchAuthFailureHandler.class);
 
-  @Autowired
-  RESTErrorUtil restErrorUtil;
-
-  public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
-                                      AuthenticationException exception) throws IOException, ServletException {
+  public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception)
+      throws IOException, ServletException {
     logger.debug(" AuthFailureHandler + onAuthenticationFailure");
     // TODO UI side handle status and redirect to login page with proper
     response.setContentType("application/json");
     response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
     response.getOutputStream().println("{ \"error\": \"" + "login failed !!" + "\" }");
-
   }
 
 }

+ 1 - 7
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchAuthenticationEntryPoint.java

@@ -24,23 +24,17 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.ambari.logsearch.util.RESTErrorUtil;
 import org.apache.log4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.AuthenticationException;
 import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
 
 class LogsearchAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {
-
-  @Autowired
-  RESTErrorUtil restErrorUtil;
+  private static final Logger logger = Logger.getLogger(LogsearchAuthenticationEntryPoint.class);
 
   public LogsearchAuthenticationEntryPoint(String loginFormUrl) {
     super(loginFormUrl);
   }
 
-  private static final Logger logger = Logger.getLogger(LogsearchAuthenticationEntryPoint.class);
-
   @Override
   public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException)
     throws IOException, ServletException {

+ 13 - 13
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchKRBAuthenticationFilter.java

@@ -40,7 +40,6 @@ import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.security.authentication.AbstractAuthenticationToken;
@@ -54,6 +53,7 @@ import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.security.core.context.SecurityContextImpl;
 import org.springframework.security.core.userdetails.User;
 import org.springframework.security.core.userdetails.UserDetails;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.commons.collections.iterators.IteratorEnumeration;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
@@ -102,18 +102,18 @@ public class LogsearchKRBAuthenticationFilter extends LogsearchKrbFilter {
   @Override
   public void init(FilterConfig conf) throws ServletException {
     final FilterConfig globalConf = conf;
-    String hostName = PropertiesUtil.getProperty(HOST_NAME, "localhost");
+    String hostName = PropertiesHelper.getProperty(HOST_NAME, "localhost");
     final Map<String, String> params = new HashMap<String, String>();
     if (spnegoEnable) {
       authType = KerberosAuthenticationHandler.TYPE;
     }
     params.put(AUTH_TYPE,authType);
-    params.put(NAME_RULES_PARAM,PropertiesUtil.getProperty(NAME_RULES, "DEFAULT"));
-    params.put(TOKEN_VALID_PARAM, PropertiesUtil.getProperty(TOKEN_VALID, "30"));
-    params.put(COOKIE_DOMAIN_PARAM, PropertiesUtil.getProperty(COOKIE_DOMAIN, hostName));
-    params.put(COOKIE_PATH_PARAM, PropertiesUtil.getProperty(COOKIE_PATH, "/"));
-    params.put(PRINCIPAL_PARAM,PropertiesUtil.getProperty(PRINCIPAL,""));
-    params.put(KEYTAB_PARAM,PropertiesUtil.getProperty(KEYTAB,""));
+    params.put(NAME_RULES_PARAM,PropertiesHelper.getProperty(NAME_RULES, "DEFAULT"));
+    params.put(TOKEN_VALID_PARAM, PropertiesHelper.getProperty(TOKEN_VALID, "30"));
+    params.put(COOKIE_DOMAIN_PARAM, PropertiesHelper.getProperty(COOKIE_DOMAIN, hostName));
+    params.put(COOKIE_PATH_PARAM, PropertiesHelper.getProperty(COOKIE_PATH, "/"));
+    params.put(PRINCIPAL_PARAM,PropertiesHelper.getProperty(PRINCIPAL,""));
+    params.put(KEYTAB_PARAM,PropertiesHelper.getProperty(KEYTAB,""));
     FilterConfig myConf = new FilterConfig() {
       @Override
       public ServletContext getServletContext() {
@@ -196,7 +196,7 @@ public class LogsearchKRBAuthenticationFilter extends LogsearchKrbFilter {
     }
     if (!isLoginRequest(httpRequest) && spnegoEnable
         && (existingAuth == null || !existingAuth.isAuthenticated())) {
-      KerberosName.setRules(PropertiesUtil.getProperty(NAME_RULES, "DEFAULT"));
+      KerberosName.setRules(PropertiesHelper.getProperty(NAME_RULES, "DEFAULT"));
       String userName = getUsernameFromRequest(httpRequest);
       if ((existingAuth == null || !existingAuth.isAuthenticated())
           && (!StringUtils.isEmpty(userName))) {
@@ -230,12 +230,12 @@ public class LogsearchKRBAuthenticationFilter extends LogsearchKrbFilter {
   }
 
   private void isSpnegoEnable() {
-    spnegoEnable = PropertiesUtil.getBooleanProperty(KERBEROS_ENABLE, false);
+    spnegoEnable = PropertiesHelper.getBooleanProperty(KERBEROS_ENABLE, false);
     if (spnegoEnable) {
       spnegoEnable = false;
-      String keytab = PropertiesUtil.getProperty(KEYTAB);
-      String principal = PropertiesUtil.getProperty(PRINCIPAL);
-      String hostname = PropertiesUtil.getProperty(HOST_NAME);
+      String keytab = PropertiesHelper.getProperty(KEYTAB);
+      String principal = PropertiesHelper.getProperty(PRINCIPAL);
+      String hostname = PropertiesHelper.getProperty(HOST_NAME);
       if (!StringUtils.isEmpty(keytab) && !StringUtils.isEmpty(principal)
           && !StringUtils.isEmpty(hostname)) {
         spnegoEnable = true;

+ 4 - 4
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LdapUtil.java

@@ -21,8 +21,8 @@ package org.apache.ambari.logsearch.web.security;
 import java.io.IOException;
 import java.util.Properties;
 
-import org.apache.ambari.logsearch.util.PropertiesUtil;
-import org.apache.ambari.logsearch.util.XMLPropertiesUtil;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
+import org.apache.ambari.logsearch.common.XMLPropertiesHelper;
 import org.apache.log4j.Logger;
 import org.springframework.core.io.ClassPathResource;
 
@@ -94,13 +94,13 @@ public class LdapUtil {
    */
   public static LdapProperties loadLdapProperties() {
     LdapProperties ldapServerProperties = null;
-    String ldapConfigFileName = PropertiesUtil.getProperty("logsearch.login.ldap.config", "logsearch-admin-site.xml");
+    String ldapConfigFileName = PropertiesHelper.getProperty("logsearch.login.ldap.config", "logsearch-admin-site.xml");
     Properties props = null;
     ClassPathResource resource = new ClassPathResource(ldapConfigFileName);
     if (resource != null) {
       try {
         props = new Properties();
-        new XMLPropertiesUtil().loadFromXml(props, resource.getInputStream());
+        new XMLPropertiesHelper().loadFromXml(props, resource.getInputStream());
         ldapServerProperties = getLdapServerProperties(props);
       } catch (IOException e) {
         logger.error("Ldap configudation file loading failed : " + e.getMessage());

+ 2 - 2
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAbstractAuthenticationProvider.java

@@ -21,7 +21,7 @@ package org.apache.ambari.logsearch.web.security;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.ambari.logsearch.util.PropertiesUtil;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.springframework.security.authentication.AuthenticationProvider;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.GrantedAuthority;
@@ -61,7 +61,7 @@ public abstract class LogsearchAbstractAuthenticationProvider implements Authent
   public boolean isEnable(AUTH_METHOD method) {
     String methodName = method.name().toLowerCase();
     String property = AUTH_METHOD_PROP_START_WITH + methodName + ".enable";
-    boolean isEnable = PropertiesUtil.getBooleanProperty(property, false);
+    boolean isEnable = PropertiesHelper.getBooleanProperty(property, false);
     return isEnable;
   }
 

+ 1 - 12
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProvider.java

@@ -54,12 +54,6 @@ public class LogsearchAuthenticationProvider extends
   @Autowired
   LogsearchExternalServerAuthenticationProvider externalServerAuthenticationProvider;
 
-  @Autowired
-  JSONUtil jsonUtil;
-
-  @Autowired
-  private UserDetailsService userService;
-
   @Override
   public Authentication authenticate(Authentication authentication)
     throws AuthenticationException {
@@ -117,7 +111,7 @@ public class LogsearchAuthenticationProvider extends
       }
       return authentication;
     } finally {
-      String jsonStr = jsonUtil.mapToJSON(auditRecord);
+      String jsonStr = JSONUtil.mapToJSON(auditRecord);
       if (isSuccess) {
         auditLogger.info(jsonStr);
       } else {
@@ -126,11 +120,6 @@ public class LogsearchAuthenticationProvider extends
     }
   }
 
-  /**
-   * @param authentication
-   * @param authMethod
-   * @return
-   */
   public Authentication doAuth(Authentication authentication, AUTH_METHOD authMethod) {
     if (authMethod.equals(AUTH_METHOD.LDAP)) {
       authentication = ldapAuthenticationProvider.authenticate(authentication);

+ 5 - 8
ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProvider.java

@@ -23,9 +23,9 @@ import java.util.List;
 
 import javax.annotation.PostConstruct;
 
-import org.apache.ambari.logsearch.util.ExternalServerClient;
+import org.apache.ambari.logsearch.common.ExternalServerClient;
+import org.apache.ambari.logsearch.common.PropertiesHelper;
 import org.apache.ambari.logsearch.util.JSONUtil;
-import org.apache.ambari.logsearch.util.PropertiesUtil;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
@@ -98,14 +98,11 @@ public class LogsearchExternalServerAuthenticationProvider extends
   @Autowired
   ExternalServerClient externalServerClient;
 
-  @Autowired
-  JSONUtil jsonUtil;
-
   private String loginAPIURL = "/api/v1/users/$USERNAME/privileges?fields=*";// default
 
   @PostConstruct
   public void initialization() {
-    loginAPIURL = PropertiesUtil.getProperty(AUTH_METHOD_PROP_START_WITH
+    loginAPIURL = PropertiesHelper.getProperty(AUTH_METHOD_PROP_START_WITH
         + "external_auth.login_url", loginAPIURL);
   }
 
@@ -160,11 +157,11 @@ public class LogsearchExternalServerAuthenticationProvider extends
    */
   @SuppressWarnings("static-access")
   private boolean isAllowedRole(String responseJson) {
-    String allowedRoleList[] = PropertiesUtil
+    String allowedRoleList[] = PropertiesHelper
         .getPropertyStringList(ALLOWED_ROLE_PROP);
 
     List<String> values = new ArrayList<String>();
-    jsonUtil.getValuesOfKey(responseJson,
+    JSONUtil.getValuesOfKey(responseJson,
         PRIVILEGE_INFO.PERMISSION_NAME.toString(), values);
     if (values.isEmpty())
       return true;

+ 2 - 2
ambari-logsearch/ambari-logsearch-portal/src/main/webapp/META-INF/applicationContext.xml

@@ -37,9 +37,9 @@ http://www.springframework.org/schema/util/spring-util.xsd">
 
 	<context:component-scan base-package="org.apache.ambari.logsearch" />
 	<task:annotation-driven />
-	<bean id="xmlPropertyConfigurer" class="org.apache.ambari.logsearch.util.XMLPropertiesUtil" />
+	<bean id="xmlPropertyConfigurer" class="org.apache.ambari.logsearch.common.XMLPropertiesHelper" />
 	
-	<bean id="propertyConfigurer" class="org.apache.ambari.logsearch.util.PropertiesUtil">
+	<bean id="propertyConfigurer" class="org.apache.ambari.logsearch.common.PropertiesHelper">
 		<property name="locations">
 			<list>
 				<value>classpath:default.properties</value>

+ 0 - 1
ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/SolrDaoBaseTest.java

@@ -232,7 +232,6 @@ public class SolrDaoBaseTest {
     expectedException.expect(WebApplicationException.class);
     
     SolrDaoBase dao = new SolrDaoBase(LogType.SERVICE) {};
-    dao.restErrorUtil = new RESTErrorUtil();
     dao.process(new SolrQuery());
   }
   

+ 4 - 9
ambari-logsearch/ambari-logsearch-portal/src/test/java/org/apache/ambari/logsearch/dao/UserConfigSolrDaoTest.java

@@ -33,20 +33,11 @@ import org.easymock.Capture;
 import org.easymock.CaptureType;
 import org.easymock.EasyMock;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 import junit.framework.Assert;
 
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(locations = { "/applicationContext.xml" })
 public class UserConfigSolrDaoTest {
   
-  @Autowired
-  private UserConfigSolrDao dao;
-  
   @Test
   public void testUserConfigDaoPostConstructor() throws Exception {
     SolrClient mockSolrClient = EasyMock.strictMock(SolrClient.class);
@@ -78,6 +69,8 @@ public class UserConfigSolrDaoTest {
     EasyMock.expect(mockSolrClient.commit()).andReturn(updateResponse);
     EasyMock.replay(mockSolrClient);
     
+    UserConfigSolrDao dao = new UserConfigSolrDao();
+    dao.postConstructor();
     dao.solrClient = mockSolrClient;
     dao.isZkConnectString = true;
     
@@ -119,6 +112,8 @@ public class UserConfigSolrDaoTest {
     EasyMock.expect(mockSolrClient.commit()).andReturn(updateResponse);
     EasyMock.replay(mockSolrClient);
     
+    UserConfigSolrDao dao = new UserConfigSolrDao();
+    dao.postConstructor();
     dao.solrClient = mockSolrClient;
     dao.isZkConnectString = true;
     

+ 2 - 2
ambari-logsearch/ambari-logsearch-portal/src/test/resources/applicationContext.xml

@@ -37,9 +37,9 @@ http://www.springframework.org/schema/util/spring-util.xsd">
 
 	<context:component-scan base-package="org.apache.ambari.logsearch" />
 	<task:annotation-driven />
-	<bean id="xmlPropertyConfigurer" class="org.apache.ambari.logsearch.util.XMLPropertiesUtil" />
+	<bean id="xmlPropertyConfigurer" class="org.apache.ambari.logsearch.common.XMLPropertiesHelper" />
 	
-	<bean id="propertyConfigurer" class="org.apache.ambari.logsearch.util.PropertiesUtil">
+	<bean id="propertyConfigurer" class="org.apache.ambari.logsearch.common.PropertiesHelper">
 		<property name="locations">
 			<list>
 				<value>classpath:default.properties</value>

+ 0 - 53
ambari-logsearch/ambari-logsearch-portal/src/test/resources/applicationContext_testManagers.xml

@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  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.
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-xmlns:aop="http://www.springframework.org/schema/aop" xmlns:jee="http://www.springframework.org/schema/jee"
-xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
-xmlns:task="http://www.springframework.org/schema/task" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xmlns:util="http://www.springframework.org/schema/util"
-xsi:schemaLocation="http://www.springframework.org/schema/aop
-http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
-http://www.springframework.org/schema/beans
-http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
-http://www.springframework.org/schema/context
-http://www.springframework.org/schema/context/spring-context-4.2.xsd
-http://www.springframework.org/schema/jee
-http://www.springframework.org/schema/jee/spring-jee-4.2.xsd
-http://www.springframework.org/schema/tx
-http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
-http://www.springframework.org/schema/task
-http://www.springframework.org/schema/task/spring-task-4.2.xsd
-http://www.springframework.org/schema/util
-http://www.springframework.org/schema/util/spring-util.xsd">
-
-	<context:component-scan base-package="org.apache.ambari.logsearch.manager.dao, org.apache.ambari.logsearch.util" />
-	<task:annotation-driven />
-	<bean id="xmlPropertyConfigurer" class="org.apache.ambari.logsearch.util.XMLPropertiesUtil" />
-	
-	<bean id="propertyConfigurer" class="org.apache.ambari.logsearch.util.PropertiesUtil">
-		<property name="locations">
-			<list>
-				<value>classpath:default.properties</value>
-				<value>classpath:logsearch.properties</value>
-				<value>classpath:logsearch-admin-site.xml</value>
-			</list>
-		</property>
-		<property name="propertiesPersister" ref="xmlPropertyConfigurer" />
-	</bean>
-	
-</beans>