You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2017/09/27 04:25:27 UTC

[3/7] atlas git commit: ATLAS-2179: Split Atlas client library to avoid unnecessary dependencies

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/client/src/main/java/org/apache/atlas/security/SecureClientUtils.java
----------------------------------------------------------------------
diff --git a/client/src/main/java/org/apache/atlas/security/SecureClientUtils.java b/client/src/main/java/org/apache/atlas/security/SecureClientUtils.java
deleted file mode 100644
index d5392b2..0000000
--- a/client/src/main/java/org/apache/atlas/security/SecureClientUtils.java
+++ /dev/null
@@ -1,248 +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.atlas.security;
-
-import com.sun.jersey.api.client.config.DefaultClientConfig;
-import com.sun.jersey.client.urlconnection.HttpURLConnectionFactory;
-import com.sun.jersey.client.urlconnection.URLConnectionClientHandler;
-import org.apache.atlas.AtlasException;
-import org.apache.commons.lang.StringUtils;
-import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.security.UserGroupInformation;
-import org.apache.hadoop.security.alias.CredentialProviderFactory;
-import org.apache.hadoop.security.authentication.client.Authenticator;
-import org.apache.hadoop.security.authentication.client.ConnectionConfigurator;
-import org.apache.hadoop.security.ssl.SSLFactory;
-import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticatedURL;
-import org.apache.hadoop.security.token.delegation.web.DelegationTokenAuthenticator;
-import org.apache.hadoop.security.token.delegation.web.KerberosDelegationTokenAuthenticator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLSocketFactory;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.net.HttpURLConnection;
-import java.net.URL;
-import java.net.URLConnection;
-import java.security.GeneralSecurityException;
-import java.security.PrivilegedExceptionAction;
-
-import static org.apache.atlas.security.SecurityProperties.CERT_STORES_CREDENTIAL_PROVIDER_PATH;
-import static org.apache.atlas.security.SecurityProperties.CLIENT_AUTH_KEY;
-import static org.apache.atlas.security.SecurityProperties.KEYSTORE_FILE_KEY;
-import static org.apache.atlas.security.SecurityProperties.TRUSTSTORE_FILE_KEY;
-
-/**
- *
- */
-public class SecureClientUtils {
-
-    public final static int DEFAULT_SOCKET_TIMEOUT_IN_MSECS = 1 * 60 * 1000; // 1 minute
-    private static final Logger LOG = LoggerFactory.getLogger(SecureClientUtils.class);
-
-
-    public static URLConnectionClientHandler getClientConnectionHandler(DefaultClientConfig config,
-            org.apache.commons.configuration.Configuration clientConfig, String doAsUser,
-            final UserGroupInformation ugi) {
-        config.getProperties().put(URLConnectionClientHandler.PROPERTY_HTTP_URL_CONNECTION_SET_METHOD_WORKAROUND, true);
-        Configuration conf = new Configuration();
-        conf.addResource(conf.get(SSLFactory.SSL_CLIENT_CONF_KEY, SecurityProperties.SSL_CLIENT_PROPERTIES));
-        UserGroupInformation.setConfiguration(conf);
-        final ConnectionConfigurator connConfigurator = newConnConfigurator(conf);
-
-        Authenticator authenticator = new KerberosDelegationTokenAuthenticator();
-
-        authenticator.setConnectionConfigurator(connConfigurator);
-        final DelegationTokenAuthenticator finalAuthenticator = (DelegationTokenAuthenticator) authenticator;
-        final DelegationTokenAuthenticatedURL.Token token = new DelegationTokenAuthenticatedURL.Token();
-        HttpURLConnectionFactory httpURLConnectionFactory = null;
-        try {
-            UserGroupInformation ugiToUse = ugi != null ? ugi : UserGroupInformation.getCurrentUser();
-            final UserGroupInformation actualUgi =
-                    (ugiToUse.getAuthenticationMethod() == UserGroupInformation.AuthenticationMethod.PROXY)
-                    ? ugiToUse.getRealUser() : ugiToUse;
-            LOG.info("Real User: {}, is from ticket cache? {}", actualUgi, actualUgi.isLoginTicketBased());
-            if (StringUtils.isEmpty(doAsUser)) {
-                doAsUser = actualUgi.getShortUserName();
-            }
-            LOG.info("doAsUser: {}", doAsUser);
-            final String finalDoAsUser = doAsUser;
-            httpURLConnectionFactory = new HttpURLConnectionFactory() {
-                @Override
-                public HttpURLConnection getHttpURLConnection(final URL url) throws IOException {
-                    try {
-                        return actualUgi.doAs(new PrivilegedExceptionAction<HttpURLConnection>() {
-                            @Override
-                            public HttpURLConnection run() throws Exception {
-                                try {
-                                    return new DelegationTokenAuthenticatedURL(finalAuthenticator, connConfigurator)
-                                        .openConnection(url, token, finalDoAsUser);
-                                } catch (Exception e) {
-                                    throw new IOException(e);
-                                }
-                            }
-                        });
-                    } catch (Exception e) {
-                        if (e instanceof IOException) {
-                            throw (IOException) e;
-                        } else {
-                            throw new IOException(e);
-                        }
-                    }
-                }
-            };
-        } catch (IOException e) {
-            LOG.warn("Error obtaining user", e);
-        }
-
-        return new URLConnectionClientHandler(httpURLConnectionFactory);
-    }
-
-    private final static ConnectionConfigurator DEFAULT_TIMEOUT_CONN_CONFIGURATOR = new ConnectionConfigurator() {
-        @Override
-        public HttpURLConnection configure(HttpURLConnection conn) throws IOException {
-            setTimeouts(conn, DEFAULT_SOCKET_TIMEOUT_IN_MSECS);
-            return conn;
-        }
-    };
-
-    private static ConnectionConfigurator newConnConfigurator(Configuration conf) {
-        try {
-            return newSslConnConfigurator(DEFAULT_SOCKET_TIMEOUT_IN_MSECS, conf);
-        } catch (Exception e) {
-            LOG.debug("Cannot load customized ssl related configuration. " + "Fallback to system-generic settings.", e);
-            return DEFAULT_TIMEOUT_CONN_CONFIGURATOR;
-        }
-    }
-
-    private static ConnectionConfigurator newSslConnConfigurator(final int timeout, Configuration conf)
-    throws IOException, GeneralSecurityException {
-        final SSLFactory factory;
-        final SSLSocketFactory sf;
-        final HostnameVerifier hv;
-
-        factory = new SSLFactory(SSLFactory.Mode.CLIENT, conf);
-        factory.init();
-        sf = factory.createSSLSocketFactory();
-        hv = factory.getHostnameVerifier();
-
-        return new ConnectionConfigurator() {
-            @Override
-            public HttpURLConnection configure(HttpURLConnection conn) throws IOException {
-                if (conn instanceof HttpsURLConnection) {
-                    HttpsURLConnection c = (HttpsURLConnection) conn;
-                    c.setSSLSocketFactory(sf);
-                    c.setHostnameVerifier(hv);
-                }
-                setTimeouts(conn, timeout);
-                return conn;
-            }
-        };
-    }
-
-    private static void setTimeouts(URLConnection connection, int socketTimeout) {
-        connection.setConnectTimeout(socketTimeout);
-        connection.setReadTimeout(socketTimeout);
-    }
-
-    private static File getSSLClientFile() throws AtlasException {
-        String confLocation = System.getProperty("atlas.conf");
-        File sslDir;
-        try {
-            if (confLocation == null) {
-                String persistDir = null;
-                URL resource = SecureClientUtils.class.getResource("/");
-                if (resource != null) {
-                    persistDir = resource.toURI().getPath();
-                }
-                assert persistDir != null;
-                sslDir = new File(persistDir);
-            } else {
-                sslDir = new File(confLocation);
-            }
-            LOG.info("ssl-client.xml will be created in {}", sslDir);
-        } catch (Exception e) {
-            throw new AtlasException("Failed to find client configuration directory", e);
-        }
-        return new File(sslDir, SecurityProperties.SSL_CLIENT_PROPERTIES);
-    }
-
-    public static void persistSSLClientConfiguration(org.apache.commons.configuration.Configuration clientConfig)
-    throws AtlasException, IOException {
-        //trust settings
-        Configuration configuration = new Configuration(false);
-        File sslClientFile = getSSLClientFile();
-        if (!sslClientFile.exists()) {
-            configuration.set("ssl.client.truststore.type", "jks");
-            configuration.set("ssl.client.truststore.location", clientConfig.getString(TRUSTSTORE_FILE_KEY));
-            if (clientConfig.getBoolean(CLIENT_AUTH_KEY, false)) {
-                // need to get client key properties
-                configuration.set("ssl.client.keystore.location", clientConfig.getString(KEYSTORE_FILE_KEY));
-                configuration.set("ssl.client.keystore.type", "jks");
-            }
-            // add the configured credential provider
-            configuration.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH,
-                    clientConfig.getString(CERT_STORES_CREDENTIAL_PROVIDER_PATH));
-            String hostnameVerifier = clientConfig.getString(SSLFactory.SSL_HOSTNAME_VERIFIER_KEY);
-            if (hostnameVerifier != null) {
-                configuration.set(SSLFactory.SSL_HOSTNAME_VERIFIER_KEY, hostnameVerifier);
-            }
-
-            configuration.writeXml(new FileWriter(sslClientFile));
-        }
-    }
-
-    public static URLConnectionClientHandler getUrlConnectionClientHandler() {
-        return new URLConnectionClientHandler(new HttpURLConnectionFactory() {
-            @Override
-            public HttpURLConnection getHttpURLConnection(URL url)
-                    throws IOException {
-                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-
-                if (connection instanceof HttpsURLConnection) {
-                    LOG.debug("Attempting to configure HTTPS connection using client "
-                            + "configuration");
-                    final SSLFactory factory;
-                    final SSLSocketFactory sf;
-                    final HostnameVerifier hv;
-
-                    try {
-                        Configuration conf = new Configuration();
-                        conf.addResource(conf.get(SSLFactory.SSL_CLIENT_CONF_KEY, SecurityProperties.SSL_CLIENT_PROPERTIES));
-                        UserGroupInformation.setConfiguration(conf);
-
-                        HttpsURLConnection c = (HttpsURLConnection) connection;
-                        factory = new SSLFactory(SSLFactory.Mode.CLIENT, conf);
-                        factory.init();
-                        sf = factory.createSSLSocketFactory();
-                        hv = factory.getHostnameVerifier();
-                        c.setSSLSocketFactory(sf);
-                        c.setHostnameVerifier(hv);
-                    } catch (Exception e) {
-                        LOG.info("Unable to configure HTTPS connection from "
-                                + "configuration.  Leveraging JDK properties.");
-                    }
-                }
-                return connection;
-            }
-        });
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/client/src/test/java/org/apache/atlas/AtlasClientTest.java
----------------------------------------------------------------------
diff --git a/client/src/test/java/org/apache/atlas/AtlasClientTest.java b/client/src/test/java/org/apache/atlas/AtlasClientTest.java
deleted file mode 100644
index c33906a..0000000
--- a/client/src/test/java/org/apache/atlas/AtlasClientTest.java
+++ /dev/null
@@ -1,474 +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.atlas;
-
-import com.sun.jersey.api.client.Client;
-import com.sun.jersey.api.client.ClientHandlerException;
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.WebResource;
-import org.apache.atlas.model.legacy.EntityResult;
-import org.apache.atlas.typesystem.Referenceable;
-import org.apache.atlas.typesystem.json.InstanceSerialization;
-import org.apache.commons.configuration.Configuration;
-import org.apache.hadoop.security.UserGroupInformation;
-import org.codehaus.jettison.json.JSONObject;
-import org.mockito.Matchers;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.testng.annotations.BeforeMethod;
-import org.testng.annotations.Test;
-
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
-import java.net.ConnectException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.Arrays;
-import java.util.List;
-
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertFalse;
-import static org.testng.Assert.assertNull;
-import static org.testng.Assert.assertTrue;
-import static org.testng.Assert.fail;
-
-public class AtlasClientTest {
-
-    @Mock
-    private WebResource service;
-    @Mock
-    private WebResource.Builder resourceBuilderMock;
-
-    @Mock
-    private Configuration configuration;
-
-    @Mock
-    private Client client;
-
-    @BeforeMethod
-    public void setup() {
-        MockitoAnnotations.initMocks(this);
-    }
-
-    @Test
-    public void shouldVerifyServerIsReady() throws AtlasServiceException {
-        setupRetryParams();
-
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.VERSION, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        when(response.getEntity(String.class)).thenReturn("{\"Version\":\"version-rrelease\",\"Name\":\"apache-atlas\"," +
-                "\"Description\":\"Metadata Management and Data Governance Platform over Hadoop\"}");
-        when(builder.method(AtlasClient.API.VERSION.getMethod(), ClientResponse.class, null)).thenReturn(response);
-
-        assertTrue(atlasClient.isServerReady());
-    }
-
-    @Test
-    public void testCreateEntity() throws Exception {
-        setupRetryParams();
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.CREATE_ENTITY, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.CREATED.getStatusCode());
-
-        JSONObject jsonResponse = new JSONObject(new EntityResult(Arrays.asList("id"), null, null).toString());
-        when(response.getEntity(String.class)).thenReturn(jsonResponse.toString());
-        when(response.getLength()).thenReturn(jsonResponse.length());
-        String entityJson = InstanceSerialization.toJson(new Referenceable("type"), true);
-        when(builder.method(anyString(), Matchers.<Class>any(), anyString())).thenReturn(response);
-
-        List<String> ids = atlasClient.createEntity(entityJson);
-        assertEquals(ids.size(), 1);
-        assertEquals(ids.get(0), "id");
-    }
-
-    private WebResource.Builder setupBuilder(AtlasClient.API api, WebResource webResource) {
-        when(webResource.path(api.getPath())).thenReturn(service);
-        return getBuilder(service);
-    }
-
-    @Test
-    public void shouldReturnFalseIfServerIsNotReady() throws AtlasServiceException {
-        setupRetryParams();
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.VERSION, service);
-        when(builder.method(AtlasClient.API.VERSION.getMethod(), ClientResponse.class, null)).thenThrow(
-                new ClientHandlerException());
-        assertFalse(atlasClient.isServerReady());
-    }
-
-    @Test
-    public void shouldReturnFalseIfServiceIsUnavailable() throws AtlasServiceException {
-        setupRetryParams();
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.VERSION, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.SERVICE_UNAVAILABLE.getStatusCode());
-        when(response.getClientResponseStatus()).thenReturn(ClientResponse.Status.SERVICE_UNAVAILABLE);
-
-        when(builder.method(AtlasClient.API.VERSION.getMethod(), ClientResponse.class, null)).thenReturn(response);
-
-        assertFalse(atlasClient.isServerReady());
-    }
-
-    @Test(expectedExceptions = AtlasServiceException.class)
-    public void shouldThrowErrorIfAnyResponseOtherThanServiceUnavailable() throws AtlasServiceException {
-        setupRetryParams();
-
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.VERSION, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
-        when(response.getClientResponseStatus()).thenReturn(ClientResponse.Status.INTERNAL_SERVER_ERROR);
-
-        when(builder.method(AtlasClient.API.VERSION.getMethod(), ClientResponse.class, null)).thenReturn(response);
-
-        atlasClient.isServerReady();
-        fail("Should throw exception");
-    }
-    
-    @Test
-    public void shouldGetAdminStatus() throws AtlasServiceException {
-        setupRetryParams();
-
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.STATUS, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        String activeStatus = "{\"Status\":\"Active\"}";
-        when(response.getEntity(String.class)).thenReturn(activeStatus);
-        when(response.getLength()).thenReturn(activeStatus.length());
-        when(builder.method(AtlasClient.API.STATUS.getMethod(), ClientResponse.class, null)).thenReturn(response);
-
-//         Fix after AtlasBaseClient
-//        atlasClient.setService();
-
-
-        String status = atlasClient.getAdminStatus();
-        assertEquals(status, "Active");
-    }
-
-    @Test(expectedExceptions = AtlasServiceException.class)
-    public void shouldReturnStatusAsUnknownOnException() throws AtlasServiceException {
-        setupRetryParams();
-
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.STATUS, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode());
-        when(response.getClientResponseStatus()).thenReturn(ClientResponse.Status.INTERNAL_SERVER_ERROR);
-        when(builder.method(AtlasClient.API.STATUS.getMethod(), ClientResponse.class, null)).thenReturn(response);
-
-        String status = atlasClient.getAdminStatus();
-        fail("Should fail with AtlasServiceException");
-    }
-
-    @Test
-    public void shouldReturnStatusAsUnknownIfJSONIsInvalid() throws AtlasServiceException {
-        setupRetryParams();
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.STATUS, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        when(response.getEntity(String.class)).thenReturn("{\"status\":\"Active\"}");
-        when(builder.method(AtlasClient.API.STATUS.getMethod(), ClientResponse.class, null)).thenReturn(response);
-
-        String status = atlasClient.getAdminStatus();
-        assertEquals(status, AtlasClient.UNKNOWN_STATUS);
-    }
-    
-    @Test
-    public void shouldReturnBaseURLAsPassedInURL() {
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        String serviceURL = atlasClient.determineActiveServiceURL(new String[]{"http://localhost:21000"}, client);
-        assertEquals(serviceURL, "http://localhost:21000");
-    }
-
-    @Test
-    public void shouldSelectActiveAmongMultipleServersIfHAIsEnabled() {
-        setupRetryParams();
-
-        when(client.resource(UriBuilder.fromUri("http://localhost:31000").build())).thenReturn(service);
-        when(client.resource(UriBuilder.fromUri("http://localhost:41000").build())).thenReturn(service);
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.STATUS, service);
-        ClientResponse firstResponse = mock(ClientResponse.class);
-        when(firstResponse.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        String passiveStatus = "{\"Status\":\"PASSIVE\"}";
-        when(firstResponse.getEntity(String.class)).thenReturn(passiveStatus);
-        when(firstResponse.getLength()).thenReturn(passiveStatus.length());
-        ClientResponse secondResponse = mock(ClientResponse.class);
-        when(secondResponse.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        String activeStatus = "{\"Status\":\"ACTIVE\"}";
-        when(secondResponse.getEntity(String.class)).thenReturn(activeStatus);
-        when(secondResponse.getLength()).thenReturn(activeStatus.length());
-        when(builder.method(AtlasClient.API.STATUS.getMethod(), ClientResponse.class, null)).
-                thenReturn(firstResponse).thenReturn(firstResponse).thenReturn(firstResponse).
-                thenReturn(secondResponse);
-
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        String serviceURL = atlasClient.determineActiveServiceURL(
-                new String[]{"http://localhost:31000", "http://localhost:41000"},
-                client);
-        assertEquals(serviceURL, "http://localhost:41000");
-    }
-
-    @Test
-    public void shouldRetryUntilServiceBecomesActive() {
-        setupRetryParams();
-
-        when(client.resource(UriBuilder.fromUri("http://localhost:31000").build())).thenReturn(service);
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.STATUS, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        when(response.getEntity(String.class)).thenReturn("{\"Status\":\"BECOMING_ACTIVE\"}");
-        ClientResponse nextResponse = mock(ClientResponse.class);
-        when(nextResponse.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        String activeStatus = "{\"Status\":\"ACTIVE\"}";
-        when(response.getEntity(String.class)).thenReturn(activeStatus);
-        when(response.getLength()).thenReturn(activeStatus.length());
-        when(builder.method(AtlasClient.API.STATUS.getMethod(), ClientResponse.class, null)).
-                thenReturn(response).thenReturn(response).thenReturn(nextResponse);
-
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        String serviceURL = atlasClient.determineActiveServiceURL(
-                new String[] {"http://localhost:31000","http://localhost:41000"},
-                client);
-        assertEquals(serviceURL, "http://localhost:31000");
-    }
-
-    @Test
-    public void shouldRetryIfCannotConnectToServiceInitially() {
-        setupRetryParams();
-
-        when(client.resource(UriBuilder.fromUri("http://localhost:31000").build())).thenReturn(service);
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.STATUS, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        when(response.getEntity(String.class)).thenReturn("{\"Status\":\"BECOMING_ACTIVE\"}");
-        ClientResponse nextResponse = mock(ClientResponse.class);
-        when(nextResponse.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        String activeStatus = "{\"Status\":\"ACTIVE\"}";
-        when(response.getEntity(String.class)).thenReturn(activeStatus);
-        when(response.getLength()).thenReturn(activeStatus.length());
-        when(builder.method(AtlasClient.API.STATUS.getMethod(), ClientResponse.class, null)).
-                thenThrow(new ClientHandlerException("Simulating connection exception")).
-                thenReturn(response).
-                thenReturn(nextResponse);
-
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-        atlasClient.setService(service);
-        atlasClient.setConfiguration(configuration);
-
-        String serviceURL = atlasClient.determineActiveServiceURL(
-                new String[] {"http://localhost:31000","http://localhost:41000"},
-                client);
-        assertEquals(serviceURL, "http://localhost:31000");
-    }
-
-    @Test(expectedExceptions = IllegalArgumentException.class)
-    public void shouldThrowExceptionIfActiveServerIsNotFound() {
-        setupRetryParams();
-
-        when(client.resource(UriBuilder.fromUri("http://localhost:31000").build())).thenReturn(service);
-        WebResource.Builder builder = setupBuilder(AtlasClient.API.STATUS, service);
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        when(response.getEntity(String.class)).thenReturn("{\"Status\":\"BECOMING_ACTIVE\"}");
-        when(builder.method(AtlasClient.API.STATUS.getMethod(), ClientResponse.class, null)).
-                thenThrow(new ClientHandlerException("Simulating connection exception")).
-                thenReturn(response).
-                thenReturn(response);
-
-        AtlasClient atlasClient = new AtlasClient(service, configuration);
-
-        String serviceURL = atlasClient.determineActiveServiceURL(
-                new String[] {"http://localhost:31000","http://localhost:41000"},
-                client);
-        assertNull(serviceURL);
-    }
-
-    @Test
-    public void shouldRetryAPICallsOnClientHandlerException() throws AtlasServiceException, URISyntaxException {
-        setupRetryParams();
-
-        ResourceCreator resourceCreator = mock(ResourceCreator.class);
-        WebResource resourceObject = mock(WebResource.class);
-        when(resourceObject.getURI()).
-                thenReturn(new URI("http://localhost:31000/api/atlas/types")).
-                thenReturn(new URI("http://localhost:41000/api/atlas/types")).
-                thenReturn(new URI("http://localhost:41000/api/atlas/types"));
-
-        WebResource.Builder builder = getBuilder(resourceObject);
-
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        String activeStatus = "{\"Status\":\"ACTIVE\"}";
-        when(response.getEntity(String.class)).thenReturn(activeStatus);
-        when(response.getLength()).thenReturn(activeStatus.length());
-
-        when(builder.method(AtlasClient.API.LIST_TYPES.getMethod(), ClientResponse.class, null)).
-                thenThrow(new ClientHandlerException("simulating exception in calling API", new ConnectException())).
-                thenReturn(response);
-
-        when(resourceCreator.createResource()).thenReturn(resourceObject);
-
-        AtlasClient atlasClient = getClientForTest("http://localhost:31000","http://localhost:41000");
-
-        atlasClient.setService(service);
-        atlasClient.setConfiguration(configuration);
-
-        atlasClient.callAPIWithRetries(AtlasClient.API.LIST_TYPES, null, resourceCreator);
-
-        verify(client).destroy();
-        verify(client).resource(UriBuilder.fromUri("http://localhost:31000").build());
-        verify(client).resource(UriBuilder.fromUri("http://localhost:41000").build());
-    }
-
-    @Test
-    public void shouldRetryWithSameClientIfSingleAddressIsUsed() throws URISyntaxException, AtlasServiceException {
-        setupRetryParams();
-
-        ResourceCreator resourceCreator = mock(ResourceCreator.class);
-        WebResource resourceObject = mock(WebResource.class);
-        when(resourceObject.getURI()).
-                thenReturn(new URI("http://localhost:31000/api/atlas/types"));
-
-        WebResource.Builder builder = getBuilder(resourceObject);
-
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        String activeStatus = "{\"Status\":\"ACTIVE\"}";
-        when(response.getEntity(String.class)).thenReturn(activeStatus);
-        when(response.getLength()).thenReturn(activeStatus.length());
-
-        when(builder.method(AtlasClient.API.LIST_TYPES.getMethod(), ClientResponse.class, null)).
-                thenThrow(new ClientHandlerException("simulating exception in calling API", new ConnectException())).
-                thenReturn(response);
-
-        when(resourceCreator.createResource()).thenReturn(resourceObject);
-        when(configuration.getString("atlas.http.authentication.type", "simple")).thenReturn("simple");
-
-        AtlasClient atlasClient = getClientForTest("http://localhost:31000");
-
-        atlasClient.setService(resourceObject);
-        atlasClient.setConfiguration(configuration);
-
-        atlasClient.callAPIWithRetries(AtlasClient.API.LIST_TYPES, null, resourceCreator);
-
-        verify(client).destroy();
-        verify(client, times(2)).resource(UriBuilder.fromUri("http://localhost:31000").build());
-    }
-
-    @Test
-    public void shouldRetryAPICallsOnServiceUnavailable() throws AtlasServiceException, URISyntaxException {
-        setupRetryParams();
-
-        ResourceCreator resourceCreator = mock(ResourceCreator.class);
-        WebResource resourceObject = mock(WebResource.class);
-        when(resourceObject.getURI()).
-                thenReturn(new URI("http://localhost:31000/api/atlas/types")).
-                thenReturn(new URI("http://localhost:41000/api/atlas/types")).
-                thenReturn(new URI("http://localhost:41000/api/atlas/types"));
-
-        WebResource.Builder builder = getBuilder(resourceObject);
-
-        ClientResponse firstResponse = mock(ClientResponse.class);
-        when(firstResponse.getStatus()).thenReturn(Response.Status.SERVICE_UNAVAILABLE.getStatusCode());
-        when(firstResponse.getClientResponseStatus()).thenReturn(ClientResponse.Status.SERVICE_UNAVAILABLE);
-
-        ClientResponse response = mock(ClientResponse.class);
-        when(response.getStatus()).thenReturn(Response.Status.OK.getStatusCode());
-        String activeStatus = "{\"Status\":\"ACTIVE\"}";
-        when(response.getEntity(String.class)).thenReturn(activeStatus);
-        when(response.getLength()).thenReturn(activeStatus.length());
-
-        when(builder.method(AtlasClient.API.LIST_TYPES.getMethod(), ClientResponse.class, null)).
-                thenThrow(new ClientHandlerException("simulating exception in calling API", new ConnectException())).
-                thenReturn(firstResponse).
-                thenReturn(response);
-
-        when(resourceCreator.createResource()).thenReturn(resourceObject);
-
-        AtlasClient atlasClient = getClientForTest("http://localhost:31000","http://localhost:41000");
-        atlasClient.setService(resourceObject);
-        atlasClient.setConfiguration(configuration);
-
-        atlasClient.callAPIWithRetries(AtlasClient.API.LIST_TYPES, null, resourceCreator);
-
-
-        verify(client).destroy();
-        verify(client).resource(UriBuilder.fromUri("http://localhost:31000").build());
-        verify(client).resource(UriBuilder.fromUri("http://localhost:41000").build());
-    }
-
-    private WebResource.Builder getBuilder(WebResource resourceObject) {
-        when(resourceObject.getRequestBuilder()).thenReturn(resourceBuilderMock);
-        when(resourceObject.path(anyString())).thenReturn(resourceObject);
-        when(resourceBuilderMock.accept(AtlasBaseClient.JSON_MEDIA_TYPE)).thenReturn(resourceBuilderMock);
-        when(resourceBuilderMock.type(AtlasBaseClient.JSON_MEDIA_TYPE)).thenReturn(resourceBuilderMock);
-        return resourceBuilderMock;
-    }
-
-    private void setupRetryParams() {
-        when(configuration.getInt(AtlasClient.ATLAS_CLIENT_HA_RETRIES_KEY, AtlasClient.DEFAULT_NUM_RETRIES)).
-                thenReturn(3);
-        when(configuration.getInt(AtlasClient.ATLAS_CLIENT_HA_SLEEP_INTERVAL_MS_KEY,
-                AtlasClient.DEFAULT_SLEEP_BETWEEN_RETRIES_MS)).
-                thenReturn(1);
-    }
-
-    private AtlasClient getClientForTest(final String... baseUrls) {
-        return new AtlasClient((UserGroupInformation)null, (String)null, baseUrls) {
-            boolean firstCall = true;
-            @Override
-            protected String determineActiveServiceURL(String[] baseUrls, Client client) {
-                String returnUrl = baseUrls[0];
-                if (baseUrls.length > 1 && !firstCall) {
-                    returnUrl = baseUrls[1];
-                }
-                firstCall = false;
-                return returnUrl;
-            }
-
-            @Override
-            protected Configuration getClientProperties() {
-                return configuration;
-            }
-
-            @Override
-            protected Client getClient(Configuration configuration, UserGroupInformation ugi, String doAsUser) {
-                return client;
-            }
-        };
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/pom.xml
----------------------------------------------------------------------
diff --git a/common/pom.xml b/common/pom.xml
index 7178bfa..c2e5da6 100644
--- a/common/pom.xml
+++ b/common/pom.xml
@@ -77,5 +77,10 @@
             <artifactId>guava</artifactId>
             <version>${guava.version}</version>
         </dependency>
+
+        <dependency>
+            <groupId>org.apache.atlas</groupId>
+            <artifactId>atlas-intg</artifactId>
+        </dependency>
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/main/java/org/apache/atlas/ApplicationProperties.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/atlas/ApplicationProperties.java b/common/src/main/java/org/apache/atlas/ApplicationProperties.java
deleted file mode 100644
index a35bdfe..0000000
--- a/common/src/main/java/org/apache/atlas/ApplicationProperties.java
+++ /dev/null
@@ -1,203 +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.atlas;
-
-import org.apache.atlas.security.InMemoryJAASConfiguration;
-import org.apache.commons.configuration.Configuration;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.configuration.PropertiesConfiguration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Iterator;
-
-/**
- * Application properties used by Atlas.
- */
-public final class ApplicationProperties extends PropertiesConfiguration {
-    public static final String ATLAS_CONFIGURATION_DIRECTORY_PROPERTY = "atlas.conf";
-
-    private static final Logger LOG = LoggerFactory.getLogger(ApplicationProperties.class);
-
-    public static final String APPLICATION_PROPERTIES = "atlas-application.properties";
-
-    private static volatile Configuration instance = null;
-
-    private ApplicationProperties(URL url) throws ConfigurationException {
-        super(url);
-    }
-
-    public static void forceReload() {
-        if (instance != null) {
-            synchronized (ApplicationProperties.class) {
-                if (instance != null) {
-                    instance = null;
-                }
-            }
-        }
-    }
-
-    public static Configuration get() throws AtlasException {
-        if (instance == null) {
-            synchronized (ApplicationProperties.class) {
-                if (instance == null) {
-                    instance = get(APPLICATION_PROPERTIES);
-                    InMemoryJAASConfiguration.init(instance);
-                }
-            }
-        }
-        return instance;
-    }
-
-    public static Configuration get(String fileName) throws AtlasException {
-        String confLocation = System.getProperty(ATLAS_CONFIGURATION_DIRECTORY_PROPERTY);
-        try {
-            URL url = null;
-
-            if (confLocation == null) {
-                LOG.info("Looking for {} in classpath", fileName);
-
-                url = ApplicationProperties.class.getClassLoader().getResource(fileName);
-
-                if (url == null) {
-                    LOG.info("Looking for /{} in classpath", fileName);
-
-                    url = ApplicationProperties.class.getClassLoader().getResource("/" + fileName);
-                }
-            } else {
-                url = new File(confLocation, fileName).toURI().toURL();
-            }
-
-            LOG.info("Loading {} from {}", fileName, url);
-
-            Configuration configuration = new ApplicationProperties(url).interpolatedConfiguration();
-            logConfiguration(configuration);
-            return configuration;
-        } catch (Exception e) {
-            throw new AtlasException("Failed to load application properties", e);
-        }
-    }
-
-    private static void logConfiguration(Configuration configuration) {
-        if (LOG.isDebugEnabled()) {
-            Iterator<String> keys = configuration.getKeys();
-            LOG.debug("Configuration loaded:");
-            while (keys.hasNext()) {
-                String key = keys.next();
-                LOG.debug("{} = {}", key, configuration.getProperty(key));
-            }
-        }
-    }
-
-    public static Configuration getSubsetConfiguration(Configuration inConf, String prefix) {
-        return inConf.subset(prefix);
-    }
-
-    public static Class getClass(Configuration configuration, String propertyName, String defaultValue,
-                                 Class assignableClass) throws AtlasException {
-        try {
-            String propertyValue = configuration.getString(propertyName, defaultValue);
-            Class<?> clazz = Class.forName(propertyValue);
-            if (assignableClass == null || assignableClass.isAssignableFrom(clazz)) {
-                return clazz;
-            } else {
-                String message = "Class " + clazz.getName() + " specified in property " + propertyName
-                        + " is not assignable to class " + assignableClass.getName();
-                LOG.error(message);
-                throw new AtlasException(message);
-            }
-        } catch (Exception e) {
-            throw new AtlasException(e);
-        }
-    }
-
-    /**
-     * Get the specified property as an {@link InputStream}.
-     * If the property is not set, then the specified default filename
-     * is searched for in the following locations, in order of precedence:
-     * 1. Atlas configuration directory specified by the {@link #ATLAS_CONFIGURATION_DIRECTORY_PROPERTY} system property
-     * 2. relative to the working directory if {@link #ATLAS_CONFIGURATION_DIRECTORY_PROPERTY} is not set
-     * 3. as a classloader resource
-     *
-     * @param configuration
-     * @param propertyName
-     * @param defaultFileName name of file to use by default if specified property is not set in the configuration- if null,
-     * an {@link AtlasException} is thrown if the property is not set
-     * @return an {@link InputStream}
-     * @throws AtlasException if no file was found or if there was an error loading the file
-     */
-    public static InputStream getFileAsInputStream(Configuration configuration, String propertyName, String defaultFileName) throws AtlasException {
-        File fileToLoad = null;
-        String fileName = configuration.getString(propertyName);
-        if (fileName == null) {
-            if (defaultFileName == null) {
-                throw new AtlasException(propertyName + " property not set and no default value specified");
-            }
-            fileName = defaultFileName;
-            String atlasConfDir = System.getProperty(ATLAS_CONFIGURATION_DIRECTORY_PROPERTY);
-            if (atlasConfDir != null) {
-                // Look for default filename in Atlas config directory
-                fileToLoad = new File(atlasConfDir, fileName);
-            }
-            else {
-                // Look for default filename under the working directory
-                fileToLoad = new File(fileName);
-            }
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("{} property not set - defaulting to {}", propertyName, fileToLoad.getPath());
-            }
-        }
-        else {
-            // Look for configured filename
-            fileToLoad = new File(fileName);
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("Using {} property setting: {}", propertyName, fileToLoad.getPath());
-            }
-        }
-
-        InputStream inStr = null;
-        if (fileToLoad.exists()) {
-            try {
-                inStr = new FileInputStream(fileToLoad);
-            } catch (FileNotFoundException e) {
-                throw new AtlasException("Error loading file " + fileName, e);
-            }
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("Loaded file from : {}", fileToLoad.getPath());
-            }
-        }
-        else {
-            // Look for file as class loader resource
-            inStr = Thread.currentThread().getContextClassLoader().getResourceAsStream(fileName);
-            if (inStr == null) {
-                String msg = fileName + " not found in file system or as class loader resource";
-                LOG.error(msg);
-                throw new AtlasException(msg);
-            }
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("Loaded {} as resource from : {}", fileName, Thread.currentThread().getContextClassLoader().getResource(fileName).toString());
-            }
-        }
-        return inStr;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/main/java/org/apache/atlas/AtlasException.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/atlas/AtlasException.java b/common/src/main/java/org/apache/atlas/AtlasException.java
deleted file mode 100644
index 45d91d4..0000000
--- a/common/src/main/java/org/apache/atlas/AtlasException.java
+++ /dev/null
@@ -1,43 +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.atlas;
-
-/**
- * Base Exception class for Atlas API.
- */
-public class AtlasException extends Exception {
-
-    public AtlasException() {
-    }
-
-    public AtlasException(String message) {
-        super(message);
-    }
-
-    public AtlasException(String message, Throwable cause) {
-        super(message, cause);
-    }
-
-    public AtlasException(Throwable cause) {
-        super(cause);
-    }
-
-    public AtlasException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
-        super(message, cause, enableSuppression, writableStackTrace);
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/main/java/org/apache/atlas/groovy/ArithmeticExpression.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/atlas/groovy/ArithmeticExpression.java b/common/src/main/java/org/apache/atlas/groovy/ArithmeticExpression.java
index a6e1689..fff104b 100644
--- a/common/src/main/java/org/apache/atlas/groovy/ArithmeticExpression.java
+++ b/common/src/main/java/org/apache/atlas/groovy/ArithmeticExpression.java
@@ -17,10 +17,10 @@
  */
 package org.apache.atlas.groovy;
 
-import java.util.List;
-
 import org.apache.atlas.AtlasException;
 
+import java.util.List;
+
 /**
  * Represents an arithmetic expression such as a+b.
  */

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/main/java/org/apache/atlas/security/InMemoryJAASConfiguration.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/atlas/security/InMemoryJAASConfiguration.java b/common/src/main/java/org/apache/atlas/security/InMemoryJAASConfiguration.java
deleted file mode 100644
index 936311b..0000000
--- a/common/src/main/java/org/apache/atlas/security/InMemoryJAASConfiguration.java
+++ /dev/null
@@ -1,401 +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.atlas.security;
-
-import org.apache.atlas.AtlasException;
-import org.apache.commons.collections.MapUtils;
-import org.apache.commons.configuration.ConfigurationConverter;
-import org.apache.commons.lang.ArrayUtils;
-import org.apache.hadoop.security.SecurityUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import java.util.SortedSet;
-import java.util.StringTokenizer;
-import java.util.TreeSet;
-
-
-/**
- * InMemoryJAASConfiguration
- * <p>
- * An utility class - which has a static method init to load all JAAS configuration from Application
- * properties file (eg: atlas.properties) and set it as part of the default lookup configuration for
- * all JAAS configuration lookup.
- * <p>
- * Example settings in jaas-application.properties:
- *
- * <pre class=code>
- * atlas.jaas.KafkaClient.loginModuleName = com.sun.security.auth.module.Krb5LoginModule
- * atlas.jaas.KafkaClient.loginModuleControlFlag = required
- * atlas.jaas.KafkaClient.option.useKeyTab = true
- * atlas.jaas.KafkaClient.option.storeKey = true
- * atlas.jaas.KafkaClient.option.serviceName = kafka
- * atlas.jaas.KafkaClient.option.keyTab = /etc/security/keytabs/kafka_client.keytab
- * atlas.jaas.KafkaClient.option.principal = kafka-client-1@EXAMPLE.COM
-
- * atlas.jaas.MyClient.0.loginModuleName = com.sun.security.auth.module.Krb5LoginModule
- * atlas.jaas.MyClient.0.loginModuleControlFlag = required
- * atlas.jaas.MyClient.0.option.useKeyTab = true
- * atlas.jaas.MyClient.0.option.storeKey = true
- * atlas.jaas.MyClient.0.option.serviceName = kafka
- * atlas.jaas.MyClient.0.option.keyTab = /etc/security/keytabs/kafka_client.keytab
- * atlas.jaas.MyClient.0.option.principal = kafka-client-1@EXAMPLE.COM
- * atlas.jaas.MyClient.1.loginModuleName = com.sun.security.auth.module.Krb5LoginModule
- * atlas.jaas.MyClient.1.loginModuleControlFlag = optional
- * atlas.jaas.MyClient.1.option.useKeyTab = true
- * atlas.jaas.MyClient.1.option.storeKey = true
- * atlas.jaas.MyClient.1.option.serviceName = kafka
- * atlas.jaas.MyClient.1.option.keyTab = /etc/security/keytabs/kafka_client.keytab
- * atlas.jaas.MyClient.1.option.principal = kafka-client-1@EXAMPLE.COM </pre>
- *
- * <p>
- * This will set the JAAS configuration - equivalent to the jaas.conf file entries:
- *
- * <pre class=code>
- *  KafkaClient {
- *      com.sun.security.auth.module.Krb5LoginModule required
- *          useKeyTab=true
- *          storeKey=true
- *          serviceName=kafka
- *          keyTab="/etc/security/keytabs/kafka_client.keytab"
- *          principal="kafka-client-1@EXAMPLE.COM";
- *  };
- *  MyClient {
- *      com.sun.security.auth.module.Krb5LoginModule required
- *          useKeyTab=true
- *          storeKey=true
- *          serviceName=kafka keyTab="/etc/security/keytabs/kafka_client.keytab"
- *          principal="kafka-client-1@EXAMPLE.COM";
- *  };
- *  MyClient {
- *      com.sun.security.auth.module.Krb5LoginModule optional
- *          useKeyTab=true
- *          storeKey=true
- *          serviceName=kafka
- *          keyTab="/etc/security/keytabs/kafka_client.keytab"
- *          principal="kafka-client-1@EXAMPLE.COM";
- *  }; </pre>
- * <p>
- * Here is the syntax for atlas.properties to add JAAS configuration:
- * <p>
- * The property name has to begin with   'atlas.jaas.' +  clientId (in case of Kafka client,
- * it expects the clientId to be  KafkaClient).
- * <p>
- * The following property must be there to specify the JAAS loginModule name
- * <pre>         'atlas.jaas.' +  clientId  + '.loginModuleName' </pre>
- * <p>
- * The following optional property should be set to specify the loginModuleControlFlag
- * <pre>         'atlas.jaas.' + clientId + '.loginModuleControlFlag'
- *          Default value :  required ,  Possible values:  required, optional, sufficient, requisite </pre>
- * <p>
- * Then you can add additional optional parameters as options for the configuration using the following
- *  syntax:
- * <pre>         'atlas.jaas.' + clientId + '.option.' + <optionName>  = <optionValue> </pre>
- * <p>
- * The current setup will lookup JAAS configration from the atlas-application.properties first,
- * if not available, it will delegate to the original configuration
- *
- */
-
-
-public final class InMemoryJAASConfiguration extends Configuration {
-
-    private static final Logger LOG = LoggerFactory.getLogger(InMemoryJAASConfiguration.class);
-
-    private static final String JAAS_CONFIG_PREFIX_PARAM = "atlas.jaas.";
-    private static final String JAAS_CONFIG_LOGIN_MODULE_NAME_PARAM = "loginModuleName";
-    private static final String JAAS_CONFIG_LOGIN_MODULE_CONTROL_FLAG_PARAM = "loginModuleControlFlag";
-    private static final String JAAS_CONFIG_LOGIN_OPTIONS_PREFIX = "option";
-    private static final String JAAS_PRINCIPAL_PROP = "principal";
-    private static final Map<String, String> CONFIG_SECTION_REDIRECTS = new HashMap<>();
-
-    private Configuration parent = null;
-    private Map<String, List<AppConfigurationEntry>> applicationConfigEntryMap = new HashMap<>();
-
-    public static void init(String propFile) throws AtlasException {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("==> InMemoryJAASConfiguration.init({})", propFile);
-        }
-
-        InputStream in = null;
-
-        try {
-            Properties properties = new Properties();
-            in = ClassLoader.getSystemResourceAsStream(propFile);
-            if (in == null) {
-                if (!propFile.startsWith("/")) {
-                    in = ClassLoader.getSystemResourceAsStream("/" + propFile);
-                }
-                if (in == null) {
-                    in = new FileInputStream(new File(propFile));
-                }
-            }
-            properties.load(in);
-            init(properties);
-        } catch (IOException e) {
-            throw new AtlasException("Failed to load JAAS application properties", e);
-        } finally {
-            if (in != null) {
-                try {
-                    in.close();
-                } catch (Exception exception) {
-                    // Ignore
-                }
-            }
-        }
-
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("<== InMemoryJAASConfiguration.init({})", propFile);
-        }
-    }
-
-    public static void init(org.apache.commons.configuration.Configuration atlasConfiguration) throws AtlasException {
-        LOG.debug("==> InMemoryJAASConfiguration.init()");
-
-        if (atlasConfiguration != null && !atlasConfiguration.isEmpty()) {
-            Properties properties = ConfigurationConverter.getProperties(atlasConfiguration);
-            init(properties);
-        } else {
-            throw new AtlasException("Failed to load JAAS application properties: configuration NULL or empty!");
-        }
-
-        LOG.debug("<== InMemoryJAASConfiguration.init()");
-    }
-
-    public static void init(Properties properties) throws AtlasException {
-        LOG.debug("==> InMemoryJAASConfiguration.init()");
-
-        if (properties != null && MapUtils.isNotEmpty(properties)) {
-            InMemoryJAASConfiguration conf = new InMemoryJAASConfiguration(properties);
-            Configuration.setConfiguration(conf);
-        } else {
-            throw new AtlasException("Failed to load JAAS application properties: properties NULL or empty!");
-        }
-
-        LOG.debug("<== InMemoryJAASConfiguration.init()");
-    }
-
-    @Override
-    public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("==> InMemoryJAASConfiguration.getAppConfigurationEntry({})", name);
-        }
-
-        AppConfigurationEntry[] ret = null;
-        List<AppConfigurationEntry> retList = null;
-        String redirectedName = getConfigSectionRedirect(name);
-
-        if (redirectedName != null) {
-            retList = applicationConfigEntryMap.get(redirectedName);
-
-            if (LOG.isDebugEnabled()) {
-                LOG.debug("Redirected jaasConfigSection ({} -> {}): ", name, redirectedName, retList);
-            }
-        }
-
-        if (retList == null || retList.size() == 0) {
-            retList = applicationConfigEntryMap.get(name);
-        }
-
-        if (retList == null || retList.size() == 0) {
-            if (parent != null) {
-                ret = parent.getAppConfigurationEntry(name);
-            }
-        } else {
-            int sz = retList.size();
-            ret = new AppConfigurationEntry[sz];
-            ret = retList.toArray(ret);
-        }
-
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("<== InMemoryJAASConfiguration.getAppConfigurationEntry({}): {}", name, ArrayUtils.toString(ret));
-        }
-
-        return ret;
-    }
-
-    private InMemoryJAASConfiguration(Properties prop) {
-        parent = Configuration.getConfiguration();
-        initialize(prop);
-    }
-
-    private void initialize(Properties properties) {
-        LOG.debug("==> InMemoryJAASConfiguration.initialize()");
-
-        int prefixLen = JAAS_CONFIG_PREFIX_PARAM.length();
-
-        Map<String, SortedSet<Integer>> jaasClients = new HashMap<>();
-        for (String key : properties.stringPropertyNames()) {
-            if (key.startsWith(JAAS_CONFIG_PREFIX_PARAM)) {
-                String jaasKey = key.substring(prefixLen);
-                StringTokenizer tokenizer = new StringTokenizer(jaasKey, ".");
-                int tokenCount = tokenizer.countTokens();
-                if (tokenCount > 0) {
-                    String clientId = tokenizer.nextToken();
-                    SortedSet<Integer> indexList = jaasClients.get(clientId);
-                    if (indexList == null) {
-                        indexList = new TreeSet<>();
-                        jaasClients.put(clientId, indexList);
-                    }
-                    String indexStr = tokenizer.nextToken();
-
-                    int indexId = isNumeric(indexStr) ? Integer.parseInt(indexStr) : -1;
-
-                    Integer clientIdIndex = Integer.valueOf(indexId);
-
-                    if (!indexList.contains(clientIdIndex)) {
-                        indexList.add(clientIdIndex);
-                    }
-
-                }
-            }
-        }
-        for (String jaasClient : jaasClients.keySet()) {
-
-            for (Integer index : jaasClients.get(jaasClient)) {
-
-                String keyPrefix = JAAS_CONFIG_PREFIX_PARAM + jaasClient + ".";
-
-                if (index > -1) {
-                    keyPrefix = keyPrefix + String.valueOf(index) + ".";
-                }
-
-                String keyParam = keyPrefix + JAAS_CONFIG_LOGIN_MODULE_NAME_PARAM;
-                String loginModuleName = properties.getProperty(keyParam);
-
-                if (loginModuleName == null) {
-                    LOG.error("Unable to add JAAS configuration for client [{}] as it is missing param [{}]. Skipping JAAS config for [{}]", jaasClient, keyParam, jaasClient);
-                    continue;
-                } else {
-                    loginModuleName = loginModuleName.trim();
-                }
-
-                keyParam = keyPrefix + JAAS_CONFIG_LOGIN_MODULE_CONTROL_FLAG_PARAM;
-                String controlFlag = properties.getProperty(keyParam);
-
-                AppConfigurationEntry.LoginModuleControlFlag loginControlFlag = null;
-                if (controlFlag != null) {
-                    controlFlag = controlFlag.trim().toLowerCase();
-                    switch (controlFlag) {
-                        case "optional":
-                            loginControlFlag = AppConfigurationEntry.LoginModuleControlFlag.OPTIONAL;
-                            break;
-                        case "requisite":
-                            loginControlFlag = AppConfigurationEntry.LoginModuleControlFlag.REQUISITE;
-                            break;
-                        case "sufficient":
-                            loginControlFlag = AppConfigurationEntry.LoginModuleControlFlag.SUFFICIENT;
-                            break;
-                        case "required":
-                            loginControlFlag = AppConfigurationEntry.LoginModuleControlFlag.REQUIRED;
-                            break;
-                        default:
-                            String validValues = "optional|requisite|sufficient|required";
-                            LOG.warn("Unknown JAAS configuration value for ({}) = [{}], valid value are [{}] using the default value, REQUIRED", keyParam, controlFlag, validValues);
-                            loginControlFlag = AppConfigurationEntry.LoginModuleControlFlag.REQUIRED;
-                            break;
-                    }
-                } else {
-                    LOG.warn("Unable to find JAAS configuration ({}); using the default value, REQUIRED", keyParam);
-                    loginControlFlag = AppConfigurationEntry.LoginModuleControlFlag.REQUIRED;
-                }
-
-
-                Map<String, String> options = new HashMap<>();
-                String optionPrefix = keyPrefix + JAAS_CONFIG_LOGIN_OPTIONS_PREFIX + ".";
-                int optionPrefixLen = optionPrefix.length();
-                for (String key : properties.stringPropertyNames()) {
-                    if (key.startsWith(optionPrefix)) {
-                        String optionKey = key.substring(optionPrefixLen);
-                        String optionVal = properties.getProperty(key);
-                        if (optionVal != null) {
-                            optionVal = optionVal.trim();
-
-                            try {
-                                if (optionKey.equalsIgnoreCase(JAAS_PRINCIPAL_PROP)) {
-                                    optionVal = SecurityUtil.getServerPrincipal(optionVal, (String) null);
-                                }
-                            } catch (IOException e) {
-                                LOG.warn("Failed to build serverPrincipal. Using provided value:[{}]", optionVal);
-                            }
-                        }
-                        options.put(optionKey, optionVal);
-                    }
-                }
-
-                AppConfigurationEntry entry = new AppConfigurationEntry(loginModuleName, loginControlFlag, options);
-
-                if (LOG.isDebugEnabled()) {
-                    StringBuilder sb = new StringBuilder();
-                    sb.append("Adding client: [").append(jaasClient).append("{").append(index).append("}]\n");
-                    sb.append("\tloginModule: [").append(loginModuleName).append("]\n");
-                    sb.append("\tcontrolFlag: [").append(loginControlFlag).append("]\n");
-                    for (String key : options.keySet()) {
-                        String val = options.get(key);
-                        sb.append("\tOptions:  [").append(key).append("] => [").append(val).append("]\n");
-                    }
-                    LOG.debug(sb.toString());
-                }
-
-                List<AppConfigurationEntry> retList = applicationConfigEntryMap.get(jaasClient);
-                if (retList == null) {
-                    retList = new ArrayList<>();
-                    applicationConfigEntryMap.put(jaasClient, retList);
-                }
-
-                retList.add(entry);
-            }
-        }
-
-        LOG.debug("<== InMemoryJAASConfiguration.initialize({})", applicationConfigEntryMap);
-    }
-
-    private static boolean isNumeric(String str) {
-        return str.matches("-?\\d+(\\.\\d+)?");  //match a number with optional '-' and decimal.
-    }
-
-    public static void setConfigSectionRedirect(String name, String redirectTo) {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("setConfigSectionRedirect({}, {})", name, redirectTo);
-        }
-
-        if (name != null) {
-            if (redirectTo != null) {
-                CONFIG_SECTION_REDIRECTS.put(name, redirectTo);
-            } else {
-                CONFIG_SECTION_REDIRECTS.remove(name);
-            }
-        }
-    }
-
-    private static String getConfigSectionRedirect(String name) {
-        return name != null ? CONFIG_SECTION_REDIRECTS.get(name) : null;
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/main/java/org/apache/atlas/security/SecurityProperties.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/atlas/security/SecurityProperties.java b/common/src/main/java/org/apache/atlas/security/SecurityProperties.java
deleted file mode 100644
index 2e953eb..0000000
--- a/common/src/main/java/org/apache/atlas/security/SecurityProperties.java
+++ /dev/null
@@ -1,49 +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.atlas.security;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- *
- */
-public final class SecurityProperties {
-
-    private SecurityProperties() {
-    }
-
-    public static final String TLS_ENABLED = "atlas.enableTLS";
-    public static final String KEYSTORE_FILE_KEY = "keystore.file";
-    public static final String DEFAULT_KEYSTORE_FILE_LOCATION = "target/atlas.keystore";
-    public static final String KEYSTORE_PASSWORD_KEY = "keystore.password";
-    public static final String TRUSTSTORE_FILE_KEY = "truststore.file";
-    public static final String DEFATULT_TRUSTORE_FILE_LOCATION = "target/atlas.keystore";
-    public static final String TRUSTSTORE_PASSWORD_KEY = "truststore.password";
-    public static final String SERVER_CERT_PASSWORD_KEY = "password";
-    public static final String CLIENT_AUTH_KEY = "client.auth.enabled";
-    public static final String CERT_STORES_CREDENTIAL_PROVIDER_PATH = "cert.stores.credential.provider.path";
-    public static final String SSL_CLIENT_PROPERTIES = "ssl-client.xml";
-    public static final String BIND_ADDRESS = "atlas.server.bind.address";
-    public static final String ATLAS_SSL_EXCLUDE_CIPHER_SUITES = "atlas.ssl.exclude.cipher.suites";
-    public static final List<String> DEFAULT_CIPHER_SUITES = Arrays.asList(
-            ".*NULL.*", ".*RC4.*", ".*MD5.*", ".*DES.*", ".*DSS.*");
-    public static final String ATLAS_SSL_EXCLUDE_PROTOCOLS = "atlas.ssl.exclude.protocols";
-    public static final String[] DEFAULT_EXCLUDE_PROTOCOLS = new String[] { "TLSv1", "TLSv1.1" };
-
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/main/java/org/apache/atlas/utils/AuthenticationUtil.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/atlas/utils/AuthenticationUtil.java b/common/src/main/java/org/apache/atlas/utils/AuthenticationUtil.java
deleted file mode 100644
index 09d8085..0000000
--- a/common/src/main/java/org/apache/atlas/utils/AuthenticationUtil.java
+++ /dev/null
@@ -1,70 +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.atlas.utils;
-
-import org.apache.atlas.ApplicationProperties;
-import org.apache.atlas.AtlasException;
-import org.apache.commons.configuration.Configuration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import java.io.Console;
-
-/**
- * Util class for Authentication.
- */
-public final class AuthenticationUtil {
-    private static final Logger LOG = LoggerFactory.getLogger(AuthenticationUtil.class);
-
-    private AuthenticationUtil() {
-    }
-
-    public static boolean isKerberosAuthenticationEnabled() {
-        boolean isKerberosAuthenticationEnabled = false;
-        try {
-            isKerberosAuthenticationEnabled = isKerberosAuthenticationEnabled(ApplicationProperties.get());
-        } catch (AtlasException e) {
-            LOG.error("Error while isKerberosAuthenticationEnabled ", e);
-        }
-        return isKerberosAuthenticationEnabled;
-    }
-
-    public static boolean isKerberosAuthenticationEnabled(Configuration atlasConf) {
-        return atlasConf.getBoolean("atlas.authentication.method.kerberos", false);
-    }
-
-    public static String[] getBasicAuthenticationInput() {
-        String username = null;
-        String password = null;
-
-        try {
-            Console console = System.console();
-            username = console.readLine("Enter username for atlas :- ");
-
-            char[] pwdChar = console.readPassword("Enter password for atlas :- ");
-            if(pwdChar != null) {
-                password = new String(pwdChar);
-            }
-
-        } catch (Exception e) {
-            System.out.print("Error while reading ");
-            System.exit(1);
-        }
-        return new String[]{username, password};
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/test/java/org/apache/atlas/ApplicationPropertiesTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/atlas/ApplicationPropertiesTest.java b/common/src/test/java/org/apache/atlas/ApplicationPropertiesTest.java
deleted file mode 100644
index 89e5e9b..0000000
--- a/common/src/test/java/org/apache/atlas/ApplicationPropertiesTest.java
+++ /dev/null
@@ -1,129 +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.atlas;
-
-import java.io.InputStream;
-
-import org.apache.commons.configuration.Configuration;
-import org.testng.annotations.Test;
-import static org.testng.Assert.*;
-
-/**
- * Unit test for {@link ApplicationProperties}
- *
- */
-public class ApplicationPropertiesTest {
-
-    @Test
-    public void testGetFileAsInputStream() throws Exception {
-        Configuration props = ApplicationProperties.get("test.properties");
-        InputStream inStr = null;
-
-        // configured file as class loader resource
-        try {
-            inStr = ApplicationProperties.getFileAsInputStream(props, "jaas.properties.file", null);
-            assertNotNull(inStr);
-        }
-        finally {
-            if (inStr != null) {
-                inStr.close();
-            }
-        }
-
-        // configured file from file system path
-        props.setProperty("jaas.properties.file", "src/test/resources/atlas-jaas.properties");
-        try {
-            inStr = ApplicationProperties.getFileAsInputStream(props, "jaas.properties.file", null);
-            assertNotNull(inStr);
-        }
-        finally {
-            if (inStr != null) {
-                inStr.close();
-            }
-        }
-
-        // default file as class loader resource
-        try {
-            inStr = ApplicationProperties.getFileAsInputStream(props, "property.not.specified.in.config", "atlas-jaas.properties");
-            assertNotNull(inStr);
-        }
-        finally {
-            if (inStr != null) {
-                inStr.close();
-            }
-        }
-
-        // default file relative to working directory
-        try {
-            inStr = ApplicationProperties.getFileAsInputStream(props, "property.not.specified.in.config", "src/test/resources/atlas-jaas.properties");
-            assertNotNull(inStr);
-        }
-        finally {
-            if (inStr != null) {
-                inStr.close();
-            }
-        }
-
-        // default file relative to atlas configuration directory
-        String originalConfDirSetting = System.setProperty(ApplicationProperties.ATLAS_CONFIGURATION_DIRECTORY_PROPERTY, "src/test/resources");
-        try {
-            inStr = ApplicationProperties.getFileAsInputStream(props, "property.not.specified.in.config", "atlas-jaas.properties");
-            assertNotNull(inStr);
-        }
-        finally {
-            if (inStr != null) {
-                inStr.close();
-            }
-            if (originalConfDirSetting != null) {
-                System.setProperty(ApplicationProperties.ATLAS_CONFIGURATION_DIRECTORY_PROPERTY, originalConfDirSetting);
-            }
-            else {
-                System.clearProperty(ApplicationProperties.ATLAS_CONFIGURATION_DIRECTORY_PROPERTY);
-            }
-        }
-
-        // non-existent property and no default file
-        try {
-            inStr = ApplicationProperties.getFileAsInputStream(props, "property.not.specified.in.config", null);
-            fail("Expected " + AtlasException.class.getSimpleName() + " but none thrown");
-        }
-        catch (AtlasException e) {
-            // good
-        }
-        finally {
-            if (inStr != null) {
-                inStr.close();
-            }
-        }
-
-        // configured file not found in file system or classpath
-        props.setProperty("jaas.properties.file", "does_not_exist.txt");
-        try {
-            inStr = ApplicationProperties.getFileAsInputStream(props, "jaas.properties.file", null);
-            fail("Expected " + AtlasException.class.getSimpleName() + " but none thrown");
-        }
-        catch (AtlasException e) {
-            // good
-        }
-        finally {
-            if (inStr != null) {
-                inStr.close();
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/test/java/org/apache/atlas/security/InMemoryJAASConfigurationTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/atlas/security/InMemoryJAASConfigurationTest.java b/common/src/test/java/org/apache/atlas/security/InMemoryJAASConfigurationTest.java
deleted file mode 100644
index b26ac7f..0000000
--- a/common/src/test/java/org/apache/atlas/security/InMemoryJAASConfigurationTest.java
+++ /dev/null
@@ -1,89 +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.atlas.security;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.apache.hadoop.util.StringUtils;
-import org.testng.annotations.Test;
-
-
-//Unstable test. Disabling
-@Test(enabled=false)
-public class InMemoryJAASConfigurationTest extends TestCase {
-
-    private static final String ATLAS_JAAS_PROP_FILE = "atlas-jaas.properties";
-
-    protected void setUp() throws Exception {
-        super.setUp();
-        try {
-            InMemoryJAASConfiguration.init(ATLAS_JAAS_PROP_FILE);
-        } catch(Throwable t) {
-            fail("InMemoryJAASConfiguration.init() is not expected to throw Exception:" +  t);
-        }
-    }
-
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-    @Test(enabled=false)
-    public void testGetAppConfigurationEntryStringForKafkaClient() {
-        AppConfigurationEntry[] entries =
-                Configuration.getConfiguration().getAppConfigurationEntry("KafkaClient");
-        Assert.assertNotNull(entries);
-        Assert.assertEquals(1, entries.length);
-        String principal = (String) entries[0].getOptions().get("principal");
-        Assert.assertNotNull(principal);
-        String[] components = principal.split("[/@]");
-        Assert.assertEquals(3, components.length);
-        Assert.assertEquals(false, StringUtils.equalsIgnoreCase(components[1], "_HOST"));
-
-    }
-
-    @Test(enabled=false)
-    public void testGetAppConfigurationEntryStringForMyClient() {
-        AppConfigurationEntry[] entries =
-                Configuration.getConfiguration().getAppConfigurationEntry("myClient");
-        Assert.assertNotNull(entries);
-        Assert.assertEquals(2, entries.length);
-        String principal = (String) entries[0].getOptions().get("principal");
-        Assert.assertNotNull(principal);
-        String[] components = principal.split("[/@]");
-        Assert.assertEquals(3, components.length);
-        Assert.assertEquals(true, StringUtils.equalsIgnoreCase(components[1], "abcd"));
-
-        principal = (String) entries[1].getOptions().get("principal");
-        Assert.assertNotNull(principal);
-        components = principal.split("[/@]");
-        Assert.assertEquals(2, components.length);
-    }
-
-    @Test(enabled=false)
-    public void testGetAppConfigurationEntryStringForUnknownClient() {
-        AppConfigurationEntry[] entries =
-                Configuration.getConfiguration().getAppConfigurationEntry("UnknownClient");
-        Assert.assertNull(entries);
-    }
-
-}
-

http://git-wip-us.apache.org/repos/asf/atlas/blob/187730dd/common/src/test/java/org/apache/atlas/security/InMemoryJAASConfigurationTicketBasedKafkaClientTest.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/atlas/security/InMemoryJAASConfigurationTicketBasedKafkaClientTest.java b/common/src/test/java/org/apache/atlas/security/InMemoryJAASConfigurationTicketBasedKafkaClientTest.java
deleted file mode 100644
index 3d8175f..0000000
--- a/common/src/test/java/org/apache/atlas/security/InMemoryJAASConfigurationTicketBasedKafkaClientTest.java
+++ /dev/null
@@ -1,60 +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.atlas.security;
-
-import javax.security.auth.login.AppConfigurationEntry;
-import javax.security.auth.login.Configuration;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-import org.testng.annotations.Test;
-
-
-@Test
-public class InMemoryJAASConfigurationTicketBasedKafkaClientTest extends TestCase {
-
-    private static final String ATLAS_JAAS_PROP_FILE = "atlas-jaas.properties";
-
-    protected void setUp() throws Exception {
-        super.setUp();
-        try {
-            InMemoryJAASConfiguration.init(ATLAS_JAAS_PROP_FILE);
-            InMemoryJAASConfiguration.setConfigSectionRedirect("KafkaClient", "ticketBased-KafkaClient");
-        } catch (Throwable t) {
-            fail("InMemoryJAASConfiguration.init() is not expected to throw Exception:" + t);
-        }
-    }
-
-    protected void tearDown() throws Exception {
-        super.tearDown();
-    }
-
-
-    @Test
-    public void testGetAppConfigurationEntryStringForticketBasedKafkaClient() {
-
-        AppConfigurationEntry[] entries =
-                Configuration.getConfiguration().getAppConfigurationEntry("KafkaClient");
-        Assert.assertNotNull(entries);
-        Assert.assertEquals((String) entries[0].getOptions().get("useTicketCache"), "true");
-    }
-
-
-}
-