You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/01/15 05:37:50 UTC

incubator-ranger git commit: RANGER-203: 1) policy-refresher unit test updated to reduce the time taken to complete. 2) Removed unused code (Hdfs audit log classes) from ranger-plugin-common project. 3) Updated ServiceFileStore to dynamically read servic

Repository: incubator-ranger
Updated Branches:
  refs/heads/stack 81cfaef6d -> fbe800a16


RANGER-203: 1) policy-refresher unit test updated to reduce the time
taken to complete. 2) Removed unused code (Hdfs audit log classes) from
ranger-plugin-common project. 3) Updated ServiceFileStore to dynamically
read service-def from filesystem, instead of using cached service-defs.
4) Fixed incorrect log level in RangerDaoManager.java

Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/fbe800a1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/fbe800a1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/fbe800a1

Branch: refs/heads/stack
Commit: fbe800a16d9df250a11dfbb4459d22aa865db14e
Parents: 81cfaef
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Wed Jan 14 20:35:27 2015 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Wed Jan 14 20:35:27 2015 -0800

----------------------------------------------------------------------
 .../java/org/apache/log4j/BufferedAppender.java | 123 ----
 .../org/apache/log4j/HdfsLogDestination.java    | 297 ----------
 .../apache/log4j/HdfsRollingFileAppender.java   | 130 ----
 .../org/apache/log4j/LocalFileLogBuffer.java    | 594 -------------------
 .../main/java/org/apache/log4j/LogBuffer.java   |  30 -
 .../java/org/apache/log4j/LogDestination.java   |  30 -
 .../ranger/plugin/store/ServiceStore.java       |   1 -
 .../plugin/store/file/ServiceFileStore.java     | 170 ++----
 .../ranger/plugin/util/PolicyRefresher.java     |  14 +
 .../ranger/plugin/store/TestServiceStore.java   |  24 +-
 .../ranger/plugin/util/TestPolicyRefresher.java |  19 +-
 .../org/apache/ranger/db/RangerDaoManager.java  |   5 +-
 12 files changed, 105 insertions(+), 1332 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/agents-common/src/main/java/org/apache/log4j/BufferedAppender.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/log4j/BufferedAppender.java b/agents-common/src/main/java/org/apache/log4j/BufferedAppender.java
