You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ol...@apache.org on 2016/09/13 10:41:37 UTC

[20/51] [abbrv] ambari git commit: AMBARI-18253. Fix LogSearch utility classes (Miklos Gergely via oleewere)

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


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0afbca7f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0afbca7f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0afbca7f

Branch: refs/heads/logsearch-ga
Commit: 0afbca7fc77366a0bcdda5137f539bec18b2f277
Parents: 08bab8d
Author: oleewere <ol...@gmail.com>
Authored: Thu Aug 25 13:02:45 2016 +0200
Committer: oleewere <ol...@gmail.com>
Committed: Tue Sep 13 12:19:24 2016 +0200

----------------------------------------------------------------------
 .../org/apache/ambari/logsearch/LogSearch.java  |   8 +-
 .../ambari/logsearch/common/ConfigHelper.java   | 136 ++++++++++++
 .../logsearch/common/ExternalServerClient.java  |  96 +++++++++
 .../logsearch/common/PropertiesHelper.java      | 181 ++++++++++++++++
 .../ambari/logsearch/common/SearchCriteria.java |   5 +-
 .../logsearch/common/XMLPropertiesHelper.java   |  79 +++++++
 .../ambari/logsearch/dao/AuditSolrDao.java      |  20 +-
 .../logsearch/dao/ServiceLogsSolrDao.java       |  16 +-
 .../ambari/logsearch/dao/SolrDaoBase.java       |  21 +-
 .../ambari/logsearch/dao/UserConfigSolrDao.java |  27 +--
 .../apache/ambari/logsearch/dao/UserDao.java    |  17 +-
 .../logsearch/graph/GraphDataGenerator.java     |  36 ++--
 .../logsearch/graph/GraphDataGeneratorBase.java |   6 +-
 .../ambari/logsearch/manager/AuditMgr.java      |  93 ++++----
 .../ambari/logsearch/manager/LogFileMgr.java    |  22 +-
 .../ambari/logsearch/manager/LogsMgr.java       | 211 +++++++++----------
 .../ambari/logsearch/manager/MgrBase.java       |  30 +--
 .../ambari/logsearch/manager/UserConfigMgr.java |  47 ++---
 .../ambari/logsearch/query/QueryGeneration.java |  36 ++--
 .../logsearch/query/QueryGenerationBase.java    |  34 ++-
 .../ambari/logsearch/rest/ServiceLogsREST.java  |   4 -
 .../ambari/logsearch/rest/UserConfigREST.java   |   4 -
 .../solr/metrics/SolrMetricsLoader.java         |   8 +-
 .../apache/ambari/logsearch/util/BizUtil.java   |  27 +--
 .../ambari/logsearch/util/CommonUtil.java       |   4 +
 .../ambari/logsearch/util/ConfigUtil.java       | 140 ------------
 .../apache/ambari/logsearch/util/DateUtil.java  |  32 +--
 .../logsearch/util/ExternalServerClient.java    |  96 ---------
 .../apache/ambari/logsearch/util/FileUtil.java  |  17 +-
 .../apache/ambari/logsearch/util/JSONUtil.java  |  41 ++--
 .../ambari/logsearch/util/PropertiesUtil.java   | 182 ----------------
 .../apache/ambari/logsearch/util/QueryBase.java | 132 ------------
 .../ambari/logsearch/util/RESTErrorUtil.java    |  16 +-
 .../apache/ambari/logsearch/util/SolrUtil.java  | 164 +++++++++++---
 .../logsearch/util/XMLPropertiesUtil.java       |  85 --------
 .../LogsearchAuthFailureHandler.java            |  11 +-
 .../LogsearchAuthenticationEntryPoint.java      |   8 +-
 .../LogsearchKRBAuthenticationFilter.java       |  26 +--
 .../ambari/logsearch/web/security/LdapUtil.java |   8 +-
 ...LogsearchAbstractAuthenticationProvider.java |   4 +-
 .../LogsearchAuthenticationProvider.java        |  13 +-
 ...rchExternalServerAuthenticationProvider.java |  13 +-
 .../main/webapp/META-INF/applicationContext.xml |   4 +-
 .../ambari/logsearch/dao/SolrDaoBaseTest.java   |   1 -
 .../logsearch/dao/UserConfigSolrDaoTest.java    |  13 +-
 .../src/test/resources/applicationContext.xml   |   4 +-
 .../applicationContext_testManagers.xml         |  53 -----
 47 files changed, 1013 insertions(+), 1218 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java
