This is an automated email from the ASF dual-hosted git repository.

lewismc pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-sdap-mudrod.git


The following commit(s) were added to refs/heads/master by this push:
     new 74d3a70  SDAP-185: Clean up code base (#43)
74d3a70 is described below

commit 74d3a709dde55e1df60286d7e637e2c119aa64c2
Author: Kevin Ratnasekera <[email protected]>
AuthorDate: Wed Mar 6 22:11:56 2019 +0530

    SDAP-185: Clean up code base (#43)
    
    * SDAP-185: Clean up code base
    
    * Improve logging for PODAACMetadata
---
 .../mudrod/discoveryengine/RecommendEngine.java    |  13 ++
 .../discoveryengine/WeblogDiscoveryEngine.java     |  10 +-
 .../org/apache/sdap/mudrod/driver/ESDriver.java    |  12 +-
 .../mudrod/integration/LinkageIntegration.java     |  14 +-
 .../org/apache/sdap/mudrod/main/MudrodEngine.java  |   2 +-
 .../sdap/mudrod/metadata/pre/ApiHarvester.java     |   9 +-
 .../sdap/mudrod/metadata/pre/MatrixGenerator.java  |   2 +-
 .../sdap/mudrod/metadata/structure/Metadata.java   |   5 -
 .../metadata/structure/MetadataExtractor.java      |   5 +-
 .../mudrod/metadata/structure/PODAACMetadata.java  | 210 ++++++++++-----------
 .../org/apache/sdap/mudrod/ontology/Ontology.java  |  10 +-
 .../sdap/mudrod/ontology/pre/AggregateTriples.java |  27 ++-
 .../mudrod/ontology/process/OntologyLinkCal.java   |   2 +-
 .../mudrod/ontology/process/OntologyParser.java    |   4 +-
 .../sdap/mudrod/ontology/process/OwlParser.java    |   4 +-
 .../mudrod/recommendation/pre/ImportMetadata.java  |  12 +-
 .../recommendation/pre/MetadataTFIDFGenerator.java |   2 +-
 .../recommendation/pre/NormalizeFeatures.java      |   8 +-
 .../recommendation/pre/SessionCooccurence.java     |   6 +-
 .../process/AbstractBasedSimilarity.java           |   2 +-
 .../process/FeatureBasedSimilarity.java            |  10 +-
 .../recommendation/process/SessionBasedCF.java     |   6 +-
 .../structure/HybridRecommendation.java            |  18 +-
 .../recommendation/structure/MetadataFeature.java  |   6 +-
 .../structure/MetadataTokenizer.java               |  16 +-
 .../structure/PODAACMetadataFeature.java           |  18 +-
 .../sdap/mudrod/semantics/SemanticAnalyzer.java    |   8 +-
 .../sdap/mudrod/ssearch/ClickStreamImporter.java   |  12 +-
 .../org/apache/sdap/mudrod/ssearch/Ranker.java     |   6 +-
 .../org/apache/sdap/mudrod/ssearch/Searcher.java   |  12 +-
 .../sdap/mudrod/ssearch/ranking/DataGenerator.java |  29 +--
 .../sdap/mudrod/ssearch/ranking/Learner.java       |   5 +-
 .../mudrod/ssearch/ranking/SparkFormatter.java     |  35 +++-
 .../mudrod/ssearch/ranking/TrainingImporter.java   |   2 +-
 .../sdap/mudrod/ssearch/structure/SResult.java     |  10 +-
 .../apache/sdap/mudrod/tools/EONETIngester.java    |   9 +-
 .../org/apache/sdap/mudrod/utils/HttpRequest.java  |   2 +-
 .../apache/sdap/mudrod/utils/LinkageTriple.java    |   8 +-
 .../org/apache/sdap/mudrod/utils/MatrixUtil.java   |  20 +-
 .../java/org/apache/sdap/mudrod/utils/SVDUtil.java |   8 +-
 .../apache/sdap/mudrod/utils/SimilarityUtil.java   |   2 +-
 .../weblog/partition/KGreedyPartitionSolver.java   |  25 ++-
 .../partition/ThePartitionProblemSolver.java       |  16 +-
 .../mudrod/weblog/partition/logPartitioner.java    |  17 +-
 .../sdap/mudrod/weblog/pre/CrawlerDetection.java   |   2 +-
 .../sdap/mudrod/weblog/pre/HistoryGenerator.java   |  11 +-
 .../sdap/mudrod/weblog/pre/ImportLogFile.java      |  25 +--
 .../apache/sdap/mudrod/weblog/pre/LogAbstract.java |  19 +-
 .../weblog/pre/RankingTrainDataGenerator.java      |  15 +-
 .../sdap/mudrod/weblog/pre/SessionGenerator.java   |  30 +--
 .../sdap/mudrod/weblog/pre/SessionStatistic.java   |  16 +-
 .../weblog/structure/log/ApacheAccessLog.java      |  10 +-
 .../mudrod/weblog/structure/log/Coordinates.java   |   1 +
 .../mudrod/weblog/structure/log/RequestUrl.java    |   8 +-
 .../weblog/structure/session/ClickStream.java      |   7 +-
 .../weblog/structure/session/RankingTrainData.java |  13 ++
 .../mudrod/weblog/structure/session/Session.java   |   3 +-
 .../weblog/structure/session/SessionExtractor.java |   8 +-
 .../weblog/structure/session/SessionNode.java      |  13 +-
 .../mudrod/ontology/process/TestLocalOntology.java |   6 +-
 .../mudrod/services/MudrodContextListener.java     |   2 +-
 .../autocomplete/AutoCompleteResource.java         |   6 +-
 .../search/SearchDatasetDetailResource.java        |   6 +-
 .../services/search/SearchMetadataResource.java    |   6 +-
 .../services/search/SearchVocabResource.java       |   6 +-
 .../services/search/SessionDetailResource.java     |   7 +-
 66 files changed, 535 insertions(+), 344 deletions(-)

diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/discoveryengine/RecommendEngine.java
 
b/core/src/main/java/org/apache/sdap/mudrod/discoveryengine/RecommendEngine.java
index b664c8e..4239e3e 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/discoveryengine/RecommendEngine.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/discoveryengine/RecommendEngine.java
@@ -1,3 +1,16 @@
+/*
+ * Licensed 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.sdap.mudrod.discoveryengine;
 
 import org.apache.sdap.mudrod.driver.ESDriver;
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/discoveryengine/WeblogDiscoveryEngine.java
 
b/core/src/main/java/org/apache/sdap/mudrod/discoveryengine/WeblogDiscoveryEngine.java
index b2cdb9f..59510db 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/discoveryengine/WeblogDiscoveryEngine.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/discoveryengine/WeblogDiscoveryEngine.java
@@ -20,7 +20,13 @@ import org.apache.hadoop.fs.Path;
 import org.apache.sdap.mudrod.driver.ESDriver;
 import org.apache.sdap.mudrod.driver.SparkDriver;
 import org.apache.sdap.mudrod.main.MudrodConstants;
-import org.apache.sdap.mudrod.weblog.pre.*;
+import org.apache.sdap.mudrod.weblog.pre.ClickStreamGenerator;
+import org.apache.sdap.mudrod.weblog.pre.CrawlerDetection;
+import org.apache.sdap.mudrod.weblog.pre.HistoryGenerator;
+import org.apache.sdap.mudrod.weblog.pre.ImportLogFile;
+import org.apache.sdap.mudrod.weblog.pre.SessionGenerator;
+import org.apache.sdap.mudrod.weblog.pre.SessionStatistic;
+import org.apache.sdap.mudrod.weblog.pre.RemoveRawLog;
 import org.apache.sdap.mudrod.weblog.process.ClickStreamAnalyzer;
 import org.apache.sdap.mudrod.weblog.process.UserHistoryAnalyzer;
 import org.slf4j.Logger;
@@ -44,7 +50,7 @@ public class WeblogDiscoveryEngine extends 
DiscoveryEngineAbstract {
    */
   private static final long serialVersionUID = 1L;
   private static final Logger LOG = 
LoggerFactory.getLogger(WeblogDiscoveryEngine.class);
-  public String timeSuffix = null;
+  private String timeSuffix = null;
 
   public WeblogDiscoveryEngine(Properties props, ESDriver es, SparkDriver 
spark) {
     super(props, es, spark);
diff --git a/core/src/main/java/org/apache/sdap/mudrod/driver/ESDriver.java 
b/core/src/main/java/org/apache/sdap/mudrod/driver/ESDriver.java
index dc1b4c8..b761d3b 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/driver/ESDriver.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/driver/ESDriver.java
@@ -64,8 +64,15 @@ import java.time.Instant;
 import java.time.LocalDate;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Properties;
+import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -588,7 +595,6 @@ public class ESDriver implements Serializable {
   public int getDocCount(String[] index, String[] type, QueryBuilder 
filterSearch) {
     SearchRequestBuilder countSrBuilder = 
getClient().prepareSearch(index).setTypes(type).setQuery(filterSearch).setSize(0);
     SearchResponse countSr = countSrBuilder.execute().actionGet();
-    int docCount = (int) countSr.getHits().getTotalHits();
-    return docCount;
+    return (int) countSr.getHits().getTotalHits();
   }
 }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/integration/LinkageIntegration.java 
b/core/src/main/java/org/apache/sdap/mudrod/integration/LinkageIntegration.java
index a8cc723..21aa5ba 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/integration/LinkageIntegration.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/integration/LinkageIntegration.java
@@ -29,8 +29,15 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.text.DecimalFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.LinkedHashMap;
+import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Properties;
 import java.util.concurrent.ExecutionException;
 import java.util.stream.Collectors;
 
@@ -41,8 +48,8 @@ public class LinkageIntegration extends DiscoveryStepAbstract 
{
 
   private static final Logger LOG = 
LoggerFactory.getLogger(LinkageIntegration.class);
   private static final long serialVersionUID = 1L;
-  transient List<LinkedTerm> termList = new ArrayList<>();
-  DecimalFormat df = new DecimalFormat("#.00");
+  private transient List<LinkedTerm> termList = new ArrayList<>();
+  private DecimalFormat df = new DecimalFormat("#.00");
   private static final String INDEX_NAME = MudrodConstants.ES_INDEX_NAME;
   private static final String WEIGHT = "weight";
 
@@ -296,7 +303,6 @@ public class LinkageIntegration extends 
DiscoveryStepAbstract {
   /**
    * Method of converting hashmap to JSON
    *
-   * @param word        input query
    * @param wordweights a map from related terms to weights
    * @return converted JSON object
    */
diff --git a/core/src/main/java/org/apache/sdap/mudrod/main/MudrodEngine.java 
b/core/src/main/java/org/apache/sdap/mudrod/main/MudrodEngine.java
index 02cf1e6..0ecb43c 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/main/MudrodEngine.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/main/MudrodEngine.java
@@ -391,7 +391,7 @@ public class MudrodEngine {
       me.end();
     } catch (Exception e) {
       HelpFormatter formatter = new HelpFormatter();
-      formatter.printHelp("MudrodEngine: 'dataDir' argument is mandatory. " + 
"User must also provide an ingest method.", new Options());
+      formatter.printHelp("MudrodEngine: 'dataDir' argument is mandatory. User 
must also provide an ingest method.", new Options());
       LOG.error("Error whilst parsing command line.", e);
     }
   }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/metadata/pre/ApiHarvester.java 
b/core/src/main/java/org/apache/sdap/mudrod/metadata/pre/ApiHarvester.java
index f492ecf..48127ad 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/metadata/pre/ApiHarvester.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/metadata/pre/ApiHarvester.java
@@ -28,7 +28,14 @@ import org.elasticsearch.action.index.IndexRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.*;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.InputStream;
+
 import java.util.Properties;
 
 /**
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/metadata/pre/MatrixGenerator.java 
b/core/src/main/java/org/apache/sdap/mudrod/metadata/pre/MatrixGenerator.java
index a8d3d22..bdbd04d 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/metadata/pre/MatrixGenerator.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/metadata/pre/MatrixGenerator.java
@@ -74,7 +74,7 @@ public class MatrixGenerator extends DiscoveryStepAbstract {
       MatrixUtil.exportToCSV(wordDocMatrix.rowMatrix, wordDocMatrix.rowkeys, 
wordDocMatrix.colkeys, metadataMatrixFile);
 
     } catch (Exception e) {
-      LOG.error("Error during Metadata matrix generaion: {}", e);
+      LOG.error("Error during Metadata matrix generaion: ", e);
     }
 
     endTime = System.currentTimeMillis();
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/Metadata.java 
b/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/Metadata.java
index c420c94..59dc576 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/Metadata.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/Metadata.java
@@ -14,12 +14,7 @@
 package org.apache.sdap.mudrod.metadata.structure;
 
 import java.io.Serializable;
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ExecutionException;
-
-import org.apache.sdap.mudrod.driver.ESDriver;
 
 public abstract class Metadata implements Serializable  {
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/MetadataExtractor.java
 
b/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/MetadataExtractor.java
index 5f84206..dcec82a 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/MetadataExtractor.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/MetadataExtractor.java
@@ -29,7 +29,6 @@ import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.ExecutionException;
 
 public class MetadataExtractor implements Serializable {
 
@@ -67,7 +66,7 @@ public class MetadataExtractor implements Serializable {
    * @param type  metadata type name
    * @return metadata list
    */
-  protected List<Metadata> loadMetadataFromES(ESDriver es, String index, 
String type) {
+  private List<Metadata> loadMetadataFromES(ESDriver es, String index, String 
type) {
 
     List<Metadata> metadatas = new ArrayList<>();
     SearchResponse scrollResp = 
es.getClient().prepareSearch(index).setTypes(type).setQuery(QueryBuilders.matchAllQuery()).setScroll(new
 TimeValue(60000)).setSize(100).execute().actionGet();
@@ -97,7 +96,7 @@ public class MetadataExtractor implements Serializable {
    * @return PairRDD, in each pair key is metadata short name and value is term
    * list extracted from metadata variables.
    */
-  protected JavaPairRDD<String, List<String>> buildMetadataRDD(ESDriver es, 
JavaSparkContext sc, String index, List<Metadata> metadatas) {
+  private JavaPairRDD<String, List<String>> buildMetadataRDD(ESDriver es, 
JavaSparkContext sc, String index, List<Metadata> metadatas) {
     JavaRDD<Metadata> metadataRDD = sc.parallelize(metadatas);
     JavaPairRDD<String, List<String>> metadataTermsRDD = 
metadataRDD.mapToPair(new PairFunction<Metadata, String, List<String>>() {
       /**
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/PODAACMetadata.java
 
b/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/PODAACMetadata.java
index a0c91d1..8f614ca 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/PODAACMetadata.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/metadata/structure/PODAACMetadata.java
@@ -14,6 +14,8 @@
 package org.apache.sdap.mudrod.metadata.structure;
 
 import org.apache.sdap.mudrod.driver.ESDriver;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -24,113 +26,107 @@ import java.util.Map;
  */
 public class PODAACMetadata extends Metadata {
 
-       /**
-        *
-        */
-       private static final long serialVersionUID = 1L;
-       // shortname: data set short name
-       // private String shortname;
-       // abstractStr: data set abstract
-       private String abstractStr;
-       // isoTopic: data set topic
-       private String isoTopic;
-       // sensor: sensor
-       private String sensor;
-       // source: data source
-       private String source;
-       // project: data project
-       private String project;
-       // hasAbstarct: whether data set has abstract
-       boolean hasAbstarct;
-
-       // longnameList: data set long name list
-       private List<String> longnameList;
-       // keywordList:data set key word list
-       private List<String> keywordList;
-       // termList: data set term list
-       private List<String> termList;
-       // topicList: data set topic list
-       private List<String> topicList;
-       // variableList: data set variable list
-       private List<String> variableList;
-       // abstractList: data set abstract term list
-       private List<String> abstractList;
-       // isotopicList: data set iso topic list
-       private List<String> isotopicList;
-       // sensorList: data set sensor list
-       private List<String> sensorList;
-       // sourceList: data set source list
-       private List<String> sourceList;
-       // projectList: data set project list
-       private List<String> projectList;
-       // regionList: data set region list
-       private List<String> regionList;
-
-       public PODAACMetadata() {
-               // Default constructor
-       }
-
-       /**
-        * Creates a new instance of PODAACMetadata.
-        *
-        * @param shortname
-        *            data set short name
-        * @param longname
-        *            data set long name
-        * @param topics
-        *            data set topics
-        * @param terms
-        *            data set terms
-        * @param variables
-        *            data set variables
-        * @param keywords
-        *            data set keywords
-        * @param region
-        *            list of regions
-        */
-       public PODAACMetadata(String shortname, List<String> longname, 
List<String> topics, List<String> terms,
-                       List<String> variables, List<String> keywords, 
List<String> region) {
-               this.shortname = shortname;
-               this.longnameList = longname;
-               this.keywordList = keywords;
-               this.termList = terms;
-               this.topicList = topics;
-               this.variableList = variables;
-               this.regionList = region;
-       }
-
-       public PODAACMetadata(Map<String, Object> result, ESDriver es, String 
index) {
-
-               String shortname = (String) result.get("Dataset-ShortName");
-               List<String> topic = (List<String>) 
result.get("DatasetParameter-Topic");
-               List<String> term = (List<String>) 
result.get("DatasetParameter-Term");
-               List<String> keyword = (List<String>) 
result.get("Dataset-Metadata");
-               List<String> variable = (List<String>) 
result.get("DatasetParameter-Variable");
-               List<String> longname = (List<String>) 
result.get("DatasetProject-Project-LongName");
-               List<String> region = (List<String>) 
result.get("DatasetRegion-Region");
-
-               this.shortname = shortname;
-               this.longnameList = longname;
-               try {
-                       this.keywordList = es.customAnalyzing(index, keyword);
-                       this.termList = es.customAnalyzing(index, term);
-                       this.topicList = es.customAnalyzing(index, topic);
-                       this.variableList = es.customAnalyzing(index, variable);
-                       this.regionList = es.customAnalyzing(index, region);
-               } catch (Exception e) {
-                       e.printStackTrace();
-               }
-       }
-
-       /**
-        * setTerms: set term of data set
-        *
-        * @param termstr
-        *            data set terms
-        */
-       public void setTerms(String termstr) {
-               this.splitString(termstr, this.termList);
-       }
+  /**
+   *
+   */
+  private static final long serialVersionUID = 1L;
+  // shortname: data set short name
+  // private String shortname;
+  // abstractStr: data set abstract
+  private String abstractStr;
+  // isoTopic: data set topic
+  private String isoTopic;
+  // sensor: sensor
+  private String sensor;
+  // source: data source
+  private String source;
+  // project: data project
+  private String project;
+  // hasAbstarct: whether data set has abstract
+  boolean hasAbstarct;
+
+  // longnameList: data set long name list
+  private List<String> longnameList;
+  // keywordList:data set key word list
+  private List<String> keywordList;
+  // termList: data set term list
+  private List<String> termList;
+  // topicList: data set topic list
+  private List<String> topicList;
+  // variableList: data set variable list
+  private List<String> variableList;
+  // abstractList: data set abstract term list
+  private List<String> abstractList;
+  // isotopicList: data set iso topic list
+  private List<String> isotopicList;
+  // sensorList: data set sensor list
+  private List<String> sensorList;
+  // sourceList: data set source list
+  private List<String> sourceList;
+  // projectList: data set project list
+  private List<String> projectList;
+  // regionList: data set region list
+  private List<String> regionList;
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(PODAACMetadata.class);
+
+  public PODAACMetadata() {
+    // Default constructor
+  }
+
+  /**
+   * Creates a new instance of PODAACMetadata.
+   *
+   * @param shortname data set short name
+   * @param longname  data set long name
+   * @param topics    data set topics
+   * @param terms     data set terms
+   * @param variables data set variables
+   * @param keywords  data set keywords
+   * @param region    list of regions
+   */
+  public PODAACMetadata(String shortname, List<String> longname, List<String> 
topics, List<String> terms,
+                        List<String> variables, List<String> keywords, 
List<String> region) {
+    this.shortname = shortname;
+    this.longnameList = longname;
+    this.keywordList = keywords;
+    this.termList = terms;
+    this.topicList = topics;
+    this.variableList = variables;
+    this.regionList = region;
+  }
+
+  public PODAACMetadata(Map<String, Object> result, ESDriver es, String index) 
{
+
+    String shortname = (String) result.get("Dataset-ShortName");
+    List<String> topic = (List<String>) result.get("DatasetParameter-Topic");
+    List<String> term = (List<String>) result.get("DatasetParameter-Term");
+    List<String> keyword = (List<String>) result.get("Dataset-Metadata");
+    List<String> variable = (List<String>) 
result.get("DatasetParameter-Variable");
+    List<String> longname = (List<String>) 
result.get("DatasetProject-Project-LongName");
+    List<String> region = (List<String>) result.get("DatasetRegion-Region");
+
+    this.shortname = shortname;
+    this.longnameList = longname;
+    try {
+      this.keywordList = es.customAnalyzing(index, keyword);
+      this.termList = es.customAnalyzing(index, term);
+      this.topicList = es.customAnalyzing(index, topic);
+      this.variableList = es.customAnalyzing(index, variable);
+      this.regionList = es.customAnalyzing(index, region);
+    } catch (Exception e) {
+      LOG.error("Constructor initialization failed : ", e);
+    }
+  }
+
+  /**
+   * setTerms: set term of data set
+   *
+   * @param termstr data set terms
+   */
+  public void setTerms(String termstr) {
+    this.splitString(termstr, this.termList);
+  }
 
   /**
    * setKeywords: set key word of data set
diff --git a/core/src/main/java/org/apache/sdap/mudrod/ontology/Ontology.java 
b/core/src/main/java/org/apache/sdap/mudrod/ontology/Ontology.java
index 70116de..9b6f3c7 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ontology/Ontology.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ontology/Ontology.java
@@ -30,12 +30,12 @@ public interface Ontology {
    *
    * @param urls a {@link java.lang.String} containing ontology URIs.
    */
-  public void load(String[] urls);
+  void load(String[] urls);
 
   /**
    * Load a collection of default ontology resources.
    */
-  public void load() ;
+  void load() ;
 
   /**
    * merge relevant ontology subgraphs into a new subgraph which can
@@ -44,7 +44,7 @@ public interface Ontology {
    * @param o an ontology to merge with the current ontology held
    *          within Mudrod.
    */
-  public void merge(Ontology o);
+  void merge(Ontology o);
 
   /**
    * Retreive all subclasses for a particular entity provided within the
@@ -53,7 +53,7 @@ public interface Ontology {
    * @param entitySearchTerm an input search term
    * @return an {@link java.util.Iterator} object containing subClass entries.
    */
-  public Iterator<String> subclasses(String entitySearchTerm);
+  Iterator<String> subclasses(String entitySearchTerm);
 
   /**
    * Retreive all synonyms for a particular entity provided within the
@@ -62,6 +62,6 @@ public interface Ontology {
    * @param queryKeyPhrase a phrase to undertake synonym expansion on.
    * @return an {@link java.util.Iterator} object containing synonym entries.
    */
-  public Iterator<String> synonyms(String queryKeyPhrase);
+  Iterator<String> synonyms(String queryKeyPhrase);
 
 }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ontology/pre/AggregateTriples.java 
b/core/src/main/java/org/apache/sdap/mudrod/ontology/pre/AggregateTriples.java
index e32c0f7..f92d423 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/ontology/pre/AggregateTriples.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/ontology/pre/AggregateTriples.java
@@ -59,7 +59,7 @@ public class AggregateTriples extends DiscoveryStepAbstract {
     try {
       file.createNewFile();
     } catch (IOException e2) {
-      e2.printStackTrace();
+      LOG.error("File creation failed: ", e2);
     }
 
     try(FileWriter fw = new FileWriter(file.getAbsoluteFile())){
@@ -71,12 +71,9 @@ public class AggregateTriples extends DiscoveryStepAbstract {
           try {
             loadXml(fileIn.getAbsolutePath());
             getAllClass();
-          } catch (JDOMException e1) {
-            e1.printStackTrace();
-          } catch (IOException e1) {
-            e1.printStackTrace();
+          } catch (JDOMException | IOException e1) {
+            LOG.error("Couln't load Owl file into memory: ", e1);
           }
-  
         }
       }
     } catch (IOException e) {
@@ -91,11 +88,11 @@ public class AggregateTriples extends DiscoveryStepAbstract 
{
     return null;
   }
 
-  public Document document;
-  public Element rootNode = null;
-  final static String owl_namespace = "http://www.w3.org/2002/07/owl#";;
-  final static String rdf_namespace = 
"http://www.w3.org/1999/02/22-rdf-syntax-ns#";;
-  final static String rdfs_namespace = "http://www.w3.org/2000/01/rdf-schema#";;
+  private Document document;
+  private Element rootNode = null;
+  private final static String owl_namespace = "http://www.w3.org/2002/07/owl#";;
+  private final static String rdf_namespace = 
"http://www.w3.org/1999/02/22-rdf-syntax-ns#";;
+  private final static String rdfs_namespace = 
"http://www.w3.org/2000/01/rdf-schema#";;
 
   BufferedWriter bw = null;
 
@@ -106,7 +103,7 @@ public class AggregateTriples extends DiscoveryStepAbstract 
{
    * @throws JDOMException JDOMException
    * @throws IOException   IOException
    */
-  public void loadXml(String filePathName) throws JDOMException, IOException {
+  private void loadXml(String filePathName) throws JDOMException, IOException {
     SAXBuilder saxBuilder = new SAXBuilder();
     File file = new File(filePathName);
 
@@ -140,7 +137,7 @@ public class AggregateTriples extends DiscoveryStepAbstract 
{
    * @param ele parent element
    * @return the element of child
    */
-  public Element findChild(String str, Element ele) {
+  private Element findChild(String str, Element ele) {
     Iterator<?> processDescendants = ele.getDescendants(new ElementFilter());
     String name = "";
     Element result = null;
@@ -162,7 +159,7 @@ public class AggregateTriples extends DiscoveryStepAbstract 
{
    *
    * @throws IOException IOException
    */
-  public void getAllClass() throws IOException {
+  private void getAllClass() throws IOException {
     List<?> classElements = rootNode.getChildren("Class", 
Namespace.getNamespace("owl", owl_namespace));
 
     for (Object classElement1 : classElements) {
@@ -208,7 +205,7 @@ public class AggregateTriples extends DiscoveryStepAbstract 
{
    * @param str String needed to be processed
    * @return the processed string
    */
-  public String cutString(String str) {
+  private String cutString(String str) {
     str = str.substring(str.indexOf("#") + 1);
     String[] strArray = str.split("(?=[A-Z])");
     str = Arrays.toString(strArray);
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyLinkCal.java
 
b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyLinkCal.java
index 23fa348..1cf1376 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyLinkCal.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyLinkCal.java
@@ -43,7 +43,7 @@ public class OntologyLinkCal extends DiscoveryStepAbstract {
   /**
    * Method of adding mapping for triples extracted from SWEET
    */
-  public void addSWEETMapping() {
+  private void addSWEETMapping() {
     XContentBuilder Mapping;
     try {
       Mapping = 
jsonBuilder().startObject().startObject(MudrodConstants.ONTOLOGY_LINKAGE_TYPE).startObject("properties").startObject("concept_A").field("type",
 "string")
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyParser.java
 
b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyParser.java
index 6e2a5f2..f23bc70 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyParser.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OntologyParser.java
@@ -32,7 +32,7 @@ public interface OntologyParser {
    * implementation processing the ontology operation(s).
    * @param ontModel the {@link org.apache.jena.ontology.OntModel}
    */
-  public void parse(Ontology ont, OntModel ontModel);
+  void parse(Ontology ont, OntModel ontModel);
 
   /**
    * An ontology model (RDF graph) for which to obtain an
@@ -41,6 +41,6 @@ public interface OntologyParser {
    * @param ontModel the {@link org.apache.jena.ontology.OntModel}
    * @return an {@link java.util.Iterator} instance containing all root 
classes.
    */
-  public Iterator<OntClass> rootClasses(OntModel ontModel);
+  Iterator<OntClass> rootClasses(OntModel ontModel);
 
 }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OwlParser.java 
b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OwlParser.java
index 3f12cd6..0fffcd8 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OwlParser.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ontology/process/OwlParser.java
@@ -59,7 +59,7 @@ public class OwlParser implements OntologyParser {
     }
   }
 
-  protected void parseClass(OntClass cls, List<Object> occurs, int depth) {
+  private void parseClass(OntClass cls, List<Object> occurs, int depth) {
     //dont deal with anonymous classes
     if (cls.isAnon()) {
       return;
@@ -155,7 +155,7 @@ public class OwlParser implements OntologyParser {
     }
   }
 
-  public String rdfidToLabel(String idString) {
+  private String rdfidToLabel(String idString) {
     Pattern p = Pattern.compile("([a-z0-9])([A-Z])");
     Matcher m = p.matcher(idString);
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/ImportMetadata.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/ImportMetadata.java
index 15e6a03..f953974 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/ImportMetadata.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/ImportMetadata.java
@@ -26,7 +26,11 @@ import org.elasticsearch.action.index.IndexRequest;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.*;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.Properties;
 
 /**
@@ -61,7 +65,7 @@ public class ImportMetadata extends DiscoveryStepAbstract {
    * addMetadataMapping: Add mapping to index metadata in Elasticsearch. Please
    * invoke this method before import metadata to Elasticsearch.
    */
-  public void addMetadataMapping() {
+  private void addMetadataMapping() {
     String mappingJson = "{\r\n   \"dynamic_templates\": " + "[\r\n      " + 
"{\r\n         \"strings\": " + "{\r\n            \"match_mapping_type\": 
\"string\","
         + "\r\n            \"mapping\": {\r\n               \"type\": 
\"string\"," + "\r\n               \"analyzer\": \"csv\"\r\n            }" + 
"\r\n         }\r\n      }\r\n   ]\r\n}";
 
@@ -91,10 +95,10 @@ public class ImportMetadata extends DiscoveryStepAbstract {
 
           es.getBulkProcessor().add(ir);
         } catch (IOException e) {
-          e.printStackTrace();
+          LOG.error("Error reading File Content: ", e);
         }
       } catch (FileNotFoundException e) {
-        e.printStackTrace();
+        LOG.error("Error finding file: ", e);
       }
 
     }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/MetadataTFIDFGenerator.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/MetadataTFIDFGenerator.java
index 3486607..763eca6 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/MetadataTFIDFGenerator.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/MetadataTFIDFGenerator.java
@@ -70,7 +70,7 @@ public class MetadataTFIDFGenerator extends 
DiscoveryStepAbstract {
     return null;
   }
 
-  public LabeledRowMatrix generateWordBasedTFIDF() throws Exception {
+  private LabeledRowMatrix generateWordBasedTFIDF() throws Exception {
 
     MetadataTokenizer opt = new MetadataTokenizer(props);
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/NormalizeFeatures.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/NormalizeFeatures.java
index 458ccbb..741cd8a 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/NormalizeFeatures.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/NormalizeFeatures.java
@@ -11,10 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/**
- * This package includes the preprocessing, processing, and data structure used
- * by recommendation module.
- */
+
 package org.apache.sdap.mudrod.recommendation.pre;
 
 import org.apache.sdap.mudrod.discoveryengine.DiscoveryStepAbstract;
@@ -35,7 +32,6 @@ import org.slf4j.LoggerFactory;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Properties;
-import java.util.regex.Pattern;
 
 public class NormalizeFeatures extends DiscoveryStepAbstract {
 
@@ -80,7 +76,7 @@ public class NormalizeFeatures extends DiscoveryStepAbstract {
     return null;
   }
 
-  public void normalizeMetadataVariables(ESDriver es) {
+  private void normalizeMetadataVariables(ESDriver es) {
 
     es.createBulkProcessor();
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/SessionCooccurence.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/SessionCooccurence.java
index 4a5d4bb..61492ca 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/SessionCooccurence.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/pre/SessionCooccurence.java
@@ -30,7 +30,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import scala.Tuple2;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 /**
  * ClassName: SessionCooccurenceMatrix Function: Generate metadata session
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/AbstractBasedSimilarity.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/AbstractBasedSimilarity.java
index f2de90a..94b68fd 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/AbstractBasedSimilarity.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/AbstractBasedSimilarity.java
@@ -57,7 +57,7 @@ public class AbstractBasedSimilarity extends 
DiscoveryStepAbstract {
       svd.saveToES(tripleList, 
props.getProperty(MudrodConstants.ES_INDEX_NAME), 
MudrodConstants.METADATA_WORD_SIM_TYPE, true, true);
 
     } catch (Exception e) {
-      e.printStackTrace();
+      LOG.error("Abstract similarity calculation failed: ", e);
     }
 
     endTime = System.currentTimeMillis();
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/FeatureBasedSimilarity.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/FeatureBasedSimilarity.java
index 3a18795..4b2bfeb 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/FeatureBasedSimilarity.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/FeatureBasedSimilarity.java
@@ -11,10 +11,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/**
- * This package includes the preprocessing, processing, and data structure used
- * by recommendation module.
- */
 package org.apache.sdap.mudrod.recommendation.process;
 
 import org.apache.sdap.mudrod.discoveryengine.DiscoveryStepAbstract;
@@ -104,7 +100,7 @@ public class FeatureBasedSimilarity extends 
DiscoveryStepAbstract implements Ser
     return null;
   }
 
-  public void featureSimilarity(ESDriver es) {
+  private void featureSimilarity(ESDriver es) {
 
     es.createBulkProcessor();
 
@@ -156,7 +152,7 @@ public class FeatureBasedSimilarity extends 
DiscoveryStepAbstract implements Ser
     es.destroyBulkProcessor();
   }
 
-  public static void addMapping(ESDriver es, String index, String type) {
+  private static void addMapping(ESDriver es, String index, String type) {
     XContentBuilder Mapping;
     try {
       Mapping = 
jsonBuilder().startObject().startObject(type).startObject("properties").startObject("concept_A").field("type",
 "string").field("index", "not_analyzed").endObject()
@@ -170,7 +166,7 @@ public class FeatureBasedSimilarity extends 
DiscoveryStepAbstract implements Ser
     }
   }
 
-  public void normalizeVariableWeight(ESDriver es) {
+  private void normalizeVariableWeight(ESDriver es) {
 
     es.createBulkProcessor();
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/SessionBasedCF.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/SessionBasedCF.java
index e58e6d5..32db2ba 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/SessionBasedCF.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/process/SessionBasedCF.java
@@ -50,7 +50,7 @@ public class SessionBasedCF extends DiscoveryStepAbstract {
 
   @Override
   public Object execute() {
-    LOG.info("Session based metadata similarity starts.");
+    LOG.info("Session based metadata similarity calculation starts.");
     startTime = System.currentTimeMillis();
 
     try {
@@ -63,11 +63,11 @@ public class SessionBasedCF extends DiscoveryStepAbstract {
       }
 
     } catch (Exception e) {
-      e.printStackTrace();
+      LOG.error("Session based metadata similarity calculation failed: ", e);
     }
 
     endTime = System.currentTimeMillis();
-    LOG.info("Session based metadata similarity ends. Took {}s", (endTime - 
startTime) / 1000);
+    LOG.info("Session based metadata similarity calculation ends. Took {}s", 
(endTime - startTime) / 1000);
 
     return null;
   }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/HybridRecommendation.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/HybridRecommendation.java
index 2b29c03..6d915e5 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/HybridRecommendation.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/HybridRecommendation.java
@@ -42,11 +42,11 @@ public class HybridRecommendation extends 
DiscoveryStepAbstract {
    */
   private static final long serialVersionUID = 1L;
   // recommended metadata list
-  protected transient List<LinkedTerm> termList = new ArrayList<>();
+  private transient List<LinkedTerm> termList = new ArrayList<>();
   // format decimal
-  DecimalFormat df = new DecimalFormat("#.00");
+  private DecimalFormat df = new DecimalFormat("#.00");
   // index name
-  protected static final String INDEX_NAME = MudrodConstants.ES_INDEX_NAME;
+  private static final String INDEX_NAME = MudrodConstants.ES_INDEX_NAME;
   private static final String WEIGHT = "weight";
 
   /**
@@ -145,7 +145,7 @@ public class HybridRecommendation extends 
DiscoveryStepAbstract {
    * @param num         the number of converted elements
    * @return converted JSON object
    */
-  protected JsonElement mapToJson(Map<String, Double> wordweights, int num) {
+  private JsonElement mapToJson(Map<String, Double> wordweights, int num) {
     Gson gson = new Gson();
 
     List<JsonObject> nodes = new ArrayList<>();
@@ -164,9 +164,7 @@ public class HybridRecommendation extends 
DiscoveryStepAbstract {
     }
 
     String nodesJson = gson.toJson(nodes);
-    JsonElement nodesElement = gson.fromJson(nodesJson, JsonElement.class);
-
-    return nodesElement;
+    return gson.fromJson(nodesJson, JsonElement.class);
   }
 
   /**
@@ -178,7 +176,7 @@ public class HybridRecommendation extends 
DiscoveryStepAbstract {
    * @return recommended dataset map, key is dataset name, value is similarity
    * value
    */
-  public Map<String, Double> getRelatedData(String type, String input, int 
num) {
+  private Map<String, Double> getRelatedData(String type, String input, int 
num) {
     termList = new ArrayList<>();
     Map<String, Double> termsMap = new HashMap<>();
     Map<String, Double> sortedMap = new HashMap<>();
@@ -204,7 +202,7 @@ public class HybridRecommendation extends 
DiscoveryStepAbstract {
    * @param num   the number of recommended dataset
    * @return recommended dataset list
    */
-  public List<LinkedTerm> getRelatedDataFromES(String type, String input, int 
num) {
+  private List<LinkedTerm> getRelatedDataFromES(String type, String input, int 
num) {
 
     SearchRequestBuilder builder = 
es.getClient().prepareSearch(props.getProperty(INDEX_NAME)).setTypes(type).setQuery(QueryBuilders.termQuery("concept_A",
 input)).addSort(WEIGHT, SortOrder.DESC)
         .setSize(num);
@@ -230,7 +228,7 @@ public class HybridRecommendation extends 
DiscoveryStepAbstract {
    * @param passedMap input map
    * @return sorted map
    */
-  public Map<String, Double> sortMapByValue(Map<String, Double> passedMap) {
+  private Map<String, Double> sortMapByValue(Map<String, Double> passedMap) {
     List<String> mapKeys = new ArrayList<>(passedMap.keySet());
     List<Double> mapValues = new ArrayList<>(passedMap.values());
     Collections.sort(mapValues, Collections.reverseOrder());
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/MetadataFeature.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/MetadataFeature.java
index ca5b6d4..0dfffcf 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/MetadataFeature.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/MetadataFeature.java
@@ -11,10 +11,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/**
- * This package includes the preprocessing, processing, and data structure used
- * by recommendation module.
- */
 package org.apache.sdap.mudrod.recommendation.structure;
 
 import org.elasticsearch.common.xcontent.XContentBuilder;
@@ -25,6 +21,8 @@ import java.util.Map;
 
 public abstract class MetadataFeature implements Serializable {
 
+  private static final long serialVersionUID = 1L;
+
   protected static final Integer VAR_SPATIAL = 1;
   protected static final Integer VAR_TEMPORAL = 2;
   protected static final Integer VAR_CATEGORICAL = 3;
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/MetadataTokenizer.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/MetadataTokenizer.java
index b56c25d..0f6e1b7 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/MetadataTokenizer.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/MetadataTokenizer.java
@@ -11,10 +11,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/**
- * This package includes the preprocessing, processing, and data structure used
- * by recommendation module.
- */
 package org.apache.sdap.mudrod.recommendation.structure;
 
 import org.apache.sdap.mudrod.driver.ESDriver;
@@ -45,8 +41,8 @@ public class MetadataTokenizer implements Serializable {
   private String metadataType;
   private List<String> variables;
 
-  public static final String SPLIT_BLANK = " ";
-  public static final String SPLIT_COMMA = ",";
+  private static final String SPLIT_BLANK = " ";
+  private static final String SPLIT_COMMA = ",";
 
   public MetadataTokenizer(Properties props) {
     indexName = props.getProperty(MudrodConstants.ES_INDEX_NAME);
@@ -103,7 +99,7 @@ public class MetadataTokenizer implements Serializable {
 
   }
 
-  public List<String> getTokens(String str, String splitter) throws Exception {
+  private List<String> getTokens(String str, String splitter) throws Exception 
{
     String[] tokens = null;
     if (splitter.equals(SPLIT_BLANK)) {
       tokens = str.split(" ");
@@ -113,7 +109,7 @@ public class MetadataTokenizer implements Serializable {
     return java.util.Arrays.asList(tokens);
   }
 
-  public List<Tuple2<String, String>> loadMetadataFromES(ESDriver es, 
List<String> variables, String metadataName) throws Exception {
+  private List<Tuple2<String, String>> loadMetadataFromES(ESDriver es, 
List<String> variables, String metadataName) throws Exception {
 
     SearchResponse scrollResp = 
es.getClient().prepareSearch(indexName).setTypes(metadataType).setQuery(QueryBuilders.matchAllQuery()).setScroll(new
 TimeValue(60000)).setSize(100).execute()
         .actionGet();
@@ -154,9 +150,7 @@ public class MetadataTokenizer implements Serializable {
 
     RowMatrix docwordMatrix = labelMatrix.rowMatrix;
 
-    RowMatrix docwordTFIDFMatrix = MatrixUtil.createTFIDFMatrix(docwordMatrix);
-
-    labelMatrix.rowMatrix = docwordTFIDFMatrix;
+    labelMatrix.rowMatrix = MatrixUtil.createTFIDFMatrix(docwordMatrix);
 
     return labelMatrix;
   }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/PODAACMetadataFeature.java
 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/PODAACMetadataFeature.java
index d2b4e28..541c166 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/PODAACMetadataFeature.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/recommendation/structure/PODAACMetadataFeature.java
@@ -11,13 +11,11 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-/**
- * This package includes the preprocessing, processing, and data structure used
- * by recommendation module.
- */
 package org.apache.sdap.mudrod.recommendation.structure;
 
 import org.elasticsearch.common.xcontent.XContentBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.regex.Pattern;
@@ -27,6 +25,8 @@ import java.util.Map;
 
 public class PODAACMetadataFeature extends MetadataFeature {
 
+  private static final Logger LOG = 
LoggerFactory.getLogger(PODAACMetadataFeature.class);
+
   public void normalizeSpatialVariables(Map<String, Object> metadata, 
Map<String, Object> updatedValues) {
 
     // get spatial resolution
@@ -121,7 +121,7 @@ public class PODAACMetadataFeature extends MetadataFeature {
       return 0;
   }
 
-  public Double getProLevelNum(String pro) {
+  private Double getProLevelNum(String pro) {
     if (pro == null) {
       return 1.0;
     }
@@ -236,7 +236,7 @@ public class PODAACMetadataFeature extends MetadataFeature {
       contentBuilder.field("Spatial_Covergae_Sim", similarity);
     } catch (IOException e) {
       // TODO Auto-generated catch block
-      e.printStackTrace();
+      LOG.error("Spatial similarity calculation failed : ", e);
     }
   }
 
@@ -280,7 +280,7 @@ public class PODAACMetadataFeature extends MetadataFeature {
       contentBuilder.field("Temporal_Covergae_Sim", similarity);
     } catch (IOException e) {
       // TODO Auto-generated catch block
-      e.printStackTrace();
+      LOG.error("Temporal similarity calculation failed : ", e);
     }
   }
 
@@ -319,7 +319,7 @@ public class PODAACMetadataFeature extends MetadataFeature {
         contentBuilder.field(variable + "_Sim", similarity);
       } catch (IOException e) {
         // TODO Auto-generated catch block
-        e.printStackTrace();
+        LOG.error("Categorical variables similarity calculation failed : ", e);
       }
     }
   }
@@ -352,7 +352,7 @@ public class PODAACMetadataFeature extends MetadataFeature {
         contentBuilder.field(variable + "_Sim", similarity);
       } catch (IOException e) {
         // TODO Auto-generated catch block
-        e.printStackTrace();
+        LOG.error("Ordinal similarity calculation failed : ", e);
       }
     }
   }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/semantics/SemanticAnalyzer.java 
b/core/src/main/java/org/apache/sdap/mudrod/semantics/SemanticAnalyzer.java
index a4ecdc8..fb32303 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/semantics/SemanticAnalyzer.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/semantics/SemanticAnalyzer.java
@@ -23,6 +23,8 @@ import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.mllib.linalg.Vector;
 import org.apache.spark.mllib.linalg.distributed.CoordinateMatrix;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.File;
 import java.io.IOException;
@@ -38,6 +40,7 @@ public class SemanticAnalyzer extends MudrodAbstract {
    *
    */
   private static final long serialVersionUID = 1L;
+  private static final Logger LOG = 
LoggerFactory.getLogger(SemanticAnalyzer.class);
 
   /**
    * Creates a new instance of SemanticAnalyzer.
@@ -119,7 +122,7 @@ public class SemanticAnalyzer extends MudrodAbstract {
     try {
       LinkageTriple.insertTriples(es, tripleList, index, type);
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Saving to Elastic Search failed : ", e);
     }
   }
 
@@ -141,8 +144,7 @@ public class SemanticAnalyzer extends MudrodAbstract {
     try {
       LinkageTriple.insertTriples(es, tripleList, index, type, bTriple, 
bSymmetry);
     } catch (IOException e) {
-      e.printStackTrace();
-
+      LOG.error("Saving to Elastic Search failed : ", e);
     }
   }
 }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ClickStreamImporter.java 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ClickStreamImporter.java
index 546fae5..5694236 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ClickStreamImporter.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ClickStreamImporter.java
@@ -19,9 +19,10 @@ import org.apache.sdap.mudrod.driver.SparkDriver;
 import org.apache.sdap.mudrod.main.MudrodConstants;
 import org.elasticsearch.action.index.IndexRequest;
 import org.elasticsearch.common.xcontent.XContentBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.BufferedReader;
-import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.IOException;
 import java.util.Properties;
@@ -37,6 +38,7 @@ public class ClickStreamImporter extends MudrodAbstract {
    *
    */
   private static final long serialVersionUID = 1L;
+  private static final Logger LOG = 
LoggerFactory.getLogger(ClickStreamImporter.class);
 
   public ClickStreamImporter(Properties props, ESDriver es, SparkDriver spark) 
{
     super(props, es, spark);
@@ -65,7 +67,7 @@ public class ClickStreamImporter extends MudrodAbstract {
                       clickStreamMatrixType).setSource(
                               mapping).execute().actionGet();
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Add Elasticsearch mapping for click stream data failed : ", 
e);
     }
   }
 
@@ -97,17 +99,15 @@ public class ClickStreamImporter extends MudrodAbstract {
           }
         }
       }
-    } catch (FileNotFoundException e) {
-      e.printStackTrace();
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Import click stream CSV into Elasticsearch failed : ", e);
     } finally {
       if (br != null) {
         try {
           br.close();
           es.destroyBulkProcessor();
         } catch (IOException e) {
-          e.printStackTrace();
+          //Ignore
         }
       }
     }
diff --git a/core/src/main/java/org/apache/sdap/mudrod/ssearch/Ranker.java 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/Ranker.java
index af7e6a9..9215859 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ssearch/Ranker.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ssearch/Ranker.java
@@ -24,7 +24,11 @@ import org.apache.spark.mllib.regression.LabeledPoint;
 
 import java.io.Serializable;
 import java.text.DecimalFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Properties;
 
 /**
  * Supports the ability to calculating ranking score
diff --git a/core/src/main/java/org/apache/sdap/mudrod/ssearch/Searcher.java 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/Searcher.java
index ce0183a..adec951 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ssearch/Searcher.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ssearch/Searcher.java
@@ -32,7 +32,11 @@ import org.elasticsearch.search.sort.SortOrder;
 import java.io.Serializable;
 import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 import java.util.regex.Pattern;
 
 /**
@@ -56,7 +60,7 @@ public class Searcher extends MudrodAbstract implements 
Serializable {
    * @param pro processing level string
    * @return processing level number
    */
-  public Double getProLevelNum(String pro) {
+  private Double getProLevelNum(String pro) {
     if (pro == null) {
       return 1.0;
     }
@@ -73,7 +77,7 @@ public class Searcher extends MudrodAbstract implements 
Serializable {
     return proNum;
   }
 
-  public Double getPop(Double pop) {
+  private Double getPop(Double pop) {
     if (pop > 1000) {
       pop = 1000.0;
     }
@@ -91,7 +95,7 @@ public class Searcher extends MudrodAbstract implements 
Serializable {
    * @return a list of search result
    */
   @SuppressWarnings("unchecked")
-  public List<SResult> searchByQuery(String index, String type, String query, 
String queryOperator, String rankOption) {
+  private List<SResult> searchByQuery(String index, String type, String query, 
String queryOperator, String rankOption) {
     boolean exists = es.getClient()
             .admin()
             .indices()
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/DataGenerator.java 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/DataGenerator.java
index ed69b6b..30abde5 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/DataGenerator.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/DataGenerator.java
@@ -15,8 +15,14 @@ package org.apache.sdap.mudrod.ssearch.ranking;
 
 import au.com.bytecode.opencsv.CSVReader;
 import au.com.bytecode.opencsv.CSVWriter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
-import java.io.*;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -37,7 +43,8 @@ public class DataGenerator {
   private static List<List<String>> myMasterList = new ArrayList<>();
 
   // HashMap used for comparing evaluation classes
-  public static final Map<String, Integer> map1 = new HashMap<>();
+  private static final Map<String, Integer> map1 = new HashMap<>();
+  private static final Logger LOG = 
LoggerFactory.getLogger(DataGenerator.class);
 
   static {
     map1.put("Excellent", 7);
@@ -78,7 +85,7 @@ public class DataGenerator {
    * Parses the original user-specified CSV file, storing the contents for 
future calculations
    * and formatting.
    */
-  public static void parseFile() {
+  private static void parseFile() {
     String[][] dataArr = null;
     try {
       String sourceDir = mySourceDir;
@@ -118,10 +125,8 @@ public class DataGenerator {
           }
         }
       }
-    } catch (FileNotFoundException e) {
-      e.printStackTrace();
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("User specified CSV file parse failed : ", e);
     }
   }
 
@@ -131,7 +136,7 @@ public class DataGenerator {
    *
    * @param arr the parsed contents of the original CSV file
    */
-  public static void calculateVec(String[][] arr) {
+  private static void calculateVec(String[][] arr) {
     List<List<String>> listofLists = new ArrayList<>(); // Holds calculations 
 
     int rowStart = 1;
@@ -182,7 +187,7 @@ public class DataGenerator {
    * @return 1 if first evaluation is greater than the second, -1 if first 
evaluation is less than the second, and
    * 10 in the case that the two are equal
    */
-  public static int compareEvaluation(String eval1, String eval2) {
+  private static int compareEvaluation(String eval1, String eval2) {
     int evalNum1 = map1.get(eval1);
     int evalNum2 = map1.get(eval2);
 
@@ -203,7 +208,7 @@ public class DataGenerator {
    * @param rawList originally calculated data from the input CSV file
    * @return data that has an equal distribution of evaluation values
    */
-  public static List<List<String>> equalizeList(List<List<String>> rawList) {
+  private static List<List<String>> equalizeList(List<List<String>> rawList) {
     // Create two sets - one containing row index for +1 and the other for -1
     List<Integer> pos1List = new ArrayList<>();
     List<Integer> neg1List = new ArrayList<>();
@@ -269,7 +274,7 @@ public class DataGenerator {
    *
    * @param arr 2D array containing the parsed information from input file
    */
-  public static void storeHead(String[][] arr) {
+  private static void storeHead(String[][] arr) {
     myHeader = new String[arr[0].length]; // Reside private variable
 
     System.arraycopy(arr[0], 0, myHeader, 0, arr[0].length);
@@ -280,7 +285,7 @@ public class DataGenerator {
    *
    * @param list finalized vector data to write to user specified output file
    */
-  public static void writeCSVfile(List<List<String>> list) {
+  private static void writeCSVfile(List<List<String>> list) {
     String outputFile = myResultDir;
     boolean alreadyExists = new File(outputFile).exists();
 
@@ -299,7 +304,7 @@ public class DataGenerator {
 
       csvOutput.close(); // Close csvWriter
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Writing to CSV file failed : ", e);
     }
   }
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/Learner.java 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/Learner.java
index 8a752a3..0e5ffbc 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/Learner.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/Learner.java
@@ -28,13 +28,12 @@ public class Learner implements Serializable {
    *
    */
   private static final long serialVersionUID = 1L;
-  SVMModel model = null;
-  transient SparkContext sc = null;
+  private SVMModel model = null;
+  private transient SparkContext sc = null;
 
   /**
    * Constructor to load in spark SVM classifier
    *
-   * @param classifierName classifier type
    * @param skd            an instance of spark driver
    * @param svmSgdModel    path to a trained model
    */
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/SparkFormatter.java 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/SparkFormatter.java
index 8c7fa7f..0db16f4 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/SparkFormatter.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/SparkFormatter.java
@@ -1,10 +1,33 @@
+/*
+ * Licensed 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.sdap.mudrod.ssearch.ranking;
 
-import java.io.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.IOException;
 import java.text.DecimalFormat;
 
 public class SparkFormatter {
-  DecimalFormat NDForm = new DecimalFormat("#.###");
+
+  private DecimalFormat NDForm = new DecimalFormat("#.###");
+  private static final Logger LOG = 
LoggerFactory.getLogger(SparkFormatter.class);
 
   public SparkFormatter() {
   }
@@ -17,9 +40,9 @@ public class SparkFormatter {
     try {
       file.createNewFile();
 
-      try (FileWriter fw = new FileWriter(outputTXTFileName); 
-          BufferedWriter bw = new BufferedWriter(fw);
-          BufferedReader br = new BufferedReader(new 
FileReader(inputCSVFileName));) {
+      try (FileWriter fw = new FileWriter(outputTXTFileName);
+           BufferedWriter bw = new BufferedWriter(fw);
+           BufferedReader br = new BufferedReader(new 
FileReader(inputCSVFileName));) {
 
         String line = null;
         line = br.readLine(); //header
@@ -41,7 +64,7 @@ public class SparkFormatter {
         }
       }
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Writing to output text file failed : ", e);
     }
   }
 }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/TrainingImporter.java
 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/TrainingImporter.java
index 12fdecb..ebe4628 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/TrainingImporter.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/ranking/TrainingImporter.java
@@ -47,7 +47,7 @@ public class TrainingImporter extends MudrodAbstract {
   /**
    * Method of adding mapping to traning set type
    */
-  public void addMapping() {
+  private void addMapping() {
     XContentBuilder Mapping;
     try {
       Mapping = 
jsonBuilder().startObject().startObject("trainingranking").startObject("properties").startObject("query").field("type",
 "string").field("index", "not_analyzed").endObject()
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/ssearch/structure/SResult.java 
b/core/src/main/java/org/apache/sdap/mudrod/ssearch/structure/SResult.java
index 81de2b4..8f7a904 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/ssearch/structure/SResult.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/ssearch/structure/SResult.java
@@ -21,11 +21,11 @@ import java.lang.reflect.Field;
 public class SResult {
   public static final String rlist[] = { "term_score", "releaseDate_score", 
/*"versionNum_score",*/
       "processingL_score", "allPop_score", "monthPop_score", 
"userPop_score"/*, "termAndv_score"*/ };
-  String shortName = null;
-  String longName = null;
-  String topic = null;
-  String description = null;
-  String relase_date = null;
+  private String shortName = null;
+  private String longName = null;
+  private String topic = null;
+  private String description = null;
+  private String relase_date = null;
 
   public Double final_score = 0.0;
   public Double term_score = 0.0;
diff --git a/core/src/main/java/org/apache/sdap/mudrod/tools/EONETIngester.java 
b/core/src/main/java/org/apache/sdap/mudrod/tools/EONETIngester.java
index f3d36b3..4ec5698 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/tools/EONETIngester.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/tools/EONETIngester.java
@@ -50,7 +50,6 @@ import com.google.gson.JsonParser;
  * Entry point providing ingestion logic of <a 
href="https://eonet.sci.gsfc.nasa.gov/";>
  * Earth Observatory Natural Event Tracker (EONET)</a> data into
  * the SDAP search server.
- * @param <E>
  */
 public class EONETIngester extends MudrodAbstract {
 
@@ -134,7 +133,7 @@ public class EONETIngester extends MudrodAbstract {
       try {
         updateResponse = esDriver.getClient().update(updateRequest).get();
       } catch (InterruptedException | ExecutionException e) {
-        e.printStackTrace();
+        LOG.error("Failed to execute bulk Index request : ", e);
       }
       if (updateResponse != null) {
         result = updateResponse.getGetResult();
@@ -162,7 +161,7 @@ public class EONETIngester extends MudrodAbstract {
                 .field("geometries", event.get("geometries").getAsJsonArray())
                 .endObject();
       } catch (IOException e) {
-        e.printStackTrace();
+        LOG.error("Failed to create event mapping : ", e);
       }
     } else {
       try {
@@ -177,7 +176,7 @@ public class EONETIngester extends MudrodAbstract {
                 .field("geometries", event.get("geometries").getAsJsonArray())
                 .endObject();
       } catch (IOException e) {
-        e.printStackTrace();
+        LOG.error("Failed to create event mapping : ", e);
       }
     }
     return eventMapping;
@@ -200,7 +199,7 @@ public class EONETIngester extends MudrodAbstract {
           eventArray.add(jsonElement);
         }
       } catch (IOException e) {
-        e.printStackTrace();
+        LOG.error("Failed to execute HTTP GET " + request.toString() + " : ", 
e);
       }
     }
     return eventArray;
diff --git a/core/src/main/java/org/apache/sdap/mudrod/utils/HttpRequest.java 
b/core/src/main/java/org/apache/sdap/mudrod/utils/HttpRequest.java
index 6b623f6..ed596f6 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/utils/HttpRequest.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/utils/HttpRequest.java
@@ -54,7 +54,7 @@ public class HttpRequest {
       }
     } catch (Exception e) {
       line = "{\"exception\":\"No service was found\"}";
-      LOG.error(line);
+      LOG.error(line, e);
     }
     return line;
   }
diff --git a/core/src/main/java/org/apache/sdap/mudrod/utils/LinkageTriple.java 
b/core/src/main/java/org/apache/sdap/mudrod/utils/LinkageTriple.java
index 1ebae17..9f50c98 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/utils/LinkageTriple.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/utils/LinkageTriple.java
@@ -25,6 +25,8 @@ import org.elasticsearch.search.SearchHit;
 import org.elasticsearch.search.aggregations.AggregationBuilders;
 import org.elasticsearch.search.aggregations.bucket.terms.Terms;
 import org.elasticsearch.search.sort.SortOrder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.io.Serializable;
@@ -54,7 +56,9 @@ public class LinkageTriple implements Serializable {
   // keyB: TermB
   public String keyB;
   // df: Format number
-  public static DecimalFormat df = new DecimalFormat("#.00");
+  private static DecimalFormat df = new DecimalFormat("#.00");
+
+  private static final Logger LOG = 
LoggerFactory.getLogger(LinkageTriple.class);
 
   public LinkageTriple() {
   }
@@ -133,7 +137,7 @@ public class LinkageTriple implements Serializable {
 
       
es.getClient().admin().indices().preparePutMapping(index).setType(type).setSource(mapping).execute().actionGet();
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Failed to add mapping : ", e);
     }
   }
 
diff --git a/core/src/main/java/org/apache/sdap/mudrod/utils/MatrixUtil.java 
b/core/src/main/java/org/apache/sdap/mudrod/utils/MatrixUtil.java
index ec27a29..e058abe 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/utils/MatrixUtil.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/utils/MatrixUtil.java
@@ -18,13 +18,23 @@ import org.apache.spark.api.java.JavaPairRDD;
 import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.api.java.JavaSparkContext;
 import org.apache.spark.api.java.Optional;
-import org.apache.spark.api.java.function.*;
+import org.apache.spark.api.java.function.Function;
+import org.apache.spark.api.java.function.Function2;
+import org.apache.spark.api.java.function.FlatMapFunction;
+import org.apache.spark.api.java.function.PairFlatMapFunction;
+import org.apache.spark.api.java.function.PairFunction;
 import org.apache.spark.mllib.feature.IDF;
 import org.apache.spark.mllib.feature.IDFModel;
-import org.apache.spark.mllib.linalg.*;
+import org.apache.spark.mllib.linalg.Matrices;
+import org.apache.spark.mllib.linalg.Matrix;
+import org.apache.spark.mllib.linalg.SingularValueDecomposition;
+import org.apache.spark.mllib.linalg.Vector;
+import org.apache.spark.mllib.linalg.Vectors;
 import org.apache.spark.mllib.linalg.distributed.IndexedRow;
 import org.apache.spark.mllib.linalg.distributed.IndexedRowMatrix;
 import org.apache.spark.mllib.linalg.distributed.RowMatrix;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import scala.Tuple2;
 
 import java.io.BufferedWriter;
@@ -42,6 +52,8 @@ import java.util.stream.Stream;
  */
 public class MatrixUtil {
 
+  private static final Logger LOG = LoggerFactory.getLogger(MatrixUtil.class);
+
   private MatrixUtil() {
   }
 
@@ -458,7 +470,7 @@ public class MatrixUtil {
     try {
       file.createNewFile();
     } catch (IOException e1) {
-      e1.printStackTrace();
+      LOG.error("Failed to create file : ", e1);
     }
     try (FileWriter fw = new FileWriter(file.getAbsoluteFile());
             BufferedWriter bw = new BufferedWriter(fw);){
@@ -479,7 +491,7 @@ public class MatrixUtil {
         bw.write(row + "\n");
       }
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Failed to write to the file : ", e);
     }
   }
 }
diff --git a/core/src/main/java/org/apache/sdap/mudrod/utils/SVDUtil.java 
b/core/src/main/java/org/apache/sdap/mudrod/utils/SVDUtil.java
index 1cd4e00..2b07504 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/utils/SVDUtil.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/utils/SVDUtil.java
@@ -21,6 +21,8 @@ import org.apache.spark.api.java.JavaRDD;
 import org.apache.spark.mllib.linalg.Vector;
 import org.apache.spark.mllib.linalg.distributed.CoordinateMatrix;
 import org.apache.spark.mllib.linalg.distributed.RowMatrix;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.List;
@@ -36,12 +38,14 @@ public class SVDUtil extends MudrodAbstract {
    */
   private static final long serialVersionUID = 1L;
   // wordRDD: terms extracted from all documents
-  JavaRDD<String> wordRDD;
+  private JavaRDD<String> wordRDD;
   // svdMatrix: svd matrix
   private RowMatrix svdMatrix;
   // simMatrix: similarity matrix
   private CoordinateMatrix simMatrix;
 
+  private static final Logger LOG = LoggerFactory.getLogger(SVDUtil.class);
+
   /**
    * Creates a new instance of SVDUtil.
    *
@@ -111,7 +115,7 @@ public class SVDUtil extends MudrodAbstract {
     try {
       LinkageTriple.insertTriples(es, triples, index, type);
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Linkage triples insert to elasticsearch failed : ", e);
     }
   }
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/utils/SimilarityUtil.java 
b/core/src/main/java/org/apache/sdap/mudrod/utils/SimilarityUtil.java
index 71179dc..7591e83 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/utils/SimilarityUtil.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/utils/SimilarityUtil.java
@@ -38,7 +38,7 @@ public class SimilarityUtil {
   /**
    * CalSimilarityFromMatrix: Calculate term similarity from matrix.
    *
-   * @param svdMatrix. Each row is corresponding to a term, and each column is
+   * @param svdMatrix Each row is corresponding to a term, and each column is
    *                   corresponding to a dimension of feature
    * @return CoordinateMatrix, each row is corresponding to a term, and each
    * column is also a term, the cell value is the similarity between the
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/KGreedyPartitionSolver.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/KGreedyPartitionSolver.java
index 1e25cec..2980307 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/KGreedyPartitionSolver.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/KGreedyPartitionSolver.java
@@ -1,10 +1,29 @@
+/*
+ * Licensed 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.sdap.mudrod.weblog.partition;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
 
 public class KGreedyPartitionSolver implements ThePartitionProblemSolver {
 
-  public boolean bsorted = false;
+  private boolean bsorted = false;
 
   public KGreedyPartitionSolver() {
     // default constructor
@@ -76,7 +95,7 @@ public class KGreedyPartitionSolver implements 
ThePartitionProblemSolver {
     return labelGroups;
   }
 
-  public Map<String, Double> sortMapByValue(Map<String, Double> passedMap) {
+  private Map<String, Double> sortMapByValue(Map<String, Double> passedMap) {
     List<String> mapKeys = new ArrayList<>(passedMap.keySet());
     List<Double> mapValues = new ArrayList<>(passedMap.values());
     Collections.sort(mapValues, Collections.reverseOrder());
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/ThePartitionProblemSolver.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/ThePartitionProblemSolver.java
index 507140f..28972b9 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/ThePartitionProblemSolver.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/ThePartitionProblemSolver.java
@@ -1,8 +1,22 @@
+/*
+ * Licensed 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.sdap.mudrod.weblog.partition;
 
 import java.util.Map;
 
 public interface ThePartitionProblemSolver {
 
-  public Map<String, Integer> solve(Map<String, Double> labelNums, int k);
+  Map<String, Integer> solve(Map<String, Double> labelNums, int k);
+
 }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/logPartitioner.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/logPartitioner.java
index 7ff2181..615f4b6 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/logPartitioner.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/partition/logPartitioner.java
@@ -1,3 +1,16 @@
+/*
+ * Licensed 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.sdap.mudrod.weblog.partition;
 
 import org.apache.spark.Partitioner;
@@ -6,8 +19,8 @@ import java.util.Map;
 
 public class logPartitioner extends Partitioner {
 
-  int num;
-  Map<String, Integer> UserGroups;
+  private int num;
+  private Map<String, Integer> UserGroups;
 
   public logPartitioner(int num) {
     this.num = num;
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/CrawlerDetection.java 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/CrawlerDetection.java
index 2f37af9..38e7d29 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/CrawlerDetection.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/CrawlerDetection.java
@@ -107,7 +107,7 @@ public class CrawlerDetection extends LogAbstract {
     return false;
   }
 
-  void checkByRateInParallel() throws InterruptedException, IOException {
+  private void checkByRateInParallel() throws InterruptedException, 
IOException {
 
     JavaRDD<String> userRDD = getUserRDD(this.httpType);
     LOG.info("Original User count: {}", userRDD.count());
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/HistoryGenerator.java 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/HistoryGenerator.java
index e120765..08c8c6c 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/HistoryGenerator.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/HistoryGenerator.java
@@ -28,7 +28,12 @@ import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
-import java.util.*;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 /**
  * Supports ability to generate search history (queries) for each individual
@@ -58,7 +63,7 @@ public class HistoryGenerator extends LogAbstract {
    * Method to generate a binary user*query matrix (stored in temporary .csv
    * file)
    */
-  public void generateBinaryMatrix() {
+  private void generateBinaryMatrix() {
     try {
       File file = new 
File(props.getProperty(MudrodConstants.USER_HISTORY_PATH));
       if (file.exists()) {
@@ -149,7 +154,7 @@ public class HistoryGenerator extends LogAbstract {
       }
       fw.close();
     } catch (IOException e) {
-      e.printStackTrace();
+      LOG.error("Failed to generate Binary Matrix : ", e);
     }
 
   }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/ImportLogFile.java 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/ImportLogFile.java
index 6e5f473..7eb33d7 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/ImportLogFile.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/ImportLogFile.java
@@ -19,24 +19,15 @@ import org.apache.sdap.mudrod.main.MudrodConstants;
 import org.apache.sdap.mudrod.weblog.structure.log.ApacheAccessLog;
 import org.apache.sdap.mudrod.weblog.structure.log.FtpLog;
 import org.apache.spark.api.java.JavaRDD;
-import org.elasticsearch.action.index.IndexRequest;
 import org.elasticsearch.spark.rdd.api.java.JavaEsSpark;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.IOException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import java.util.Properties;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
 
 /**
  * Supports ability to parse and process FTP and HTTP log files
@@ -50,11 +41,11 @@ public class ImportLogFile extends LogAbstract {
    */
   private static final long serialVersionUID = 1L;
 
-  String logEntryPattern = "^([\\d.]+) (\\S+) (\\S+) 
\\[([\\w:/]+\\s[+\\-]\\d{4})\\] " + "\"(.+?)\" (\\d{3}) (\\d+|-) 
\"((?:[^\"]|\")+)\" \"([^\"]+)\"";
+  private String logEntryPattern = "^([\\d.]+) (\\S+) (\\S+) 
\\[([\\w:/]+\\s[+\\-]\\d{4})\\] " + "\"(.+?)\" (\\d{3}) (\\d+|-) 
\"((?:[^\"]|\")+)\" \"([^\"]+)\"";
 
-  public static final int NUM_FIELDS = 9;
-  Pattern p = Pattern.compile(logEntryPattern);
-  transient Matcher matcher;
+  private static final int NUM_FIELDS = 9;
+  private Pattern p = Pattern.compile(logEntryPattern);
+  private transient Matcher matcher;
   
   @Override
   public Object execute(Object o) {
@@ -123,7 +114,7 @@ public class ImportLogFile extends LogAbstract {
     return newTime;
   }
 
-  public void readFile() {
+  private void readFile() {
 
     String httplogpath = null;
     String ftplogpath = null;
@@ -161,18 +152,18 @@ public class ImportLogFile extends LogAbstract {
    * @param httplogpath path to the parent directory containing http logs
    * @param ftplogpath  path to the parent directory containing ftp logs
    */
-  public void readFileInParallel(String httplogpath, String ftplogpath) {
+  private void readFileInParallel(String httplogpath, String ftplogpath) {
     importHttpfile(httplogpath);
     importFtpfile(ftplogpath);
   }
 
-  public void importHttpfile(String httplogpath) {
+  private void importHttpfile(String httplogpath) {
     // import http logs
     JavaRDD<String> accessLogs = spark.sc.textFile(httplogpath, 
this.partition).map(s -> ApacheAccessLog.parseFromLogLine(s, 
props)).filter(ApacheAccessLog::checknull);
     JavaEsSpark.saveJsonToEs(accessLogs, logIndex + "/" + this.httpType);
   }
 
-  public void importFtpfile(String ftplogpath) {
+  private void importFtpfile(String ftplogpath) {
     // import ftp logs
     JavaRDD<String> ftpLogs = spark.sc.textFile(ftplogpath, 
this.partition).map(s -> FtpLog.parseFromLogLine(s, 
props)).filter(FtpLog::checknull);
     JavaEsSpark.saveJsonToEs(ftpLogs, logIndex + "/" + this.ftpType);
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/LogAbstract.java 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/LogAbstract.java
index 1d04902..a489844 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/LogAbstract.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/LogAbstract.java
@@ -1,3 +1,16 @@
+/*
+ * Licensed 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.sdap.mudrod.weblog.pre;
 
 import org.apache.commons.io.IOUtils;
@@ -27,7 +40,11 @@ import scala.Tuple2;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 public class LogAbstract extends DiscoveryStepAbstract {
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/RankingTrainDataGenerator.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/RankingTrainDataGenerator.java
index de41d56..85d86ec 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/RankingTrainDataGenerator.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/RankingTrainDataGenerator.java
@@ -1,3 +1,16 @@
+/*
+ * Licensed 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.sdap.mudrod.weblog.pre;
 
 import org.apache.sdap.mudrod.discoveryengine.DiscoveryStepAbstract;
@@ -37,7 +50,7 @@ public class RankingTrainDataGenerator extends 
DiscoveryStepAbstract {
       rankingTrainData_JsonRDD.coalesce(1, 
true).saveAsTextFile(rankingTrainFile);
 
     } catch (Exception e) {
-      e.printStackTrace();
+      LOG.error("Train data ranking failed : ", e);
     }
 
     endTime = System.currentTimeMillis();
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/SessionGenerator.java 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/SessionGenerator.java
index 6d779e8..dcdbec1 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/SessionGenerator.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/SessionGenerator.java
@@ -42,7 +42,13 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 
 import static org.elasticsearch.common.xcontent.XContentFactory.jsonBuilder;
 
@@ -72,7 +78,7 @@ public class SessionGenerator extends LogAbstract {
     return null;
   }
 
-  public void generateSession() {
+  private void generateSession() {
     try {
       es.createBulkProcessor();
       
genSessionByReferer(Integer.parseInt(props.getProperty(MudrodConstants.REQUEST_TIME_GAP)));
@@ -86,18 +92,18 @@ public class SessionGenerator extends LogAbstract {
     } catch (IOException e) {
       LOG.error("Error whilst reading configuration.", e);
     } catch (NumberFormatException e) {
-      e.printStackTrace();
+      LOG.error("Error whilst parsing Integer configuration parameter.", e);
     } catch (InterruptedException e) {
-      e.printStackTrace();
+      LOG.error("Current running thread interrupted.", e);
       Thread.currentThread().interrupt();
     }
   }
 
-  public void genSessionByReferer(int timeThres) throws InterruptedException, 
IOException {
+  private void genSessionByReferer(int timeThres) throws InterruptedException, 
IOException {
     genSessionByRefererInParallel(timeThres);
   }
 
-  public void combineShortSessions(int timeThres) throws InterruptedException, 
IOException {
+  private void combineShortSessions(int timeThres) throws 
InterruptedException, IOException {
     combineShortSessionsInParallel(timeThres);
   }
 
@@ -109,7 +115,7 @@ public class SessionGenerator extends LogAbstract {
    * @throws ElasticsearchException ElasticsearchException
    * @throws IOException            IOException
    */
-  public void deleteInvalid(ESDriver es, String ip) throws IOException {
+  private void deleteInvalid(ESDriver es, String ip) throws IOException {
 
     BoolQueryBuilder filterAll = new BoolQueryBuilder();
     filterAll.must(QueryBuilders.termQuery("IP", ip));
@@ -141,7 +147,7 @@ public class SessionGenerator extends LogAbstract {
   /**
    * Method to update a Elasticsearch record/document by id, field, and value
    *
-   * @param es
+   * @param es     Elasticsearch Driver
    * @param index  index name is Elasticsearch
    * @param type   type name
    * @param id     ID of the document that needs to be updated
@@ -156,7 +162,7 @@ public class SessionGenerator extends LogAbstract {
     es.getBulkProcessor().add(ur);
   }
 
-  public void genSessionByRefererInParallel(int timeThres) throws 
InterruptedException, IOException {
+  private void genSessionByRefererInParallel(int timeThres) throws 
InterruptedException, IOException {
 
     JavaRDD<String> userRDD = getUserRDD(this.cleanupType);
     int sessionCount = 0;
@@ -195,7 +201,7 @@ public class SessionGenerator extends LogAbstract {
     LOG.info("Initial Session count: {}", Integer.toString(sessionCount));
   }
 
-  public int genSessionByReferer(ESDriver es, String user, int timeThres) 
throws ElasticsearchException, IOException {
+  private int genSessionByReferer(ESDriver es, String user, int timeThres) 
throws ElasticsearchException, IOException {
 
     String startTime = null;
     int sessionCountIn = 0;
@@ -316,7 +322,7 @@ public class SessionGenerator extends LogAbstract {
     return sessionCountIn;
   }
 
-  public void combineShortSessionsInParallel(int timeThres) throws 
InterruptedException, IOException {
+  private void combineShortSessionsInParallel(int timeThres) throws 
InterruptedException, IOException {
 
     JavaRDD<String> userRDD = getUserRDD(this.cleanupType);
 
@@ -341,7 +347,7 @@ public class SessionGenerator extends LogAbstract {
     LOG.info("Final Session count (after combining short sessions): {}", 
Long.toString(userRDD.count()));
   }
 
-  public void combineShortSessions(ESDriver es, String user, int timeThres) 
throws ElasticsearchException, IOException {
+  private void combineShortSessions(ESDriver es, String user, int timeThres) 
throws ElasticsearchException, IOException {
 
     BoolQueryBuilder filterSearch = new BoolQueryBuilder();
     filterSearch.must(QueryBuilders.termQuery("IP", user));
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/SessionStatistic.java 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/SessionStatistic.java
index c89160f..2846979 100644
--- a/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/SessionStatistic.java
+++ b/core/src/main/java/org/apache/sdap/mudrod/weblog/pre/SessionStatistic.java
@@ -71,13 +71,11 @@ public class SessionStatistic extends LogAbstract {
     startTime = System.currentTimeMillis();
     try {
       processSession();
-    } catch (IOException e) {
-      e.printStackTrace();
+    } catch (IOException | ExecutionException e) {
+      LOG.error("Session summarization process failed.", e);
     } catch (InterruptedException e) {
-      e.printStackTrace();
+      LOG.error("Current running thread interrupted.", e);
       Thread.currentThread().interrupt();
-    } catch (ExecutionException e) {
-      e.printStackTrace();
     }
     endTime = System.currentTimeMillis();
     es.refreshIndex();
@@ -85,7 +83,7 @@ public class SessionStatistic extends LogAbstract {
     return null;
   }
 
-  public void processSession() throws InterruptedException, IOException, 
ExecutionException {
+  private void processSession() throws InterruptedException, IOException, 
ExecutionException {
     processSessionInParallel();
   }
 
@@ -95,7 +93,7 @@ public class SessionStatistic extends LogAbstract {
    * @param request raw log request
    * @return dataset ID
    */
-  public String findDataset(String request) {
+  private String findDataset(String request) {
     String pattern1 = props.getProperty(MudrodConstants.VIEW_MARKER);
     String pattern2;
     if (request.contains("?")) {
@@ -112,7 +110,7 @@ public class SessionStatistic extends LogAbstract {
     return null;
   }
 
-  public void processSessionInParallel() throws InterruptedException, 
IOException {
+  private void processSessionInParallel() throws InterruptedException, 
IOException {
 
     List<String> sessions = this.getSessions();
     JavaRDD<String> sessionRDD = spark.sc.parallelize(sessions, partition);
@@ -144,7 +142,7 @@ public class SessionStatistic extends LogAbstract {
     LOG.info("Final Session count: {}", Integer.toString(sessionCount));
   }
 
-  public int processSession(ESDriver es, String sessionId) throws IOException, 
InterruptedException, ExecutionException {
+  private int processSession(ESDriver es, String sessionId) throws 
IOException, InterruptedException, ExecutionException {
 
     String inputType = cleanupType;
     String outputType = sessionStats;
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/ApacheAccessLog.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/ApacheAccessLog.java
index 6ffd3be..8887dee 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/ApacheAccessLog.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/ApacheAccessLog.java
@@ -18,7 +18,6 @@ import com.google.gson.Gson;
 import org.apache.sdap.mudrod.main.MudrodConstants;
 import org.apache.sdap.mudrod.weblog.pre.CrawlerDetection;
 
-import java.io.IOException;
 import java.io.Serializable;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -32,9 +31,10 @@ import java.util.regex.Pattern;
  * http://httpd.apache.org/docs/2.2/logs.html for more details.
  */
 public class ApacheAccessLog extends WebLog implements Serializable {
-  String Response;
-  String Referer;
-  String Browser;
+
+  private String Response;
+  private String Referer;
+  private String Browser;
 
   @Override
   public double getBytes() {
@@ -110,7 +110,7 @@ public class ApacheAccessLog extends WebLog implements 
Serializable {
       lineJson = gson.toJson(accesslog);
 
       return lineJson;
-  }
+    }
   }
 
   public static boolean checknull(WebLog s) {
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/Coordinates.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/Coordinates.java
index 43a7642..04d811a 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/Coordinates.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/Coordinates.java
@@ -18,4 +18,5 @@ public class Coordinates {
    * public String lat; public String lon;
    */
   public String latlon;
+
 }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/RequestUrl.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/RequestUrl.java
index 0c365a4..fe76e76 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/RequestUrl.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/log/RequestUrl.java
@@ -87,7 +87,7 @@ public class RequestUrl {
    * @param URL request url
    * @return url params key value map
    */
-  public static Map<String, String> uRLRequest(String URL) {
+  private static Map<String, String> uRLRequest(String URL) {
     Map<String, String> mapRequest = new HashMap<String, String>();
 
     String[] arrSplit = null;
@@ -213,8 +213,7 @@ public class RequestUrl {
         keyword = keyword.replaceAll("[-+^:,*_\"]", " ").replace("\\", " 
").replaceAll("\\s+", " ").trim();
 
       } catch (UnsupportedEncodingException e) {
-        LOG.error(mapRequest.get("search"));
-        e.printStackTrace();
+        LOG.error(mapRequest.get("search"), e);
       }
       if (!"".equals(keyword)) {
         info.add(keyword);
@@ -246,8 +245,7 @@ public class RequestUrl {
             filterValues.put(ids[i], item);
           }
         } catch (Exception e) {
-          LOG.error(values[i]);
-          e.printStackTrace();
+          LOG.error("Error occurred while decoding value " + values[i], e);
         }
       }
     }
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/ClickStream.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/ClickStream.java
index 7e5069e..5d698ed 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/ClickStream.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/ClickStream.java
@@ -15,6 +15,8 @@ package org.apache.sdap.mudrod.weblog.structure.session;
 
 import org.codehaus.jettison.json.JSONException;
 import org.codehaus.jettison.json.JSONObject;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.io.Serializable;
 
@@ -37,6 +39,9 @@ public class ClickStream implements Serializable {
   // type: session type name
   private String type;
 
+  private static final Logger LOG = LoggerFactory.getLogger(ClickStream.class);
+
+
   /**
    * Creates a new instance of ClickStream.
    *
@@ -180,7 +185,7 @@ public class ClickStream implements Serializable {
       data.setDownloadDataset(jsonData.getString("downloaddataset"));
 
     } catch (JSONException e) {
-      e.printStackTrace();
+      LOG.error("Error occurred while parsing the json log line : ", e);
     }
 
     return data;
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/RankingTrainData.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/RankingTrainData.java
index bdf477a..8199617 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/RankingTrainData.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/RankingTrainData.java
@@ -1,3 +1,16 @@
+/*
+ * Licensed 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.sdap.mudrod.weblog.structure.session;
 
 import java.io.Serializable;
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/Session.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/Session.java
index 2c917a6..a3efeab 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/Session.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/Session.java
@@ -166,7 +166,6 @@ public class Session /*extends MudrodAbstract*/ implements 
Comparable<Session> {
       sessionResults.add("RequestList", jsonRequest);
     } catch (UnsupportedEncodingException e) {
       LOG.error("Encoding error detected.", e);
-
     }
 
     return sessionResults;
@@ -283,7 +282,7 @@ public class Session /*extends MudrodAbstract*/ implements 
Comparable<Session> {
     try {
       trainData = tree.getRankingTrainData(indexName);
     } catch (UnsupportedEncodingException e) {
-      LOG.error("Error whilst retreiving ranking training data: {}", e);
+      LOG.error("Error whilst retrieving ranking training data: {}", e);
     }
 
     return trainData;
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionExtractor.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionExtractor.java
index f7eb602..8286e8c 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionExtractor.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionExtractor.java
@@ -73,7 +73,7 @@ public class SessionExtractor implements Serializable {
        return getClickStreamListInParallel(props, spark, es);
   }
 
-  protected JavaRDD<ClickStream> getClickStreamListInParallel(Properties 
props, SparkDriver spark, ESDriver es) {
+  private JavaRDD<ClickStream> getClickStreamListInParallel(Properties props, 
SparkDriver spark, ESDriver es) {
 
     List<String> logIndexList = 
es.getIndexListWithPrefix(props.getProperty(MudrodConstants.LOG_INDEX));
 
@@ -205,7 +205,7 @@ public class SessionExtractor implements Serializable {
    *          a log index name
    * @return list of session names
    */
-  protected List<String> getSessions(Properties props, ESDriver es, String 
logIndex) {
+  private List<String> getSessions(Properties props, ESDriver es, String 
logIndex) {
 
     String cleanupType = MudrodConstants.CLEANUP_TYPE;
     String sessionStatType = MudrodConstants.SESSION_STATS_TYPE;
@@ -412,7 +412,7 @@ public class SessionExtractor implements Serializable {
    *          the Elasticsearch driver
    * @return clickstream list {@link ClickStream}
    */
-  protected List<RankingTrainData> extractRankingTrainData(Properties props, 
ESDriver es) {
+  private List<RankingTrainData> extractRankingTrainData(Properties props, 
ESDriver es) {
     List<String> logIndexList = 
es.getIndexListWithPrefix(props.getProperty(MudrodConstants.LOG_INDEX));
 
     LOG.info(logIndexList.toString());
@@ -436,7 +436,7 @@ public class SessionExtractor implements Serializable {
     return result;
   }
 
-  protected JavaRDD<RankingTrainData> 
extractRankingTrainDataInParallel(Properties props, SparkDriver spark, ESDriver 
es) {
+  public JavaRDD<RankingTrainData> 
extractRankingTrainDataInParallel(Properties props, SparkDriver spark, ESDriver 
es) {
 
     List<String> logIndexList = 
es.getIndexListWithPrefix(props.getProperty(MudrodConstants.LOG_INDEX));
 
diff --git 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionNode.java
 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionNode.java
index 91a29e1..b893d6b 100644
--- 
a/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionNode.java
+++ 
b/core/src/main/java/org/apache/sdap/mudrod/weblog/structure/session/SessionNode.java
@@ -15,7 +15,12 @@ package org.apache.sdap.mudrod.weblog.structure.session;
 
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -158,7 +163,7 @@ public class SessionNode {
    * @param request request url
    * @param logType url type
    */
-  public void setKey(Properties props, String request, String logType) {
+  private void setKey(Properties props, String request, String logType) {
     this.key = "";
     String datasetlist = props.getProperty(MudrodConstants.SEARCH_MARKER);
     String dataset = props.getProperty(MudrodConstants.VIEW_MARKER);
@@ -283,7 +288,7 @@ public class SessionNode {
    *
    * @param request request url of this node
    */
-  public void parseRequest(String request) {
+  private void parseRequest(String request) {
     Pattern pattern = Pattern.compile("get (.*?) http/*");
     Matcher matcher = pattern.matcher(request.trim().toLowerCase());
     while (matcher.find()) {
@@ -330,7 +335,7 @@ public class SessionNode {
    *
    * @param request request url
    */
-  public void parseDatasetId(String request) {
+  private void parseDatasetId(String request) {
     try {
       request = URLDecoder.decode(request, "UTF-8");
     } catch (UnsupportedEncodingException e) {
diff --git 
a/core/src/test/java/org/apache/sdap/mudrod/ontology/process/TestLocalOntology.java
 
b/core/src/test/java/org/apache/sdap/mudrod/ontology/process/TestLocalOntology.java
index 192a29b..d332f5d 100644
--- 
a/core/src/test/java/org/apache/sdap/mudrod/ontology/process/TestLocalOntology.java
+++ 
b/core/src/test/java/org/apache/sdap/mudrod/ontology/process/TestLocalOntology.java
@@ -13,11 +13,13 @@
  */
 package org.apache.sdap.mudrod.ontology.process;
 
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
 
 import java.io.IOException;
 
-import org.apache.sdap.mudrod.ontology.process.LocalOntology;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
diff --git 
a/service/src/main/java/org/apache/sdap/mudrod/services/MudrodContextListener.java
 
b/service/src/main/java/org/apache/sdap/mudrod/services/MudrodContextListener.java
index 7d89508..96693db 100644
--- 
a/service/src/main/java/org/apache/sdap/mudrod/services/MudrodContextListener.java
+++ 
b/service/src/main/java/org/apache/sdap/mudrod/services/MudrodContextListener.java
@@ -33,7 +33,7 @@ import java.util.Properties;
 @WebListener
 public class MudrodContextListener implements ServletContextListener {
 
-  MudrodEngine me = null;
+  private MudrodEngine me = null;
 
   /**
    * Default constructor.
diff --git 
a/service/src/main/java/org/apache/sdap/mudrod/services/autocomplete/AutoCompleteResource.java
 
b/service/src/main/java/org/apache/sdap/mudrod/services/autocomplete/AutoCompleteResource.java
index fb9a036..87f1b36 100644
--- 
a/service/src/main/java/org/apache/sdap/mudrod/services/autocomplete/AutoCompleteResource.java
+++ 
b/service/src/main/java/org/apache/sdap/mudrod/services/autocomplete/AutoCompleteResource.java
@@ -21,7 +21,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.servlet.ServletContext;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
diff --git 
a/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchDatasetDetailResource.java
 
b/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchDatasetDetailResource.java
index d31d1f4..095bceb 100644
--- 
a/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchDatasetDetailResource.java
+++ 
b/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchDatasetDetailResource.java
@@ -19,7 +19,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.servlet.ServletContext;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
diff --git 
a/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchMetadataResource.java
 
b/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchMetadataResource.java
index 9bdf455..b385d04 100644
--- 
a/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchMetadataResource.java
+++ 
b/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchMetadataResource.java
@@ -25,7 +25,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.servlet.ServletContext;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
diff --git 
a/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchVocabResource.java
 
b/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchVocabResource.java
index 6e58761..c9b0d73 100644
--- 
a/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchVocabResource.java
+++ 
b/service/src/main/java/org/apache/sdap/mudrod/services/search/SearchVocabResource.java
@@ -22,7 +22,11 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.servlet.ServletContext;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
diff --git 
a/service/src/main/java/org/apache/sdap/mudrod/services/search/SessionDetailResource.java
 
b/service/src/main/java/org/apache/sdap/mudrod/services/search/SessionDetailResource.java
index 9990c7a..6bd4e61 100644
--- 
a/service/src/main/java/org/apache/sdap/mudrod/services/search/SessionDetailResource.java
+++ 
b/service/src/main/java/org/apache/sdap/mudrod/services/search/SessionDetailResource.java
@@ -23,7 +23,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.servlet.ServletContext;
-import javax.ws.rs.*;
+import javax.ws.rs.Consumes;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.POST;
+import javax.ws.rs.Produces;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;

Reply via email to