deleted file mode 100644
index 916d2eb..0000000
--- a/agents-common/src/main/java/org/apache/log4j/BufferedAppender.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.log4j;
-
-
-import org.apache.log4j.helpers.LogLog;
-
-public abstract class BufferedAppender<T> extends AppenderSkeleton {
-	private LogDestination<T> mLogDestination = null;
-	private LogBuffer<T>      mLogBuffer      = null;
-
-	protected void setBufferAndDestination(LogBuffer<T> buffer, LogDestination<T> destination) {
-		close();
-
-		mLogBuffer      = buffer;
-		mLogDestination = destination;
-	}
-
-	protected boolean isLogable() {
-		return mLogBuffer != null;
-	}
-
-	protected void addToBuffer(T log) {
-		if(mLogBuffer != null) {
-			mLogBuffer.add(log);
-		}
-	}
-
-	protected void start() {
-		LogLog.debug("==> BufferedAppender.start()");
-
-		if(mLogBuffer == null) {
-			LogLog.warn("BufferedAppender.start(): logBuffer is null");
-		}
-
-		if(mLogDestination == null) {
-			LogLog.warn("BufferedAppender.start(): logDestination is null");
-		}
-
-		if(mLogBuffer != null && mLogDestination != null) {
-			JVMShutdownHook jvmShutdownHook = new JVMShutdownHook(this);
-
-		    Runtime.getRuntime().addShutdownHook(jvmShutdownHook);
-
-			mLogBuffer.start(mLogDestination);
-		}
-
-		LogLog.debug("<== BufferedAppender.start()");
-	}
-
-	protected void stop() {
-		LogLog.debug("==> BufferedAppender.stop()");
-
-		LogBuffer<T> tmpBuff = mLogBuffer;
-
-		mLogDestination = null;
-		mLogBuffer      = null;
-
-		if(tmpBuff != null) {
-			tmpBuff.stop();
-		}
-
-		LogLog.debug("<== BufferedAppender.stop()");
-	}
-
-	@Override
-	public void close() {
-		LogLog.debug("==> BufferedAppender.close()");
-
-		stop();
-
-		LogLog.debug("<== BufferedAppender.close()");
-	}
-	
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-
-		sb.append("BufferedAppender {");
-		if(mLogDestination != null) {
-			sb.append(mLogDestination.toString());
-		}
-
-		sb.append(" ");
-
-		if(mLogBuffer != null) {
-			sb.append(mLogBuffer.toString());
-		}
-		sb.append("}");
-
-		return sb.toString();
-	}
-
-	private class JVMShutdownHook extends Thread {
-		Appender mAppender = null;
-
-		public JVMShutdownHook(Appender appender) {
-			mAppender = appender;
-		}
-
-		public void run() {
-			if(mAppender != null) {
-				mAppender.close();
-			}
-	    }
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/agents-common/src/main/java/org/apache/log4j/HdfsLogDestination.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/log4j/HdfsLogDestination.java b/agents-common/src/main/java/org/apache/log4j/HdfsLogDestination.java
deleted file mode 100644
index 27def91..0000000
--- a/agents-common/src/main/java/org/apache/log4j/HdfsLogDestination.java
+++ /dev/null
@@ -1,297 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.log4j;
-
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-import java.net.URI;
-
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FSDataOutputStream;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
-import org.apache.log4j.LocalFileLogBuffer.MiscUtil;
-import org.apache.log4j.helpers.LogLog;
-
-public class HdfsLogDestination implements LogDestination<String> {
-	private String  mDirectory               = null;
-	private String  mFile                    = null;
-	private String  mEncoding                = null;
-	private boolean mIsAppend                = true;
-	private int     mRolloverIntervalSeconds = 24 * 60 * 60;
-
-	private OutputStreamWriter mWriter           = null; 
-	private String             mCurrentFilename  = null;
-	private long               mNextRolloverTime = 0;
-	
-	private String LINE_SEPARATOR = System.getProperty("line.separator");
-
-	public HdfsLogDestination() {
-	}
-
-	public String getDirectory() {
-		return mDirectory;
-	}
-
-	public void setDirectory(String directory) {
-		this.mDirectory = directory;
-	}
-
-	public String getFile() {
-		return mFile;
-	}
-
-	public void setFile(String file) {
-		this.mFile = file;
-	}
-
-	public String getEncoding() {
-		return mEncoding;
-	}
-
-	public void setEncoding(String encoding) {
-		mEncoding = encoding;
-	}
-
-	public int getRolloverIntervalSeconds() {
-		return mRolloverIntervalSeconds;
-	}
-
-	public void setRolloverIntervalSeconds(int rolloverIntervalSeconds) {
-		this.mRolloverIntervalSeconds = rolloverIntervalSeconds;
-	}
-
-	@Override
-	public void start() {
-		LogLog.debug("==> HdfsLogDestination.start()");
-
-		openFile();
-
-		LogLog.debug("<== HdfsLogDestination.start()");
-	}
-
-	@Override
-	public void stop() {
-		LogLog.debug("==> HdfsLogDestination.stop()");
-
-		closeFile();
-
-		LogLog.debug("<== HdfsLogDestination.stop()");
-	}
-
-	@Override
-	public boolean isAvailable() {
-		return mWriter != null;
-	}
-
-	@Override
-	public boolean add(String log) {
-		boolean ret = false;
-
-		long now = System.currentTimeMillis();
-
-		if(now > mNextRolloverTime) {
-			rollover();
-		}
-
-		OutputStreamWriter writer = mWriter;
-
-		if(writer != null) {
-			try {
-				writer.write(log + LINE_SEPARATOR);
-
-				ret = true;
-			} catch (IOException excp) {
-				LogLog.warn("HdfsLogDestination.add(): write failed", excp);
-			}
-		}
-
-		return ret;
-	}
-
-	private void openFile() {
-		LogLog.debug("==> HdfsLogDestination.openFile()");
-
-		closeFile();
-
-		mCurrentFilename = MiscUtil.replaceTokens(mDirectory + File.separator + mFile);
-
-		FSDataOutputStream ostream     = null;
-		FileSystem         fileSystem  = null;
-		Path               pathLogfile = null;
-		Configuration      conf        = null;
-
-		try {
-			LogLog.debug("HdfsLogDestination.openFile(): opening file " + mCurrentFilename);
-
-			URI uri = URI.create(mCurrentFilename);
-
-			// TODO: mechanism to notify co-located XA-HDFS plugin to disable auditing of access checks to the current HDFS file
-			//       this can be driven by adding an option (property) the logger, which can be configured at the deployment time.
-			//       Like: hdfsCurrentFilenameProperty. When this option is set, do the following here:
-			//        System.setProperty(hdfsCurrentFilenameProperty, uri.getPath());
-
-			conf        = new Configuration();
-			pathLogfile = new Path(mCurrentFilename);
-			fileSystem  = FileSystem.get(uri, conf);
-
-			if(fileSystem.exists(pathLogfile)) {
-				if(mIsAppend) {
-					try {
-						ostream = fileSystem.append(pathLogfile);
-					} catch(IOException excp) {
-						// append may not be supported by the filesystem. rename existing file and create a new one
-						String fileSuffix    = MiscUtil.replaceTokens("-" + MiscUtil.TOKEN_FILE_OPEN_TIME_START + "yyyyMMdd-HHmm.ss" + MiscUtil.TOKEN_FILE_OPEN_TIME_END);
-						String movedFilename = appendToFilename(mCurrentFilename, fileSuffix);
-						Path   movedFilePath = new Path(movedFilename);
-
-						fileSystem.rename(pathLogfile, movedFilePath);
-					}
-				}
-			}
-
-			if(ostream == null){
-				ostream = fileSystem.create(pathLogfile);
-			}
-		} catch(IOException ex) {
-			Path parentPath = pathLogfile.getParent();
-
-			try {
-				if(parentPath != null&& fileSystem != null && !fileSystem.exists(parentPath) && fileSystem.mkdirs(parentPath)) {
-					ostream = fileSystem.create(pathLogfile);
-				}
-			} catch (IOException e) {
-				LogLog.warn("HdfsLogDestination.openFile() failed", e);
-			} catch (Throwable e) {
-				LogLog.warn("HdfsLogDestination.openFile() failed", e);
-			}
-		} catch(Throwable ex) {
-			LogLog.warn("HdfsLogDestination.openFile() failed", ex);
-		} finally {
-			// TODO: unset the property set above to exclude auditing of logfile opening
-			//        System.setProperty(hdfsCurrentFilenameProperty, null);
-		}
-
-		mWriter = createWriter(ostream);
-
-		if(mWriter != null) {
-			LogLog.debug("HdfsLogDestination.openFile(): opened file " + mCurrentFilename);
-
-			updateNextRolloverTime();
-		} else {
-			LogLog.warn("HdfsLogDestination.openFile(): failed to open file for write " + mCurrentFilename);
-
-			mCurrentFilename = null;
-		}
-
-		LogLog.debug("<== HdfsLogDestination.openFile(" + mCurrentFilename + ")");
-	}
-
-	private void closeFile() {
-		LogLog.debug("==> HdfsLogDestination.closeFile()");
-
-		OutputStreamWriter writer = mWriter;
-
-		mWriter = null;
-
-		if(writer != null) {
-			try {
-				writer.flush();
-				writer.close();
-			} catch(IOException excp) {
-				LogLog.warn("HdfsLogDestination: failed to close file " + mCurrentFilename, excp);
-			}
-		}
-
-		LogLog.debug("<== HdfsLogDestination.closeFile()");
-	}
-
-	private void rollover() {
-		LogLog.debug("==> HdfsLogDestination.rollover()");
-
-		closeFile();
-
-		openFile();
-
-		LogLog.debug("<== HdfsLogDestination.rollover()");
-	}
-
-	private OutputStreamWriter createWriter(OutputStream os ) {
-	    OutputStreamWriter writer = null;
-
-	    if(os != null) {
-			if(mEncoding != null) {
-				try {
-					writer = new OutputStreamWriter(os, mEncoding);
-				} catch(UnsupportedEncodingException excp) {
-					LogLog.warn("LocalFileLogBuffer: failed to create output writer.", excp);
-				}
-			}
-	
-			if(writer == null) {
-				writer = new OutputStreamWriter(os);
-			}
-	    }
-
-	    return writer;
-	}
-
-	private void updateNextRolloverTime() {
-		mNextRolloverTime = MiscUtil.getNextRolloverTime(mNextRolloverTime, (mRolloverIntervalSeconds * 1000));
-	}
-	
-	private String appendToFilename(String fileName, String strToAppend) {
-		String ret = fileName;
-		
-		if(strToAppend != null) {
-			if(ret == null) {
-				ret = "";
-			}
-	
-			int extnPos = ret.lastIndexOf(".");
-			
-			if(extnPos < 0) {
-				ret += strToAppend;
-			} else {
-				String extn = ret.substring(extnPos);
-				
-				ret = ret.substring(0, extnPos) + strToAppend + extn;
-			}
-		}
-
-		return ret;
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-
-		sb.append("HdfsLogDestination {");
-		sb.append("Directory=").append(mDirectory).append("; ");
-		sb.append("File=").append(mFile).append("; ");
-		sb.append("RolloverIntervalSeconds=").append(mRolloverIntervalSeconds);
-		sb.append("}");
-		
-		return sb.toString();
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/agents-common/src/main/java/org/apache/log4j/HdfsRollingFileAppender.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/log4j/HdfsRollingFileAppender.java b/agents-common/src/main/java/org/apache/log4j/HdfsRollingFileAppender.java
deleted file mode 100644
index a855575..0000000
--- a/agents-common/src/main/java/org/apache/log4j/HdfsRollingFileAppender.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.log4j;
-
-
-import org.apache.log4j.helpers.LogLog;
-import org.apache.log4j.spi.LoggingEvent;
-
-
-public class HdfsRollingFileAppender extends BufferedAppender<String> {
-	String mEncoding                               = null;
-
-	String mHdfsDestinationDirectory               = null;
-	String mHdfsDestinationFile                    = null;
-	int    mHdfsDestinationRolloverIntervalSeconds = 24 * 60 * 60;
-
-	String mLocalFileBufferDirectory               = null;
-	String mLocalFileBufferFile                    = null;
-	int    mLocalFileBufferRolloverIntervalSeconds = 10 * 60;
-	String mLocalFileBufferArchiveDirectory        = null;
-	int    mLocalFileBufferArchiveFileCount        = 10;
-
-	public void setEncoding(String encoding) {
-		mEncoding = encoding;
-	}
-
-	public void setHdfsDestinationDirectory(String hdfsDestinationDirectory) {
-		mHdfsDestinationDirectory = hdfsDestinationDirectory;
-	}
-
-	public void setHdfsDestinationFile(String hdfsDestinationFile) {
-		mHdfsDestinationFile = hdfsDestinationFile;
-	}
-
-	public void setHdfsDestinationRolloverIntervalSeconds(int hdfsDestinationRolloverIntervalSeconds) {
-		mHdfsDestinationRolloverIntervalSeconds = hdfsDestinationRolloverIntervalSeconds;
-	}
-
-	public void setLocalFileBufferDirectory(String localFileBufferDirectory) {
-		mLocalFileBufferDirectory = localFileBufferDirectory;
-	}
-
-	public void setLocalFileBufferFile(String localFileBufferFile) {
-		mLocalFileBufferFile = localFileBufferFile;
-	}
-
-	public void setLocalFileBufferRolloverIntervalSeconds(int localFileBufferRolloverIntervalSeconds) {
-		mLocalFileBufferRolloverIntervalSeconds = localFileBufferRolloverIntervalSeconds;
-	}
-
-	public void setLocalFileBufferArchiveDirectory(String localFileBufferArchiveDirectory) {
-		mLocalFileBufferArchiveDirectory = localFileBufferArchiveDirectory;
-	}
-
-	public void setLocalFileBufferArchiveFileCount(int localFileBufferArchiveFileCount) {
-		mLocalFileBufferArchiveFileCount = localFileBufferArchiveFileCount;
-	}
-
-	@Override
-	public boolean requiresLayout() {
-		return true;
-	}
-
-	@Override
-	public void activateOptions() {
-		LogLog.debug("==> HdfsRollingFileAppender.activateOptions()");
-
-		HdfsLogDestination hdfsDestination = new HdfsLogDestination();
-
-		hdfsDestination.setDirectory(mHdfsDestinationDirectory);
-		hdfsDestination.setFile(mHdfsDestinationFile);
-		hdfsDestination.setEncoding(mEncoding);
-		hdfsDestination.setRolloverIntervalSeconds(mHdfsDestinationRolloverIntervalSeconds);
-
-		LocalFileLogBuffer localFileBuffer = new LocalFileLogBuffer();
-
-		localFileBuffer.setDirectory(mLocalFileBufferDirectory);
-		localFileBuffer.setFile(mLocalFileBufferFile);
-		localFileBuffer.setEncoding(mEncoding);
-		localFileBuffer.setRolloverIntervalSeconds(mLocalFileBufferRolloverIntervalSeconds);
-		localFileBuffer.setArchiveDirectory(mLocalFileBufferArchiveDirectory);
-		localFileBuffer.setArchiveFileCount(mLocalFileBufferArchiveFileCount);
-
-		setBufferAndDestination(localFileBuffer, hdfsDestination);
-
-		start();
-
-		LogLog.debug("<== HdfsRollingFileAppender.activateOptions()");
-	}
-
-	@Override
-	protected void append(LoggingEvent event) {
-		if(isLogable()) {
-			String logMsg = this.layout.format(event);
-	
-			if(layout.ignoresThrowable()) {
-				String[] strThrowable = event.getThrowableStrRep();
-				if (strThrowable != null) {
-					StringBuilder sb = new StringBuilder();
-	
-					sb.append(logMsg);
-	
-					for(String s : strThrowable) {
-						sb.append(s).append(Layout.LINE_SEP);
-					}
-					
-					logMsg = sb.toString();
-				}
-			}
-			
-			addToBuffer(logMsg);
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/agents-common/src/main/java/org/apache/log4j/LocalFileLogBuffer.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/log4j/LocalFileLogBuffer.java b/agents-common/src/main/java/org/apache/log4j/LocalFileLogBuffer.java
deleted file mode 100644
index f1b8716..0000000
--- a/agents-common/src/main/java/org/apache/log4j/LocalFileLogBuffer.java
+++ /dev/null
@@ -1,594 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.log4j;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
-import java.net.InetAddress;
-import java.net.UnknownHostException;
-import java.rmi.dgc.VMID;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.TreeSet;
-
-import org.apache.log4j.LocalFileLogBuffer.MiscUtil;
-import org.apache.log4j.helpers.LogLog;
-
-
-public class LocalFileLogBuffer implements LogBuffer<String> {
-	private static final int    DEFAULT_ROLLOVER_INTERVAL = 600;
-
-	private String  mDirectory               = null;
-	private String  mFile                    = null;
-	private String  mEncoding                = null;
-	private boolean mIsAppend                = true;
-	private int     mRolloverIntervalSeconds = DEFAULT_ROLLOVER_INTERVAL;
-	private String  mArchiveDirectory        = null;
-	private int     mArchiveFileCount        = 10;
-
-	private Writer mWriter                  = null;
-	private String mCurrentFilename         = null;
-	private long   mNextRolloverTime        = 0;
-
-	private DestinationDispatcherThread mDispatcherThread = null;
-
-	public String getDirectory() {
-		return mDirectory;
-	}
-
-	public void setDirectory(String directory) {
-		mDirectory = directory;
-	}
-
-	public String getFile() {
-		return mFile;
-	}
-
-	public void setFile(String file) {
-		mFile = file;
-	}
-
-	public String getEncoding() {
-		return mEncoding;
-	}
-
-	public void setEncoding(String encoding) {
-		mEncoding = encoding;
-	}
-
-	public boolean getIsAppend() {
-		return mIsAppend;
-	}
-
-	public void setIsAppend(boolean isAppend) {
-		mIsAppend = isAppend;
-	}
-
-	public int getRolloverIntervalSeconds() {
-		return mRolloverIntervalSeconds;
-	}
-
-	public void setRolloverIntervalSeconds(int rolloverIntervalSeconds) {
-		mRolloverIntervalSeconds = rolloverIntervalSeconds;
-	}
-
-	public String getArchiveDirectory() {
-		return mArchiveDirectory;
-	}
-
-	public void setArchiveDirectory(String archiveDirectory) {
-		mArchiveDirectory = archiveDirectory;
-	}
-
-	public int getArchiveFileCount() {
-		return mArchiveFileCount;
-	}
-
-	public void setArchiveFileCount(int archiveFileCount) {
-		mArchiveFileCount = archiveFileCount;
-	}
-
-
-	@Override
-	public void start(LogDestination<String> destination) {
-		LogLog.debug("==> LocalFileLogBuffer.start()");
-
-		openFile();
-
-		mDispatcherThread = new DestinationDispatcherThread(this, destination);
-
-		mDispatcherThread.start();
-
-		LogLog.debug("<== LocalFileLogBuffer.start()");
-	}
-
-	@Override
-	public void stop() {
-		LogLog.debug("==> LocalFileLogBuffer.stop()");
-		
-		DestinationDispatcherThread dispatcherThread = mDispatcherThread;
-		mDispatcherThread = null;
-
-		if(dispatcherThread != null && dispatcherThread.isAlive()) {
-			dispatcherThread.stopThread();
-
-			try {
-				dispatcherThread.join();
-			} catch (InterruptedException e) {
-				LogLog.warn("LocalFileLogBuffer.stop(): failed in waiting for DispatcherThread", e);
-			}
-		}
-
-		closeFile();
-
-		LogLog.debug("<== LocalFileLogBuffer.stop()");
-	}
-
-	@Override
-	public boolean isAvailable() {
-		return mWriter != null;
-	}
-
-	@Override
-	public boolean add(String log) {
-		boolean ret = false;
-
-		long now = System.currentTimeMillis();
-
-		if(now > mNextRolloverTime) {
-			rollover();
-		}
-
-		Writer writer = mWriter;
-
-		if(writer != null) {
-			try {
-				writer.write(log);
-
-				ret = true;
-			} catch(IOException excp) {
-				LogLog.warn("LocalFileLogBuffer.add(): write failed", excp);
-			}
-		} else {
-			LogLog.warn("LocalFileLogBuffer.add(): writer is null");
-		}
-
-		return ret;
-	}
-
-	private void openFile() {
-		LogLog.debug("==> LocalFileLogBuffer.openFile()");
-
-		closeFile();
-
-		mCurrentFilename = MiscUtil.replaceTokens(mDirectory + File.separator + mFile);
-
-		FileOutputStream ostream = null;
-		try {
-			ostream = new FileOutputStream(mCurrentFilename, mIsAppend);
-		} catch(Exception excp) {
-			MiscUtil.createParents(new File(mCurrentFilename));
-
-			try {
-				ostream = new FileOutputStream(mCurrentFilename, mIsAppend);
-			} catch(Exception ex) {
-				// ignore; error printed down
-			}
-		}
-
-		mWriter = createWriter(ostream);
-
-		if(mWriter != null) {
-			LogLog.debug("LocalFileLogBuffer.openFile(): opened file " + mCurrentFilename);
-
-			updateNextRolloverTime();
-		} else {
-			LogLog.warn("LocalFileLogBuffer.openFile(): failed to open file for write " + mCurrentFilename);
-
-			mCurrentFilename = null;
-		}
-
-		LogLog.debug("<== LocalFileLogBuffer.openFile()");
-	}
-
-	private void closeFile() {
-		LogLog.debug("==> LocalFileLogBuffer.closeFile()");
-
-		Writer writer = mWriter;
-
-		mWriter = null;
-
-		if(writer != null) {
-			try {
-				writer.flush();
-				writer.close();
-			} catch(IOException excp) {
-				LogLog.warn("LocalFileLogBuffer: failed to close file " + mCurrentFilename, excp);
-			}
-
-			if(mDispatcherThread != null) {
-				mDispatcherThread.addLogfile(mCurrentFilename);
-			}
-		}
-
-		LogLog.debug("<== LocalFileLogBuffer.closeFile()");
-	}
-
-	private void rollover() {
-		LogLog.debug("==> LocalFileLogBuffer.rollover()");
-
-		closeFile();
-
-		openFile();
-
-		LogLog.debug("<== LocalFileLogBuffer.rollover()");
-	}
-
-	public OutputStreamWriter createWriter(OutputStream os ) {
-	    OutputStreamWriter writer = null;
-
-	    if(os != null) {
-			if(mEncoding != null) {
-				try {
-					writer = new OutputStreamWriter(os, mEncoding);
-				} catch(UnsupportedEncodingException excp) {
-					LogLog.warn("LocalFileLogBuffer: failed to create output writer.", excp);
-				}
-			}
-	
-			if(writer == null) {
-				writer = new OutputStreamWriter(os);
-			}
-	    }
-
-	    return writer;
-	}
-
-	private void updateNextRolloverTime() {
-		mNextRolloverTime = MiscUtil.getNextRolloverTime(mNextRolloverTime, (mRolloverIntervalSeconds * 1000));
-	}
-
-	boolean isCurrentFilename(String filename) {
-		return mCurrentFilename != null && filename != null && filename.equals(mCurrentFilename);
-	}
-
-	@Override
-	public String toString() {
-		StringBuilder sb = new StringBuilder();
-
-		sb.append("LocalFileLogBuffer {");
-		sb.append("Directory=").append(mDirectory).append("; ");
-		sb.append("File=").append(mFile).append("; ");
-		sb.append("RolloverIntervaSeconds=").append(mRolloverIntervalSeconds).append("; ");
-		sb.append("ArchiveDirectory=").append(mArchiveDirectory).append("; ");
-		sb.append("ArchiveFileCount=").append(mArchiveFileCount);
-		sb.append("}");
-
-		return sb.toString();
-	}
-	
-	static class MiscUtil {
-		static String TOKEN_HOSTNAME             = "%hostname%";
-		static String TOKEN_APP_INSTANCE         = "%app-instance%";
-		static String TOKEN_FILE_OPEN_TIME_START = "%file-open-time:";
-		static String TOKEN_FILE_OPEN_TIME_END   = "%";
-		
-		static VMID sJvmID = new VMID();
-	
-		public static String replaceTokens(String str) {
-			if(str == null) {
-				return str;
-			}
-	
-			str = replaceHostname(str);
-			str = replaceAppInstance(str);
-			str = replaceFileOpenTime(str);
-	
-			return str;
-		}
-	
-		public static String replaceHostname(String str) {
-			if(!str.contains(TOKEN_HOSTNAME)) {
-				return str;
-			}
-	
-			String hostName = null;
-	
-			try {
-				hostName = InetAddress.getLocalHost().getHostName();
-			} catch (UnknownHostException excp) {
-				LogLog.warn("LocalFileLogBuffer", excp);
-			}
-	
-			if(hostName == null) {
-				hostName = "Unknown";
-			}
-	
-			return str.replaceAll(TOKEN_HOSTNAME, hostName);
-		}
-		
-		public static String replaceAppInstance(String str) {
-			if(!str.contains(TOKEN_APP_INSTANCE)) {
-				return str;
-			}
-	
-			String appInstance = Integer.toString(Math.abs(sJvmID.hashCode()));
-	
-			return str.replaceAll(TOKEN_APP_INSTANCE, appInstance);
-		}
-	
-		public static String replaceFileOpenTime(String str) {
-			Date now = new Date();
-	
-	        while(str.contains(TOKEN_FILE_OPEN_TIME_START)) {
-	            int tagStartPos = str.indexOf(TOKEN_FILE_OPEN_TIME_START);
-	            int tagEndPos   = str.indexOf(TOKEN_FILE_OPEN_TIME_END, tagStartPos + TOKEN_FILE_OPEN_TIME_START.length());
-	
-	            if(tagEndPos <= tagStartPos) {
-	            	break;
-	            }
-	
-	            String tag      = str.substring(tagStartPos, tagEndPos+1);
-	            String dtFormat = tag.substring(TOKEN_FILE_OPEN_TIME_START.length(), tag.lastIndexOf(TOKEN_FILE_OPEN_TIME_END));
-	
-	            String replaceStr = "";
-	
-	            if(dtFormat != null) {
-	                SimpleDateFormat sdf = new SimpleDateFormat(dtFormat);
-	
-	                replaceStr = sdf.format(now);
-	            }
-	
-	            str = str.replaceAll(tag, replaceStr);
-	        }
-	
-	        return str;
-		}
-	
-		public static void createParents(File file) {
-			if(file != null) {
-				String parentName = file.getParent();
-	
-				if (parentName != null) {
-					File parentDir = new File(parentName);
-	
-					if(!parentDir.exists()) {
-						if (!parentDir.mkdirs()) {
-							LogLog.warn("Creation of directory [" + parentName + "] failed!");
-						}
-					}
-				}
-			}
-		}
-
-		public static long getNextRolloverTime(long lastRolloverTime, long interval) {
-			long now = System.currentTimeMillis() / 1000 * 1000; // round to second
-
-			if(lastRolloverTime <= 0) {
-				// should this be set to the next multiple-of-the-interval from start of the day?
-				return now + interval;
-			} else if(lastRolloverTime <= now) {
-				long nextRolloverTime = now + interval;
-
-				// keep it at 'interval' boundary
-				long trimInterval = (nextRolloverTime - lastRolloverTime) % interval;
-
-				return nextRolloverTime - trimInterval;
-			} else {
-				return lastRolloverTime;
-			}
-		}
-	}
-}
-
-class DestinationDispatcherThread extends Thread {
-	private TreeSet<String>        mCompletedLogfiles = new TreeSet<String>();
-	private boolean                mStopThread        = false;
-	private LocalFileLogBuffer     mFileLogBuffer     = null;
-	private LogDestination<String> mDestination       = null;
-
-	private String         mCurrentLogfile = null;
-	private BufferedReader mReader         = null;
-
-	public DestinationDispatcherThread(LocalFileLogBuffer fileLogBuffer, LogDestination<String> destination) {
-		super(DestinationDispatcherThread.class.getSimpleName());
-
-		mFileLogBuffer = fileLogBuffer;
-		mDestination   = destination;
-
-		setDaemon(true);
-	}
-
-	public void addLogfile(String filename) {
-		LogLog.debug("==> DestinationDispatcherThread.addLogfile(" + filename + ")");
-
-		synchronized(mCompletedLogfiles) {
-			mCompletedLogfiles.add(filename);
-			mCompletedLogfiles.notify();
-		}
-
-		LogLog.debug("<== DestinationDispatcherThread.addLogfile(" + filename + ")");
-	}
-
-	public String getNextLogfile() {
-		synchronized(mCompletedLogfiles) {
-			return mCompletedLogfiles.pollFirst();
-		}
-	}
-
-	public void stopThread() {
-		mStopThread = true;
-	}
-
-	@Override
-	public void run() {
-		init();
-		
-		// destination start() should be from the dispatcher thread
-		mDestination.start();
-
-		int pollIntervalInMs = 1000;
-
-		while(! mStopThread) {
-			String logMsg = getNextLog();
-
-			if(logMsg == null) { // move to the next file
-				synchronized(mCompletedLogfiles) {
-					while(mCompletedLogfiles.isEmpty() && !mStopThread) {
-						try {
-							mCompletedLogfiles.wait(pollIntervalInMs);
-						} catch(InterruptedException excp) {
-							LogLog.warn("LocalFileLogBuffer.run(): failed to wait for log file", excp);
-						}
-					}
-					
-					if(!mCompletedLogfiles.isEmpty()) {
-						openNextFile();
-					}
-				}
-			} else { // deliver to the msg to destination
-				while(! mDestination.add(logMsg) && !mStopThread) {
-					try {
-						Thread.sleep(pollIntervalInMs);
-					} catch(InterruptedException excp) {
-						LogLog.warn("LocalFileLogBuffer.run(): failed to wait for destination to be available", excp);
-					}
-				}
-			} 
-		}
-
-		mDestination.stop();
-	}
-
-	private void init() {
-		LogLog.debug("==> DestinationDispatcherThread.init()");
-
-		String dirName   = MiscUtil.replaceTokens(mFileLogBuffer.getDirectory());
-		File   directory = new File(dirName);
-
-		if(directory.exists() && directory.isDirectory()) {
-			File[] files = directory.listFiles();
-
-			if(files != null) {
-				for(File file : files) {
-					if(file.exists() && file.canRead()) {
-						String filename = file.getAbsolutePath();
-						if(! mFileLogBuffer.isCurrentFilename(filename)) {
-							addLogfile(filename);
-						}
-					}
-				}
-			}
-		}
-
-		openNextFile();
-
-		LogLog.debug("<== DestinationDispatcherThread.init()");
-	}
-	
-	private String getNextLog() {
-		String log = null;
-
-		if(mReader != null) {
-			try {
-				log = mReader.readLine();
-			} catch (IOException excp) {
-				LogLog.warn("LocalFileLogBuffer.getNextLog(): failed to read from file " + mCurrentLogfile, excp);
-			}
-
-			if(log == null) {
-				closeCurrentFile();
-			}
-		}
-
-		return log;
-	}
-
-	private void openNextFile() {
-		LogLog.debug("==> openNextFile()");
-
-		closeCurrentFile();
-
-		while(mReader == null) {
-			mCurrentLogfile = getNextLogfile();
-			
-			if(mCurrentLogfile != null) {
-				try {
-					FileReader fr = new FileReader(mCurrentLogfile);
-	
-					mReader = new BufferedReader(fr);
-				} catch(FileNotFoundException excp) {
-					LogLog.warn("openNextFile(): error while opening file " + mCurrentLogfile, excp);
-				}
-			}
-		}
-
-		LogLog.debug("<== openNextFile(" + mCurrentLogfile + ")");
-	}
-	
-	private void closeCurrentFile() {
-		LogLog.debug("==> closeCurrentFile(" + mCurrentLogfile + ")");
-
-		if(mReader != null) {
-			try {
-				mReader.close();
-			} catch(IOException excp) {
-				// ignore
-			}
-		}
-		mReader = null;
-		
-		archiveCurrentFile();
-
-		LogLog.debug("<== closeCurrentFile(" + mCurrentLogfile + ")");
-	}
-
-	private void archiveCurrentFile() {
-		if(mCurrentLogfile != null) {
-			File   logFile         = new File(mCurrentLogfile);
-			String archiveFilename = MiscUtil.replaceTokens(mFileLogBuffer.getArchiveDirectory() + File.separator + logFile.getName());
-
-			try {
-				if(logFile.exists()) {
-					File archiveFile = new File(archiveFilename);
-
-					MiscUtil.createParents(archiveFile);
-
-					if(! logFile.renameTo(archiveFile)) {
-						// TODO: renameTo() does not work in all cases. in case of failure, copy the file contents to the destination and delete the file
-					}
-
-					// TODO: ensure no more than mFileLogBuffer.getArchiveFileCount() archive files are kept
-				}
-			} catch(Exception excp) {
-				LogLog.warn("archiveCurrentFile(): faile to move " + mCurrentLogfile + " to archive location " + archiveFilename, excp);
-			}
-		}
-		mCurrentLogfile = null;
-	}
-}
-

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/agents-common/src/main/java/org/apache/log4j/LogBuffer.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/log4j/LogBuffer.java b/agents-common/src/main/java/org/apache/log4j/LogBuffer.java
deleted file mode 100644
index 799aacb..0000000
--- a/agents-common/src/main/java/org/apache/log4j/LogBuffer.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.log4j;
-
-
-public interface LogBuffer<T> {
-	public void start(LogDestination<T> destination);
-
-	public void stop();
-
-	boolean isAvailable();
-
-	public boolean add(T log);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/agents-common/src/main/java/org/apache/log4j/LogDestination.java
----------------------------------------------------------------------
diff --git a/agents-common/src/main/java/org/apache/log4j/LogDestination.java b/agents-common/src/main/java/org/apache/log4j/LogDestination.java
deleted file mode 100644
index fd4e8f6..0000000
--- a/agents-common/src/main/java/org/apache/log4j/LogDestination.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.log4j;
-
-
-public interface LogDestination<T> {
-	public void start();
-
-	public void stop();
-
-	boolean isAvailable();
-
-	public boolean add(T log);
-}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/plugin-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java b/plugin-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java
index 570f20f..f986def 100644
--- a/plugin-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java
+++ b/plugin-common/src/main/java/org/apache/ranger/plugin/store/ServiceStore.java
@@ -19,7 +19,6 @@
 
 package org.apache.ranger.plugin.store;
 
-import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.ranger.plugin.model.RangerPolicy;

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/plugin-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java b/plugin-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java
index ed6d168..feac5d4 100644
--- a/plugin-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java
+++ b/plugin-common/src/main/java/org/apache/ranger/plugin/store/file/ServiceFileStore.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang.ObjectUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -39,8 +40,6 @@ import org.apache.ranger.plugin.util.ServicePolicies;
 public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 	private static final Log LOG = LogFactory.getLog(ServiceFileStore.class);
 
-	private List<RangerServiceDef> serviceDefs      = null;
-
 	private long nextServiceDefId = 0;
 	private long nextServiceId    = 0;
 	private long nextPolicyId     = 0;
@@ -89,8 +88,6 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 
 			ret = saveToFile(serviceDef, false);
 
-			addServiceDef(ret);
-
 			postCreate(ret);
 		} catch(Exception excp) {
 			LOG.warn("ServiceDefFileStore.createServiceDef(): failed to save service-def '" + serviceDef.getName() + "'", excp);
@@ -187,8 +184,6 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 			Path filePath = new Path(getServiceDefFile(id));
 
 			deleteFile(filePath);
-			
-			removeServiceDef(existing);
 
 			postDelete(existing);
 		} catch(Exception excp) {
@@ -236,7 +231,57 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 			LOG.debug("==> ServiceDefFileStore.getAllServiceDefs()");
 		}
 
-		List<RangerServiceDef> ret = serviceDefs;
+		List<RangerServiceDef> ret = new ArrayList<RangerServiceDef>();
+
+		try {
+			// load definitions for legacy services from embedded resources
+			String[] legacyServiceDefResources = {
+					"/service-defs/ranger-servicedef-hdfs.json",
+					"/service-defs/ranger-servicedef-hive.json",
+					"/service-defs/ranger-servicedef-hbase.json",
+					"/service-defs/ranger-servicedef-knox.json",
+					"/service-defs/ranger-servicedef-storm.json",
+			};
+			
+			for(String resource : legacyServiceDefResources) {
+				RangerServiceDef sd = loadFromResource(resource, RangerServiceDef.class);
+				
+				if(sd != null) {
+					ret.add(sd);
+				}
+			}
+			nextServiceDefId = getMaxId(ret) + 1;
+
+			// load service definitions from file system
+			List<RangerServiceDef> sds = loadFromDir(new Path(getDataDir()), FILE_PREFIX_SERVICE_DEF, RangerServiceDef.class);
+			
+			if(sds != null) {
+				for(RangerServiceDef sd : sds) {
+					if(sd != null) {
+						if(isLegacyServiceDef(sd)) {
+							LOG.warn("Found in-built service-def '" + sd.getName() + "'  under " + getDataDir() + ". Ignorning");
+
+							continue;
+						}
+						
+						// if the ServiceDef is already found, remove the earlier definition
+						for(int i = 0; i < ret.size(); i++) {
+							RangerServiceDef currSd = ret.get(i);
+							
+							if(StringUtils.equals(currSd.getName(), sd.getName()) ||
+							   ObjectUtils.equals(currSd.getId(), sd.getId())) {
+								ret.remove(i);
+							}
+						}
+
+						ret.add(sd);
+					}
+				}
+			}
+			nextServiceDefId = getMaxId(ret) + 1;
+		} catch(Exception excp) {
+			LOG.error("ServiceDefFileStore.getAllServiceDefs(): failed to read service-defs", excp);
+		}
 
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("<== ServiceDefFileStore.getAllServiceDefs(): count=" + (ret == null ? 0 : ret.size()));
@@ -423,6 +468,8 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 
 		try {
 			ret = loadFromDir(new Path(getDataDir()), FILE_PREFIX_SERVICE, RangerService.class);
+
+			nextServiceId = getMaxId(ret) + 1;
 		} catch(Exception excp) {
 			LOG.error("ServiceFileStore.getAllServices(): failed to read services", excp);
 		}
@@ -646,6 +693,8 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 
 		try {
 			ret = loadFromDir(new Path(getDataDir()), FILE_PREFIX_POLICY, RangerPolicy.class);
+
+			nextPolicyId  = getMaxId(ret) + 1;
 		} catch(Exception excp) {
 			LOG.error("ServiceFileStore.getAllPolicies(): failed to read policies", excp);
 		}
@@ -776,9 +825,6 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 		}
 
 		super.init();
-		
-		initServiceDef();
-		initService();
 
 		if(LOG.isDebugEnabled()) {
 			LOG.debug("<== ServiceFileStore.init()");
@@ -786,94 +832,6 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 	}
 
 
-	private void initServiceDef() {
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> ServiceDefFileStore.initServiceDef()");
-		}
-
-		super.init();
-
-		try {
-			serviceDefs = new ArrayList<RangerServiceDef>();
-
-			// load definitions for legacy services from embedded resources
-			String[] legacyServiceDefResources = {
-					"/service-defs/ranger-servicedef-hdfs.json",
-					"/service-defs/ranger-servicedef-hive.json",
-					"/service-defs/ranger-servicedef-hbase.json",
-					"/service-defs/ranger-servicedef-knox.json",
-					"/service-defs/ranger-servicedef-storm.json",
-			};
-			
-			for(String resource : legacyServiceDefResources) {
-				RangerServiceDef sd = loadFromResource(resource, RangerServiceDef.class);
-				
-				if(sd != null) {
-					serviceDefs.add(sd);
-				}
-			}
-			nextServiceDefId = getMaxId(serviceDefs) + 1;
-
-			// load service definitions from file system
-			List<RangerServiceDef> sds = loadFromDir(new Path(getDataDir()), FILE_PREFIX_SERVICE_DEF, RangerServiceDef.class);
-			
-			if(sds != null) {
-				for(RangerServiceDef sd : sds) {
-					if(sd != null) {
-						if(isLegacyServiceDef(sd)) {
-							LOG.warn("Found in-built service-def '" + sd.getName() + "'  under " + getDataDir() + ". Ignorning");
-
-							continue;
-						}
-
-						RangerServiceDef existingSd = findServiceDefByName(sd.getName());
-
-						if(existingSd != null) {
-							removeServiceDef(existingSd);
-						}
-
-						existingSd = findServiceDefById(sd.getId());
-
-						if(existingSd != null) {
-							removeServiceDef(existingSd);
-						}
-
-						serviceDefs.add(sd);
-					}
-				}
-			}
-			nextServiceDefId = getMaxId(serviceDefs) + 1;
-		} catch(Exception excp) {
-			LOG.error("ServiceDefFileStore.initServiceDef(): failed to read service-defs", excp);
-		}
-
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("<== ServiceDefFileStore.initServiceDef()");
-		}
-	}
-
-	private void initService() {
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("==> ServiceFileStore.initService()");
-		}
-
-		super.init();
-
-		try {
-			List<RangerService> services = loadFromDir(new Path(getDataDir()), FILE_PREFIX_SERVICE, RangerService.class);
-			List<RangerPolicy>  policies = loadFromDir(new Path(getDataDir()), FILE_PREFIX_POLICY, RangerPolicy.class);
-
-			nextServiceId = getMaxId(services) + 1;
-			nextPolicyId  = getMaxId(policies) + 1;
-		} catch(Exception excp) {
-			LOG.error("ServiceDefFileStore.initService() failed", excp);
-		}
-
-		if(LOG.isDebugEnabled()) {
-			LOG.debug("<== ServiceFileStore.initService()");
-		}
-	}
-
 	private void handleServiceRename(RangerService service, String oldName) throws Exception {
 		List<RangerPolicy> policies = getAllPolicies();
 
@@ -931,9 +889,11 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 		saveToFile(service, true);
 	}
 
-	private RangerServiceDef findServiceDefById(long id) {
+	private RangerServiceDef findServiceDefById(long id) throws Exception {
 		RangerServiceDef ret = null;
 
+		List<RangerServiceDef> serviceDefs = getAllServiceDefs();
+
 		for(RangerServiceDef sd : serviceDefs) {
 			if(sd != null && sd.getId() != null && sd.getId().longValue() == id) {
 				ret = sd;
@@ -945,9 +905,11 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 		return ret;
 	}
 
-	private RangerServiceDef findServiceDefByName(String sdName) {
+	private RangerServiceDef findServiceDefByName(String sdName) throws Exception {
 		RangerServiceDef ret = null;
 
+		List<RangerServiceDef> serviceDefs = getAllServiceDefs();
+
 		for(RangerServiceDef sd : serviceDefs) {
 			if(sd != null && StringUtils.equalsIgnoreCase(sd.getName(), sdName)) {
 				ret = sd;
@@ -959,14 +921,6 @@ public class ServiceFileStore extends BaseFileStore implements ServiceStore {
 		return ret;
 	}
 
-	private void addServiceDef(RangerServiceDef sd) {
-		serviceDefs.add(sd);
-	}
-
-	private void removeServiceDef(RangerServiceDef sd) {
-		serviceDefs.remove(sd);
-	}
-
 	private boolean isLegacyServiceDef(RangerServiceDef sd) {
 		return sd == null ? false : (isLegacyServiceDef(sd.getName()) || isLegacyServiceDef(sd.getId()));
 	}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/plugin-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java
----------------------------------------------------------------------
diff --git a/plugin-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java b/plugin-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java
index 489b5c0..12d616c 100644
--- a/plugin-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java
+++ b/plugin-common/src/main/java/org/apache/ranger/plugin/util/PolicyRefresher.java
@@ -53,6 +53,20 @@ public class PolicyRefresher extends Thread {
 		}
 	}
 	
+	/**
+	 * @return the pollingIntervalMilliSeconds
+	 */
+	public long getPollingIntervalMilliSeconds() {
+		return pollingIntervalMilliSeconds;
+	}
+
+	/**
+	 * @param pollingIntervalMilliSeconds the pollingIntervalMilliSeconds to set
+	 */
+	public void setPollingIntervalMilliSeconds(long pollingIntervalMilliSeconds) {
+		this.pollingIntervalMilliSeconds = pollingIntervalMilliSeconds;
+	}
+
 	public void stopRefresher() {
 		shutdownFlag = true;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/plugin-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java
----------------------------------------------------------------------
diff --git a/plugin-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java b/plugin-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java
index 16e4fc5..722c8a7 100644
--- a/plugin-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java
+++ b/plugin-common/src/test/java/org/apache/ranger/plugin/store/TestServiceStore.java
@@ -38,23 +38,27 @@ import org.junit.Test;
 public class TestServiceStore {
 	static ServiceStore svcStore    = null;
 
-	static String sdName      = "svcDef-unit-test-TestServiceStore";
-	static String serviceName = "svc-unit-test-TestServiceStore";
-	static String policyName  = "testPolicy-1";
+	static final String sdName      = "svcDef-unit-test-TestServiceStore";
+	static final String serviceName = "svc-unit-test-TestServiceStore";
+	static final String policyName  = "testPolicy-1";
 
 	@BeforeClass
 	public static void setupTest() throws Exception {
 		svcStore = ServiceStoreFactory.instance().getServiceStore();
 
 		// cleanup if the test service and service-def if they already exist
-		RangerService svc = svcStore.getServiceByName(serviceName);
-		if(svc != null) {
-			svcStore.deleteService(svc.getId());
+		List<RangerService> services = svcStore.getAllServices();
+		for(RangerService service : services) {
+			if(service.getName().startsWith(serviceName)) {
+				svcStore.deleteService(service.getId());
+			}
 		}
 
-		RangerServiceDef svcDef = svcStore.getServiceDefByName(sdName);
-		if(svcDef != null) {
-			svcStore.deleteServiceDef(svcDef.getId());
+		List<RangerServiceDef> serviceDefs = svcStore.getAllServiceDefs();
+		for(RangerServiceDef serviceDef : serviceDefs) {
+			if(serviceDef.getName().startsWith(sdName)) {
+				svcStore.deleteServiceDef(serviceDef.getId());
+			}
 		}
 	}
 
@@ -205,7 +209,7 @@ public class TestServiceStore {
 		assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getServiceId(), updatedSvc.getId());
 		assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicyVersion(), updatedSvc.getPolicyVersion());
 		assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicyUpdateTime(), updatedSvc.getPolicyUpdateTime());
-		assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getServiceDef(), updatedSd);
+		assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getServiceDef().getId(), updatedSd.getId());
 		assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicies().size(), 1);
 		assertEquals("getServicePolicies(" + updatedSvc.getName() + ") failed", svcPolicies.getPolicies().get(0).getName(), updatedPolicy.getName());
 

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/plugin-common/src/test/java/org/apache/ranger/plugin/util/TestPolicyRefresher.java
----------------------------------------------------------------------
diff --git a/plugin-common/src/test/java/org/apache/ranger/plugin/util/TestPolicyRefresher.java b/plugin-common/src/test/java/org/apache/ranger/plugin/util/TestPolicyRefresher.java
index 030c1f1..a1da8c2 100644
--- a/plugin-common/src/test/java/org/apache/ranger/plugin/util/TestPolicyRefresher.java
+++ b/plugin-common/src/test/java/org/apache/ranger/plugin/util/TestPolicyRefresher.java
@@ -42,15 +42,17 @@ public class TestPolicyRefresher {
 	static ServiceStore           svcStore     = null;
 	static PolicyRefresher        refresher    = null;
 
-	static long                   sleepTimeInMs = 35 * 1000;
-	static String                 sdName        = "hbase";
-	static String                 svcName       = "svc-unit-test-TestPolicyRefresher";
-	static RangerService          svc           = null;
-	static RangerPolicy           policy1       = null;
-	static RangerPolicy           policy2       = null;
+	static final long   pollingIntervalInMs = 5 * 1000;
+	static final long   sleepTimeInMs       = pollingIntervalInMs + (5 * 1000);
+	static final String sdName              = "hbase";
+	static final String svcName             = "svc-unit-test-TestPolicyRefresher";
 
-	static boolean                isPolicyRefreshed = false;
-	static long                   policyCount       = 0;
+	static RangerService svc     = null;
+	static RangerPolicy  policy1 = null;
+	static RangerPolicy  policy2 = null;
+
+	static boolean       isPolicyRefreshed = false;
+	static long          policyCount       = 0;
 
 
 	/**
@@ -77,6 +79,7 @@ public class TestPolicyRefresher {
 		};
 
 		refresher = new PolicyRefresher(policyEngine, svcName, svcStore);
+		refresher.setPollingIntervalMilliSeconds(pollingIntervalInMs);
 		refresher.start();
 
 		// create a service

http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/fbe800a1/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
----------------------------------------------------------------------
diff --git a/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java b/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
index 4227c90..4a11626 100644
--- a/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
+++ b/security-admin/src/main/java/org/apache/ranger/db/RangerDaoManager.java
@@ -50,7 +50,10 @@ public class RangerDaoManager extends RangerDaoManagerBase {
 	}
 
 	public EntityManager getEntityManager(String persistenceContextUnit) {
-		logger.error("RangerDaoManager.getEntityManager(" + persistenceContextUnit + ")");
+		if(logger.isDebugEnabled()) {
+			logger.debug("RangerDaoManager.getEntityManager(" + persistenceContextUnit + ")");
+		}
+
 		if (persistenceContextUnit.equalsIgnoreCase("loggingPU")) {
 			return loggingEM;
 		}