index fcebcea..15355a1 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/LogSearch.java
+++ b/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;
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java
new file mode 100644
index 0000000..edb4ffa
--- /dev/null
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ConfigHelper.java
@@ -0,0 +1,136 @@
+/*
+ * 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.common;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ambari.logsearch.dao.SolrDaoBase;
+import org.apache.ambari.logsearch.manager.MgrBase;
+import org.apache.commons.lang.ArrayUtils;
+import org.apache.log4j.Logger;
+import org.codehaus.jettison.json.JSONArray;
+import org.codehaus.jettison.json.JSONObject;
+
+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() {
+    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) {
+
+    if (columnMappingArray != null && columnMappingArray.length > 0) {
+      for (String columnMapping : columnMappingArray) {
+        String mapping[] = columnMapping.split(":");
+        if (mapping.length > 1) {
+          String solrField = mapping[0];
+          String uiField = mapping[1];
+          
+          columnMappingMap.put(solrField + LogSearchConstants.SOLR_SUFFIX, uiField);
+          columnMappingMap.put(uiField + LogSearchConstants.UI_SUFFIX, solrField);
+        }
+      }
+    }
+  }
+
+  public static void extractSchemaFieldsName(String responseString, HashMap<String, String> schemaFieldsNameMap,
+      HashMap<String, String> schemaFieldTypeMap) {
+    try {
+      JSONObject jsonObject = new JSONObject(responseString);
+      JSONObject schemajsonObject = jsonObject.getJSONObject("schema");
+      JSONArray jsonArrayList = schemajsonObject.getJSONArray("fields");
+      JSONArray fieldTypeJsonArray = schemajsonObject
+          .getJSONArray("fieldTypes");
+      if (jsonArrayList == null) {
+        return;
+      }
+      if (fieldTypeJsonArray == null) {
+        return;
+      }
+      HashMap<String, String> _schemaFieldTypeMap = new HashMap<String, String>();
+      HashMap<String, String> _schemaFieldsNameMap = new HashMap<String, String>();
+      for (int i = 0; i < fieldTypeJsonArray.length(); i++) {
+        JSONObject typeObject = fieldTypeJsonArray.getJSONObject(i);
+        String name = typeObject.getString("name");
+        String fieldTypeJson = typeObject.toString();
+        _schemaFieldTypeMap.put(name, fieldTypeJson);
+      }
+
+      for (int i = 0; i < jsonArrayList.length(); i++) {
+        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")) {
+          _schemaFieldsNameMap.put(name, type);
+        }
+      }
+      schemaFieldsNameMap.clear();
+      schemaFieldTypeMap.clear();
+      schemaFieldsNameMap.putAll(_schemaFieldsNameMap);
+      schemaFieldTypeMap.putAll(_schemaFieldTypeMap);
+    } catch (Exception e) {
+      logger.error(e + "Credentials not specified in logsearch.properties " + MessageEnums.ERROR_SYSTEM);
+    }
+  }
+
+  @SuppressWarnings("rawtypes")
+  public static void getSchemaFieldsName(String excludeArray[], List<String> fieldNames, SolrDaoBase solrDaoBase) {
+    if (!solrDaoBase.schemaFieldsNameMap.isEmpty()) {
+      Iterator iteratorSechmaFieldsName = solrDaoBase.schemaFieldsNameMap.entrySet().iterator();
+      while (iteratorSechmaFieldsName.hasNext()) {
+        Map.Entry fieldName = (Map.Entry) iteratorSechmaFieldsName.next();
+        String field = "" + fieldName.getKey();
+        if (!isExclude(field, excludeArray)) {
+          fieldNames.add(field);
+        }
+      }
+    }
+  }
+
+  private static boolean isExclude(String name, String excludeArray[]) {
+    if (!ArrayUtils.isEmpty(excludeArray)) {
+      for (String exclude : excludeArray) {
+        if (name.equals(exclude)){
+          return true;
+        }
+      }
+    }
+    return false;
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java
new file mode 100644
index 0000000..5235fab
--- /dev/null
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/ExternalServerClient.java
@@ -0,0 +1,96 @@
+/*
+ * 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.common;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.ws.rs.client.Invocation;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+
+import org.apache.ambari.logsearch.web.security.LogsearchAbstractAuthenticationProvider;
+import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.glassfish.jersey.client.JerseyClient;
+import org.glassfish.jersey.client.JerseyClientBuilder;
+import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature;
+import org.glassfish.jersey.filter.LoggingFilter;
+import org.springframework.stereotype.Component;
+
+/**
+ * Layer to send REST request to External server using jersey client
+ */
+@Component
+public class ExternalServerClient {
+  private static Logger LOG = Logger.getLogger(ExternalServerClient.class);
+  private static final ThreadLocal<JerseyClient> localJerseyClient = new ThreadLocal<JerseyClient>(){
+    @Override
+    protected JerseyClient initialValue() {
+      return JerseyClientBuilder.createClient();
+    }
+  };
+  private String hostURL = "http://host:ip";// default
+  private boolean enableLog = false;// default
+
+  @PostConstruct
+  public void initialization() {
+    hostURL = PropertiesHelper.getProperty(
+        LogsearchAbstractAuthenticationProvider.AUTH_METHOD_PROP_START_WITH
+            + "external_auth.host_url", hostURL);
+  }
+
+  /**
+   * Send GET request to an external server
+   */
+  @SuppressWarnings({ "unchecked", "rawtypes" })
+  public Object sendGETRequest(String url, Class klass, MultivaluedMap<String, String> queryParam,
+                               String username, String password)
+      throws Exception {
+    url = hostURL + url;
+    JerseyClient client = localJerseyClient.get();
+    HttpAuthenticationFeature authFeature = HttpAuthenticationFeature.basicBuilder().build();
+
+    client.register(authFeature);
+    if (enableLog) {
+      client.register(LoggingFilter.class);
+    }
+
+    WebTarget target = client.target(url);
+    LOG.debug("URL: " + url);
+    for (Map.Entry<String, List<String>> entry : queryParam.entrySet()) {
+      target = target.queryParam(entry.getKey(), entry.getValue());
+      LOG.debug(
+        String.format("Query parameter: name - %s  ; value - %s ;" + entry.getKey(), StringUtils.join(entry.getValue(),',')));
+    }
+    target
+      .property(HttpAuthenticationFeature.HTTP_AUTHENTICATION_BASIC_USERNAME, username)
+      .property(HttpAuthenticationFeature.HTTP_AUTHENTICATION_BASIC_PASSWORD, password);
+    Invocation.Builder invocationBuilder =  target.request(MediaType.APPLICATION_JSON_TYPE);
+    try {
+      return invocationBuilder.get().readEntity(klass);
+    } catch (Exception e) {
+      throw new Exception(e.getCause());
+    } finally {
+      localJerseyClient.remove();
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java
new file mode 100644
index 0000000..adb0699
--- /dev/null
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/PropertiesHelper.java
@@ -0,0 +1,181 @@
+/*
+ * 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.common;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
+
+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 PropertiesHelper() {
+  }
+  
+ static {
+    propertiesMap = new HashMap<String, String>();
+    Properties properties = new Properties();
+    URL fileCompleteUrl = Thread.currentThread().getContextClassLoader().getResource(LOGSEARCH_PROP_FILE);
+    FileInputStream fileInputStream = null;
+    try {
+      File file = new File(fileCompleteUrl.toURI());
+      fileInputStream = new FileInputStream(file.getAbsoluteFile());
+      properties.load(fileInputStream);
+    } catch (IOException | URISyntaxException e) {
+      logger.error("error loading prop for protocol config",e);
+    } finally {
+      if (fileInputStream != null) {
+        try {
+          fileInputStream.close();
+        } catch (IOException e) {
+        }
+      }
+    }
+    for (String key : properties.stringPropertyNames()) {
+      String value = properties.getProperty(key);
+      propertiesMap.put(key, value);
+    }
+  }
+
+  @Override
+  protected void processProperties(ConfigurableListableBeanFactory beanFactory, Properties props) throws BeansException {
+    super.processProperties(beanFactory, props);
+
+    propertiesMap = new HashMap<String, String>();
+
+    // First add the system properties
+    Set<Object> keySet = System.getProperties().keySet();
+    for (Object key : keySet) {
+      String keyStr = key.toString();
+      propertiesMap.put(keyStr, System.getProperties().getProperty(keyStr).trim());
+    }
+
+    // add our properties now
+    keySet = props.keySet();
+    for (Object key : keySet) {
+      String keyStr = key.toString();
+      propertiesMap.put(keyStr, props.getProperty(keyStr).trim());
+    }
+  }
+
+  public static String getProperty(String key, String defaultValue) {
+    if (key == null) {
+      return null;
+    }
+    String rtrnVal = propertiesMap.get(key);
+    if (rtrnVal == null) {
+      rtrnVal = defaultValue;
+    }
+    return rtrnVal;
+  }
+
+  public static String getProperty(String key) {
+    if (key == null) {
+      return null;
+    }
+    return propertiesMap.get(key);
+  }
+
+  public static String[] getPropertyStringList(String key) {
+    if (key == null) {
+      return null;
+    }
+    String value = propertiesMap.get(key);
+    if (value == null || value.trim().equals("")) {
+      return new String[0];
+    } else {
+      String[] splitValues = value.split(",");
+      String[] returnValues = new String[splitValues.length];
+      for (int i = 0; i < splitValues.length; i++) {
+        returnValues[i] = splitValues[i].trim();
+      }
+      return returnValues;
+    }
+  }
+
+  public static Integer getIntProperty(String key, int defaultValue) {
+    if (key == null) {
+      return null;
+    }
+    String rtrnVal = propertiesMap.get(key);
+    if (rtrnVal == null) {
+      return defaultValue;
+    }
+    return Integer.valueOf(rtrnVal);
+  }
+
+  public static Integer getIntProperty(String key) {
+    if (key == null) {
+      return null;
+    }
+    String rtrnVal = propertiesMap.get(key);
+    if (rtrnVal == null) {
+      return null;
+    }
+    return Integer.valueOf(rtrnVal);
+  }
+
+  public static Long getLongProperty(String key, long defaultValue) {
+    if (key == null) {
+      return null;
+    }
+    String rtrnVal = propertiesMap.get(key);
+    if (rtrnVal == null) {
+      return defaultValue;
+    }
+    return Long.valueOf(rtrnVal);
+  }
+
+  public static Long getLongProperty(String key) {
+    if (key == null) {
+      return null;
+    }
+    String rtrnVal = propertiesMap.get(key);
+    if (rtrnVal == null) {
+      return null;
+    }
+    return Long.valueOf(rtrnVal);
+  }
+
+  public static boolean getBooleanProperty(String key, boolean defaultValue) {
+    if (key == null) {
+      return defaultValue;
+    }
+    String value = getProperty(key);
+    if (value == null) {
+      return defaultValue;
+    }
+    return Boolean.parseBoolean(value);
+  }
+}

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java
index 2cf2139..6b74144 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/SearchCriteria.java
+++ b/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 {

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java
new file mode 100644
index 0000000..690a60f
--- /dev/null
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/common/XMLPropertiesHelper.java
@@ -0,0 +1,79 @@
+/*
+ * 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.common;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+
+import org.apache.log4j.Logger;
+import org.springframework.util.DefaultPropertiesPersister;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+public class XMLPropertiesHelper extends DefaultPropertiesPersister {
+  private static Logger logger = Logger.getLogger(XMLPropertiesHelper.class);
+
+  public XMLPropertiesHelper() {
+  }
+
+  @Override
+  public void loadFromXml(Properties properties, InputStream inputStream)
+      throws IOException {
+    try {
+      DocumentBuilderFactory xmlDocumentBuilderFactory = DocumentBuilderFactory.newInstance();
+      xmlDocumentBuilderFactory.setIgnoringComments(true);
+      xmlDocumentBuilderFactory.setNamespaceAware(true);
+      DocumentBuilder xmlDocumentBuilder = xmlDocumentBuilderFactory.newDocumentBuilder();
+      Document xmlDocument = xmlDocumentBuilder.parse(inputStream);
+      if (xmlDocument != null) {
+        xmlDocument.getDocumentElement().normalize();
+        NodeList nList = xmlDocument.getElementsByTagName("property");
+        if (nList != null) {
+          for (int temp = 0; temp < nList.getLength(); temp++) {
+            Node nNode = nList.item(temp);
+            if (nNode.getNodeType() == Node.ELEMENT_NODE) {
+              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("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);
+              }
+            }
+          }
+        }
+      }
+    } catch (Exception e) {
+      logger.error("Error loading xml properties ", e);
+    }
+  }
+
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java
index a6f77e9..64aa776 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/AuditSolrDao.java
+++ b/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);

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java
index af6d62d..6e2bb4b 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/ServiceLogsSolrDao.java
+++ b/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);

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java
index 2129f9e..8cdb6eb 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/SolrDaoBase.java
+++ b/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;
       }
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java
index a0c1134..026c78f 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserConfigSolrDao.java
+++ b/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;

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java
index b7853df..39f0e25 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java
+++ b/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;
@@ -52,10 +51,6 @@ public class UserDao {
   private static final String NAME = "name";
 
   @Autowired
-  private JSONUtil jsonUtil;
-  @Autowired
-  private FileUtil fileUtil;
-  @Autowired
   private LogsearchFileAuthenticationProvider fileAuthenticationProvider;
 
   private ArrayList<HashMap<String, String>> userList = null;
@@ -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>>();

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java
index 3793f50..d84b7b9 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGenerator.java
+++ b/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");

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java
index 49006e2..e7fab9a 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/graph/GraphDataGeneratorBase.java
+++ b/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);

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java
index 947fdbb..172ec81 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/AuditMgr.java
+++ b/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);
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/0afbca7f/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java
index 8badb61..e227c6c 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/manager/LogFileMgr.java
+++ b/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);
 
     }