http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/client/Utils.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/client/Utils.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/client/Utils.java deleted file mode 100644 index 13f93c3..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/client/Utils.java +++ /dev/null @@ -1,141 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.client; - -import org.apache.hive.service.cli.thrift.TStatus; -import org.apache.hive.service.cli.thrift.TStatusCode; -import org.apache.http.client.CookieStore; -import org.apache.http.cookie.Cookie; - -import java.util.ArrayList; -import java.util.List; - -public class Utils { - // This value is set to true by the setServiceUnavailableRetryStrategy() when the server returns 401 - static final String HIVE_SERVER2_RETRY_KEY = "hive.server2.retryserver"; - static final String HIVE_SERVER2_RETRY_TRUE = "true"; - static final String HIVE_SERVER2_RETRY_FALSE = "false"; - - static final String HIVE_COMPILE_ERROR_MSG = "Error while compiling statement:"; - - static void verifySuccess(TStatus status, String comment) throws HiveClientException { - if (status.getStatusCode() != TStatusCode.SUCCESS_STATUS && - status.getStatusCode() != TStatusCode.SUCCESS_WITH_INFO_STATUS) { - String message = (status.getErrorMessage() != null) ? status.getErrorMessage() : ""; - - // For schemantic exception Error code is between 10000-19999 - // https://issues.apache.org/jira/browse/HIVE-3001 - // https://issues.apache.org/jira/browse/HIVE-12867 - if((status.getErrorCode() >= 10000 && status.getErrorCode() <= 19999)|| message.contains(HIVE_COMPILE_ERROR_MSG)){ - throw new HiveInvalidQueryException(status.getStatusCode(),message); - } - throw new HiveErrorStatusException(status.getStatusCode(), comment + ". " + message); - } - } - - static boolean needToSendCredentials(CookieStore cookieStore, String cookieName, boolean isSSL) { - if (cookieName == null || cookieStore == null) { - return true; - } - - List<Cookie> cookies = cookieStore.getCookies(); - - for (Cookie c : cookies) { - // If this is a secured cookie and the current connection is non-secured, - // then, skip this cookie. We need to skip this cookie because, the cookie - // replay will not be transmitted to the server. - if (c.isSecure() && !isSSL) { - continue; - } - if (c.getName().equals(cookieName)) { - return false; - } - } - return true; - } - - /** - * Removes the empty strings and returns back only the strings with content - */ - static String[] removeEmptyStrings(String[] strs) { - List<String> nonEmptyStrings = new ArrayList<>(); - for(String str : strs) { - if (!(str == null || str.trim().isEmpty())) { - nonEmptyStrings.add(str.trim()); - } - } - return nonEmptyStrings.toArray(new String[] {}); - } - - public static class HiveAuthenticationParams { - public static final String AUTH_TYPE = "auth"; - // We're deprecating this variable's name. - public static final String AUTH_QOP_DEPRECATED = "sasl.qop"; - public static final String AUTH_QOP = "saslQop"; - public static final String AUTH_SIMPLE = "noSasl"; - public static final String AUTH_TOKEN = "delegationToken"; - public static final String AUTH_USER = "user"; - public static final String HS2_PROXY_USER = "hive.server2.proxy.user"; - public static final String AUTH_PRINCIPAL = "principal"; - public static final String AUTH_PASSWD = "password"; - public static final String AUTH_KERBEROS_AUTH_TYPE = "kerberosAuthType"; - public static final String AUTH_KERBEROS_AUTH_TYPE_FROM_SUBJECT = "fromSubject"; - public static final String ANONYMOUS_USER = "anonymous"; - public static final String ANONYMOUS_PASSWD = "anonymous"; - public static final String USE_SSL = "ssl"; - public static final String SSL_TRUST_STORE = "sslTrustStore"; - public static final String SSL_TRUST_STORE_PASSWORD = "trustStorePassword"; - // We're deprecating the name and placement of this in the parsed map (from hive conf vars to - // hive session vars). - public static final String TRANSPORT_MODE_DEPRECATED = "hive.server2.transport.mode"; - public static final String TRANSPORT_MODE = "transportMode"; - // We're deprecating the name and placement of this in the parsed map (from hive conf vars to - // hive session vars). - public static final String HTTP_PATH_DEPRECATED = "hive.server2.thrift.http.path"; - public static final String HTTP_PATH = "httpPath"; - public static final String SERVICE_DISCOVERY_MODE = "serviceDiscoveryMode"; - // Don't use dynamic service discovery - public static final String SERVICE_DISCOVERY_MODE_NONE = "none"; - // Use ZooKeeper for indirection while using dynamic service discovery - public static final String SERVICE_DISCOVERY_MODE_ZOOKEEPER = "zooKeeper"; - public static final String ZOOKEEPER_NAMESPACE = "zooKeeperNamespace"; - // Default namespace value on ZooKeeper. - // This value is used if the param "zooKeeperNamespace" is not specified in the JDBC Uri. - public static final String ZOOKEEPER_DEFAULT_NAMESPACE = "hiveserver2"; - // Non-configurable params: - // Currently supports JKS keystore format - public static final String SSL_TRUST_STORE_TYPE = "JKS"; - static final String COOKIE_AUTH = "cookieAuth"; - static final String COOKIE_AUTH_FALSE = "false"; - static final String COOKIE_NAME = "cookieName"; - // The default value of the cookie name when CookieAuth=true - static final String DEFAULT_COOKIE_NAMES_HS2 = "hive.server2.auth"; - static final String HTTP_HEADER_PREFIX = "http.header."; - // --------------- Begin 2 way ssl options ------------------------- - // Use two way ssl. This param will take effect only when ssl=true - static final String USE_TWO_WAY_SSL = "twoWay"; - static final String TRUE = "true"; - static final String SSL_KEY_STORE = "sslKeyStore"; - static final String SSL_KEY_STORE_PASSWORD = "keyStorePassword"; - static final String SSL_KEY_STORE_TYPE = "JKS"; - static final String SUNX509_ALGORITHM_STRING = "SunX509"; - // --------------- End 2 way ssl options ---------------------------- - static final String SUNJSSE_ALGORITHM_STRING = "SunJSSE"; - } -}
http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/client/ViewSessionState.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/client/ViewSessionState.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/client/ViewSessionState.java deleted file mode 100644 index aa6cd47..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/client/ViewSessionState.java +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.client; - -import org.apache.hadoop.hive.conf.HiveConf; -import org.apache.hadoop.hive.ql.session.SessionState; - -public class ViewSessionState extends SessionState { - public ViewSessionState(HiveConf conf) { - super(conf); - } - - public ViewSessionState(HiveConf conf, String userName) { - super(conf, userName); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/DataStoreStorage.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/DataStoreStorage.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/DataStoreStorage.java deleted file mode 100644 index 5457a5c..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/DataStoreStorage.java +++ /dev/null @@ -1,142 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence; - -import org.apache.ambari.view.PersistenceException; -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.hive.persistence.utils.FilteringStrategy; -import org.apache.ambari.view.hive.persistence.utils.Indexed; -import org.apache.ambari.view.hive.persistence.utils.ItemNotFound; -import org.apache.ambari.view.hive.persistence.utils.OnlyOwnersFilteringStrategy; -import org.apache.ambari.view.hive.utils.ServiceFormattedException; -import org.apache.commons.beanutils.BeanUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.ws.rs.WebApplicationException; -import java.beans.Transient; -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.util.ArrayList; -import java.util.LinkedList; -import java.util.List; - -/** - * Engine for storing objects to context DataStore storage - */ -public class DataStoreStorage implements Storage { - private final static Logger LOG = - LoggerFactory.getLogger(DataStoreStorage.class); - - protected ViewContext context; - - /** - * Constructor - * @param context View Context instance - */ - public DataStoreStorage(ViewContext context) { - this.context = context; - } - - @Override - public synchronized void store(Class model, Indexed obj) { - - try { - Indexed newBean = (Indexed) BeanUtils.cloneBean(obj); - preprocessEntity(newBean); - context.getDataStore().store(newBean); - obj.setId(newBean.getId()); - } catch (Exception e) { - throw new ServiceFormattedException("S020 Data storage error", e); - } - } - - private void preprocessEntity(Indexed obj) { - cleanTransientFields(obj); - } - - private void cleanTransientFields(Indexed obj) { - for (Method m : obj.getClass().getMethods()) { - Transient aTransient = m.getAnnotation(Transient.class); - if (aTransient != null && m.getName().startsWith("set")) { - try { - m.invoke(obj, new Object[]{ null }); - } catch (IllegalAccessException e) { - throw new ServiceFormattedException("S030 Data storage error", e); - } catch (InvocationTargetException e) { - throw new ServiceFormattedException("S030 Data storage error", e); - } - } - } - } - - @Override - public synchronized <T extends Indexed> T load(Class<T> model, Object id) throws ItemNotFound { - LOG.debug(String.format("Loading %s #%s", model.getName(), id)); - try { - T obj = context.getDataStore().find(model, id); - if (obj != null) { - return obj; - } else { - throw new ItemNotFound(); - } - } catch (PersistenceException e) { - throw new ServiceFormattedException("S040 Data storage error", e); - } - } - - @Override - public synchronized <T extends Indexed> List<T> loadAll(Class<? extends T> model, FilteringStrategy filter) { - LinkedList<T> list = new LinkedList<T>(); - LOG.debug(String.format("Loading all %s-s", model.getName())); - try { - for(T item: context.getDataStore().findAll(model, filter.whereStatement())) { - list.add(item); - } - } catch (PersistenceException e) { - throw new ServiceFormattedException("S050 Data storage error", e); - } - return list; - } - - @Override - public synchronized <T extends Indexed> List<T> loadAll(Class<T> model) { - return loadAll(model, new OnlyOwnersFilteringStrategy(this.context.getUsername())); - } - - @Override - public synchronized void delete(Class model, Object id) throws ItemNotFound { - LOG.debug(String.format("Deleting %s:%s", model.getName(), id)); - Object obj = load(model, id); - try { - context.getDataStore().remove(obj); - } catch (PersistenceException e) { - throw new ServiceFormattedException("S060 Data storage error", e); - } - } - - @Override - public boolean exists(Class model, Object id) { - try { - return context.getDataStore().find(model, id) != null; - } catch (PersistenceException e) { - throw new ServiceFormattedException("S070 Data storage error", e); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/IStorageFactory.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/IStorageFactory.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/IStorageFactory.java deleted file mode 100644 index 298d4c8..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/IStorageFactory.java +++ /dev/null @@ -1,23 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence; - -public interface IStorageFactory { - Storage getStorage(); -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/InstanceKeyValueStorage.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/InstanceKeyValueStorage.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/InstanceKeyValueStorage.java deleted file mode 100644 index 98703fa..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/InstanceKeyValueStorage.java +++ /dev/null @@ -1,135 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.hive.persistence.utils.ContextConfigurationAdapter; -import org.apache.ambari.view.hive.persistence.utils.Indexed; -import org.apache.ambari.view.hive.utils.ServiceFormattedException; -import org.apache.commons.configuration.Configuration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - -import javax.ws.rs.WebApplicationException; -import java.util.List; - - -/** - * Persistent storage engine for storing java beans to - * instance data - */ -@Deprecated -public class InstanceKeyValueStorage extends KeyValueStorage { - private final static Logger LOG = - LoggerFactory.getLogger(InstanceKeyValueStorage.class); - - private ContextConfigurationAdapter config = null; - private int VALUE_LENGTH_LIMIT = 254; - - /** - * Constructor. - * @param context View Context instance - */ - public InstanceKeyValueStorage(ViewContext context) { - super(context); - } - - /** - * Returns config instance, adapter to Persistence API - * @return config instance - */ - @Override - protected synchronized Configuration getConfig() { - if (config == null) { - config = new ContextConfigurationAdapter(context); - } - return config; - } - - /** - * Value is limited to 256 symbols, this code splits value into chunks and saves them as <key>#<chunk_id> - * @param modelPropName key - * @param json value - */ - protected void write(String modelPropName, String json) { - int saved = 0; - int page = 1; - while (saved < json.length()) { - int end = Math.min(saved + VALUE_LENGTH_LIMIT, json.length()); - String substring = json.substring(saved, end); - getConfig().setProperty(modelPropName + "#" + page, substring); - saved += VALUE_LENGTH_LIMIT; - page += 1; - LOG.debug("Chunk saved: " + modelPropName + "#" + page + "=" + substring); - } - getConfig().setProperty(modelPropName, page - 1); - LOG.debug("Write finished: " + modelPropName + " pages:" + (page - 1)); - } - - /** - * Read chunked value (keys format <key>#<chunk_id>) - * @param modelPropName key - * @return value - */ - protected String read(String modelPropName) { - StringBuilder result = new StringBuilder(); - int pages = getConfig().getInt(modelPropName); - LOG.debug("Read started: " + modelPropName + " pages:" + pages); - - for(int page = 1; page <= pages; page++) { - String substring = getConfig().getString(modelPropName + "#" + page); - LOG.debug("Chunk read: " + modelPropName + "#" + page + "=" + substring); - if (substring != null) { - result.append(substring); - } - } - - return result.toString(); - } - - /** - * Remove chunked value (keys format <key>#<chunk_id>) - * @param modelPropName key - */ - protected void clear(String modelPropName) { - int pages = getConfig().getInt(modelPropName); - LOG.debug("Clean started: " + modelPropName + " pages:" + pages); - - for(int page = 1; page <= pages; page++) { - getConfig().clearProperty(modelPropName + "#" + page); - LOG.debug("Chunk clean: " + modelPropName + "#" + page); - } - getConfig().clearProperty(modelPropName); - } - - public static void storageSmokeTest(ViewContext context) { - try { - final String property = "test.smoke.property"; - context.putInstanceData(property, "42"); - boolean status = context.getInstanceData(property).equals("42"); - context.removeInstanceData(property); - if (!status) throw new ServiceFormattedException("Ambari Views instance data DB doesn't work properly", null); - } catch (WebApplicationException ex) { - throw ex; - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/KeyValueStorage.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/KeyValueStorage.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/KeyValueStorage.java deleted file mode 100644 index 6e88063..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/KeyValueStorage.java +++ /dev/null @@ -1,163 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence; - -import com.google.gson.Gson; -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.hive.persistence.utils.FilteringStrategy; -import org.apache.ambari.view.hive.persistence.utils.Indexed; -import org.apache.ambari.view.hive.persistence.utils.ItemNotFound; -import org.apache.ambari.view.hive.persistence.utils.OnlyOwnersFilteringStrategy; -import org.apache.commons.configuration.Configuration; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.List; - -/** - * Engine for storing objects to key-value storage - */ -public abstract class KeyValueStorage implements Storage { - private final static Logger LOG = - LoggerFactory.getLogger(KeyValueStorage.class); - protected final Gson gson = new Gson(); - protected ViewContext context; - - /** - * Constructor - * @param context View Context instance - */ - public KeyValueStorage(ViewContext context) { - this.context = context; - } - - /** - * Returns config instance, adapter to Persistence API - * @return config instance - */ - protected abstract Configuration getConfig(); - - @Override - public <T extends Indexed> void store(Class<T> model, Indexed obj) { - String modelIndexingPropName = getIndexPropertyName(model); - - if (obj.getId() == null) { - int lastIndex = getConfig().getInt(modelIndexingPropName, 0); - lastIndex ++; - getConfig().setProperty(modelIndexingPropName, lastIndex); - obj.setId(String.valueOf(lastIndex)); - } - - String modelPropName = getItemPropertyName(model, obj.getId()); - String json = serialize(obj); - write(modelPropName, json); - } - - @Override - public <T extends Indexed> T load(Class<T> model, Object id) throws ItemNotFound { - String modelPropName = getItemPropertyName(model, id); - LOG.debug(String.format("Loading %s", modelPropName)); - if (getConfig().containsKey(modelPropName)) { - String json = read(modelPropName); - LOG.debug(String.format("json: %s", json)); - - return deserialize(model, json); - } else { - throw new ItemNotFound(); - } - } - - /** - * Write json to storage - * @param modelPropName key - * @param json value - */ - protected void write(String modelPropName, String json) { - getConfig().setProperty(modelPropName, json); - } - - /** - * Read json from storage - * @param modelPropName key - * @return value - */ - protected String read(String modelPropName) { - return getConfig().getString(modelPropName); - } - - /** - * Remove line from storage - * @param modelPropName key - */ - protected void clear(String modelPropName) { - getConfig().clearProperty(modelPropName); - } - - protected String serialize(Indexed obj) { - return gson.toJson(obj); - } - - protected <T extends Indexed> T deserialize(Class<T> model, String json) { - return gson.fromJson(json, model); - } - - @Override - public synchronized <T extends Indexed> List<T> loadAll(Class<? extends T> model, FilteringStrategy filter) { - ArrayList<T> list = new ArrayList<T>(); - String modelIndexingPropName = getIndexPropertyName(model); - LOG.debug(String.format("Loading all %s-s", model.getName())); - int lastIndex = getConfig().getInt(modelIndexingPropName, 0); - for(int i=1; i<=lastIndex; i++) { - try { - T item = load(model, i); - if ((filter == null) || filter.isConform(item)) { - list.add(item); - } - } catch (ItemNotFound ignored) { - } - } - return list; - } - - @Override - public synchronized <T extends Indexed> List<T> loadAll(Class<T> model) { - return loadAll(model, new OnlyOwnersFilteringStrategy(this.context.getUsername())); - } - - @Override - public synchronized void delete(Class model, Object id) { - LOG.debug(String.format("Deleting %s:%s", model.getName(), id)); - String modelPropName = getItemPropertyName(model, id); - clear(modelPropName); - } - - @Override - public boolean exists(Class model, Object id) { - return getConfig().containsKey(getItemPropertyName(model, id)); - } - - private String getIndexPropertyName(Class model) { - return String.format("%s:index", model.getName()); - } - - private String getItemPropertyName(Class model, Object id) { - return String.format("%s.%s", model.getName(), id); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/LocalKeyValueStorage.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/LocalKeyValueStorage.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/LocalKeyValueStorage.java deleted file mode 100644 index 24ed335..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/LocalKeyValueStorage.java +++ /dev/null @@ -1,73 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.hive.persistence.utils.Indexed; -import org.apache.ambari.view.hive.utils.MisconfigurationFormattedException; -import org.apache.commons.configuration.ConfigurationException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import sun.reflect.generics.reflectiveObjects.NotImplementedException; - -import java.util.List; - - -/** - * Persistent storage engine for storing java beans to - * properties file - * Path to file should be in 'dataworker.storagePath' parameter - */ -@Deprecated -public class LocalKeyValueStorage extends KeyValueStorage { - private final static Logger LOG = - LoggerFactory.getLogger(LocalKeyValueStorage.class); - - private PersistentConfiguration config = null; - - /** - * Constructor - * @param context View Context instance - */ - public LocalKeyValueStorage(ViewContext context) { - super(context); - } - - /** - * Returns config instance - * @return config instance - */ - @Override - protected synchronized PersistentConfiguration getConfig() { - if (config == null) { - String fileName = context.getProperties().get("dataworker.storagePath"); - if (fileName == null) { - String msg = "dataworker.storagePath is not configured!"; - LOG.error(msg); - throw new MisconfigurationFormattedException("dataworker.storagePath"); - } - try { - config = new PersistentConfiguration(fileName); - } catch (ConfigurationException e) { - e.printStackTrace(); - } - } - return config; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/PersistentConfiguration.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/PersistentConfiguration.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/PersistentConfiguration.java deleted file mode 100644 index b8405ff..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/PersistentConfiguration.java +++ /dev/null @@ -1,52 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence; - -import org.apache.commons.configuration.ConfigurationException; -import org.apache.commons.configuration.PropertiesConfiguration; -import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy; - -import java.io.File; - -/** - * Configuration enables all necessary options for PropertiesConfiguration: - * auto-save, auto-reloading, no delimiter parsing and other - */ -@Deprecated -public class PersistentConfiguration extends PropertiesConfiguration { - /** - * Constructor - * @param fileName path to data file - * @throws ConfigurationException - */ - public PersistentConfiguration(String fileName) throws ConfigurationException { - super(); - - File config = new File(fileName); - setFile(config); - this.setAutoSave(true); - this.setReloadingStrategy(new FileChangedReloadingStrategy()); - this.setDelimiterParsingDisabled(true); - this.setListDelimiter((char) 0); - - if (config.exists()) { - this.load(); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/Storage.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/Storage.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/Storage.java deleted file mode 100644 index a34f566..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/Storage.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence; - -import org.apache.ambari.view.hive.persistence.utils.FilteringStrategy; -import org.apache.ambari.view.hive.persistence.utils.Indexed; -import org.apache.ambari.view.hive.persistence.utils.ItemNotFound; - -import java.util.List; - -/** - * Object storage interface - */ -public interface Storage { - /** - * Persist object to DB. It should be Indexed - * @param obj object to save - */ - <T extends Indexed> void store(Class<T> model, Indexed obj); - - /** - * Load object - * @param model bean class - * @param id identifier - * @return bean instance - * @throws ItemNotFound thrown if item with id was not found in DB - */ - <T extends Indexed> T load(Class<T> model, Object id) throws ItemNotFound; - - /** - * Load all objects of given bean class - * @param model bean class - * @param filter filtering strategy (return only those objects that conform condition) - * @param <T> bean class - * @return list of filtered objects - */ - <T extends Indexed> List<T> loadAll(Class<? extends T> model, FilteringStrategy filter); - - /** - * Load all objects of given bean class - * @param model bean class - * @param <T> bean class - * @return list of all objects - */ - <T extends Indexed> List<T> loadAll(Class<T> model); - - /** - * Delete object - * @param model bean class - * @param id identifier - */ - void delete(Class model, Object id) throws ItemNotFound; - - /** - * Check is object exists - * @param model bean class - * @param id identifier - * @return true if exists - */ - boolean exists(Class model, Object id); -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/ContextConfigurationAdapter.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/ContextConfigurationAdapter.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/ContextConfigurationAdapter.java deleted file mode 100644 index afc4c78..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/ContextConfigurationAdapter.java +++ /dev/null @@ -1,260 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence.utils; - -import org.apache.ambari.view.ViewContext; -import org.apache.commons.configuration.Configuration; - -import java.math.BigDecimal; -import java.math.BigInteger; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; - -/** - * Persistence API to Apache Configuration adapter - */ -@Deprecated -public class ContextConfigurationAdapter implements Configuration { - private ViewContext context; - - /** - * Constructor of adapter - * @param context View Context - */ - public ContextConfigurationAdapter(ViewContext context) { - this.context = context; - } - - @Override - public Configuration subset(String prefix) { - throw new UnsupportedOperationException(); - } - - @Override - public boolean isEmpty() { - return context.getInstanceData().isEmpty(); - } - - @Override - public boolean containsKey(String s) { - Map<String, String> data = context.getInstanceData(); - return data.containsKey(s); - } - - @Override - public void addProperty(String s, Object o) { - throw new UnsupportedOperationException(); - } - - @Override - public void setProperty(String s, Object o) { - context.putInstanceData(s, o.toString()); - } - - @Override - public void clearProperty(String key) { - context.removeInstanceData(key); - } - - @Override - public void clear() { - for (String key : context.getInstanceData().keySet()) - context.removeInstanceData(key); - } - - @Override - public Object getProperty(String key) { - return context.getInstanceData(key); - } - - @Override - public Iterator getKeys(String s) { - throw new UnsupportedOperationException(); - } - - @Override - public Iterator getKeys() { - return context.getInstanceData().keySet().iterator(); - } - - @Override - public Properties getProperties(String s) { - throw new UnsupportedOperationException(); - } - - @Override - public boolean getBoolean(String s) { - return getBoolean(s, null); - } - - @Override - public boolean getBoolean(String s, boolean b) { - return getBoolean(s, (Boolean)b); - } - - @Override - public Boolean getBoolean(String s, Boolean aBoolean) { - String data = context.getInstanceData(s); - return (data != null)?Boolean.parseBoolean(data):aBoolean; - } - - @Override - public byte getByte(String s) { - return getByte(s, null); - } - - @Override - public byte getByte(String s, byte b) { - return getByte(s, (Byte)b); - } - - @Override - public Byte getByte(String s, Byte aByte) { - String data = context.getInstanceData(s); - return (data != null)?Byte.parseByte(data):aByte; - } - - @Override - public double getDouble(String s) { - return getDouble(s, null); - } - - @Override - public double getDouble(String s, double v) { - return getDouble(s, (Double)v); - } - - @Override - public Double getDouble(String s, Double aDouble) { - String data = context.getInstanceData(s); - return (data != null)?Double.parseDouble(data):aDouble; - } - - @Override - public float getFloat(String s) { - return getFloat(s, null); - } - - @Override - public float getFloat(String s, float v) { - return getFloat(s, (Float)v); - } - - @Override - public Float getFloat(String s, Float aFloat) { - String data = context.getInstanceData(s); - return (data != null)?Float.parseFloat(data):aFloat; - } - - @Override - public int getInt(String s) { - return getInteger(s, null); - } - - @Override - public int getInt(String s, int i) { - return getInteger(s, i); - } - - @Override - public Integer getInteger(String s, Integer integer) { - String data = context.getInstanceData(s); - return (data != null)?Integer.parseInt(data):integer; - } - - @Override - public long getLong(String s) { - return getLong(s, null); - } - - @Override - public long getLong(String s, long l) { - return getLong(s, (Long)l); - } - - @Override - public Long getLong(String s, Long aLong) { - String data = context.getInstanceData(s); - return (data != null)?Long.parseLong(data):aLong; - } - - @Override - public short getShort(String s) { - return getShort(s, null); - } - - @Override - public short getShort(String s, short i) { - return getShort(s, (Short)i); - } - - @Override - public Short getShort(String s, Short aShort) { - String data = context.getInstanceData(s); - return (data != null)?Short.parseShort(data):aShort; - } - - @Override - public BigDecimal getBigDecimal(String s) { - throw new UnsupportedOperationException(); - } - - @Override - public BigDecimal getBigDecimal(String s, BigDecimal bigDecimal) { - throw new UnsupportedOperationException(); - } - - @Override - public BigInteger getBigInteger(String s) { - throw new UnsupportedOperationException(); - } - - @Override - public BigInteger getBigInteger(String s, BigInteger bigInteger) { - throw new UnsupportedOperationException(); - } - - @Override - public String getString(String s) { - return context.getInstanceData(s); - } - - @Override - public String getString(String s, String s2) { - String data = getString(s); - return (data != null)?data:s2; - } - - @Override - public String[] getStringArray(String s) { - throw new UnsupportedOperationException(); - } - - @Override - public List getList(String s) { - throw new UnsupportedOperationException(); - } - - @Override - public List getList(String s, List list) { - throw new UnsupportedOperationException(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/FilteringStrategy.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/FilteringStrategy.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/FilteringStrategy.java deleted file mode 100644 index eba572e..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/FilteringStrategy.java +++ /dev/null @@ -1,32 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence.utils; - -/** - * Filtering strategy for stored objects - */ -public interface FilteringStrategy { - /** - * Check whether item conforms chosen filter or not - * @param item item to check - * @return true if item conforms this filter - */ - boolean isConform(Indexed item); - String whereStatement(); -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/Indexed.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/Indexed.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/Indexed.java deleted file mode 100644 index 82b7d57..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/Indexed.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence.utils; - -/** - * Interface to represent item with identifier - */ -public interface Indexed { - /** - * Get the ID - * @return ID - */ - String getId(); - - /** - * Set ID - * @param id ID - */ - void setId(String id); -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/ItemNotFound.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/ItemNotFound.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/ItemNotFound.java deleted file mode 100644 index 06976b9..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/ItemNotFound.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.ambari.view.hive.persistence.utils; - -/** - * Thrown when item was not found in DB - */ -public class ItemNotFound extends Exception { - public ItemNotFound() { - } - - public ItemNotFound(String message) { - super(message); - } - - public ItemNotFound(String message, Throwable cause) { - super(message, cause); - } - - public ItemNotFound(Throwable cause) { - super(cause); - } - - public ItemNotFound(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { - super(message, cause, enableSuppression, writableStackTrace); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/OnlyOwnersFilteringStrategy.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/OnlyOwnersFilteringStrategy.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/OnlyOwnersFilteringStrategy.java deleted file mode 100644 index 620f440..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/OnlyOwnersFilteringStrategy.java +++ /dev/null @@ -1,38 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence.utils; - -public class OnlyOwnersFilteringStrategy implements FilteringStrategy { - private final String username; - - public OnlyOwnersFilteringStrategy(String username) { - this.username = username; - } - - @Override - public boolean isConform(Indexed item) { - Owned object = (Owned) item; - return object.getOwner().compareTo(username) == 0; - } - - @Override - public String whereStatement() { - return "owner = '" + username + "'"; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/Owned.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/Owned.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/Owned.java deleted file mode 100644 index 460bf37..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/Owned.java +++ /dev/null @@ -1,36 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence.utils; - -/** - * Interface to represent item with owner - */ -public interface Owned { - /** - * Get the owner - * @return owner - */ - String getOwner(); - - /** - * Set owner - * @param owner owner - */ - void setOwner(String owner); -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/PersonalResource.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/PersonalResource.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/PersonalResource.java deleted file mode 100644 index 1b41edb..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/PersonalResource.java +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence.utils; - -public interface PersonalResource extends Indexed, Owned { -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/StorageFactory.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/StorageFactory.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/StorageFactory.java deleted file mode 100644 index 88a6d66..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/persistence/utils/StorageFactory.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.persistence.utils; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.hive.persistence.DataStoreStorage; -import org.apache.ambari.view.hive.persistence.IStorageFactory; -import org.apache.ambari.view.hive.persistence.LocalKeyValueStorage; -import org.apache.ambari.view.hive.persistence.Storage; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Storage factory, creates storage of Local or Persistence API type. - * Type depends on context configuration: if "dataworker.storagePath" is set, - * storage of Local type will be created. Otherwise, Persistence API will be used. - * - * Storage is singleton. - */ -public class StorageFactory implements IStorageFactory { - protected final static Logger LOG = - LoggerFactory.getLogger(StorageFactory.class); - - private ViewContext context; - - /** - * Constructor of storage factory - * @param context View Context instance - */ - public StorageFactory(ViewContext context) { - this.context = context; - } - - /** - * Creates storage instance - * @return storage instance - */ - public Storage getStorage() { - String fileName = context.getProperties().get("dataworker.storagePath"); - - Storage storageInstance; - if (fileName != null) { - LOG.debug("Using local storage in " + fileName + " to store data"); - // If specifed, use LocalKeyValueStorage - key-value file based storage - storageInstance = new LocalKeyValueStorage(context); - } else { - LOG.debug("Using Persistence API to store data"); - // If not specifed, use ambari-views Persistence API - storageInstance = new DataStoreStorage(context); - } - return storageInstance; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/CRUDResourceManager.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/CRUDResourceManager.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/CRUDResourceManager.java deleted file mode 100644 index c7167a8..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/CRUDResourceManager.java +++ /dev/null @@ -1,131 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.resources; - -import org.apache.ambari.view.hive.persistence.IStorageFactory; -import org.apache.ambari.view.hive.persistence.Storage; -import org.apache.ambari.view.hive.persistence.utils.FilteringStrategy; -import org.apache.ambari.view.hive.persistence.utils.Indexed; -import org.apache.ambari.view.hive.persistence.utils.ItemNotFound; -import org.apache.ambari.view.hive.utils.ServiceFormattedException; - -import java.util.List; - -/** - * CRUD resource manager - * @param <T> Data type with ID - */ -abstract public class CRUDResourceManager<T extends Indexed> implements IResourceManager<T> { - //TODO: refactor: generic parameter gets Fabric for Indexed objects, not objects itself - private Storage storage = null; - - protected final Class<? extends T> resourceClass; - protected IStorageFactory storageFactory; - - /** - * Constructor - * @param resourceClass model class - */ - public CRUDResourceManager(Class<? extends T> resourceClass, IStorageFactory storageFactory) { - this.resourceClass = resourceClass; - this.storageFactory = storageFactory; - } - // CRUD operations - - /** - * Create operation - * @param object object - * @return model object - */ - @Override - public T create(T object) { - object.setId(null); - return this.save(object); - } - - /** - * Read operation - * @param id identifier - * @return model object - * @throws org.apache.ambari.view.hive.persistence.utils.ItemNotFound - */ - @Override - public T read(Object id) throws ItemNotFound { - T object = null; - object = storageFactory.getStorage().load(this.resourceClass, id); - if (!checkPermissions(object)) - throw new ItemNotFound(); - return object; - } - - /** - * Read all objects - * @param filteringStrategy filtering strategy - * @return list of filtered objects - */ - @Override - public List<T> readAll(FilteringStrategy filteringStrategy) { - return storageFactory.getStorage().loadAll(this.resourceClass, filteringStrategy); - } - - /** - * Update operation - * @param newObject new object - * @param id identifier of previous object - * @return model object - * @throws org.apache.ambari.view.hive.persistence.utils.ItemNotFound - */ - @Override - public T update(T newObject, String id) throws ItemNotFound { - newObject.setId(id); - this.save(newObject); - return newObject; - } - - /** - * Delete operation - * @param resourceId object identifier - * @throws org.apache.ambari.view.hive.persistence.utils.ItemNotFound - */ - @Override - public void delete(Object resourceId) throws ItemNotFound { - if (!storageFactory.getStorage().exists(this.resourceClass, resourceId)) { - throw new ItemNotFound(); - } - storageFactory.getStorage().delete(this.resourceClass, resourceId); - } - - // UTILS - - protected T save(T object) { - storageFactory.getStorage().store(resourceClass, object); - return object; - } - - protected abstract boolean checkPermissions(T object); - - protected void cleanupAfterErrorAndThrowAgain(Indexed object, ServiceFormattedException e) { - try { - delete(object.getId()); - } catch (ItemNotFound itemNotFound) { - throw new ServiceFormattedException("E040 Item not found", itemNotFound); - } - throw e; - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/IResourceManager.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/IResourceManager.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/IResourceManager.java deleted file mode 100644 index 222d695..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/IResourceManager.java +++ /dev/null @@ -1,37 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.resources; - -import org.apache.ambari.view.hive.persistence.utils.FilteringStrategy; -import org.apache.ambari.view.hive.persistence.utils.Indexed; -import org.apache.ambari.view.hive.persistence.utils.ItemNotFound; - -import java.util.List; - -public interface IResourceManager<T extends Indexed> { - T create(T object); - - T read(Object id) throws ItemNotFound; - - List<T> readAll(FilteringStrategy filteringStrategy); - - T update(T newObject, String id) throws ItemNotFound; - - void delete(Object resourceId) throws ItemNotFound; -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/PersonalCRUDResourceManager.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/PersonalCRUDResourceManager.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/PersonalCRUDResourceManager.java deleted file mode 100644 index e8ce02e..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/PersonalCRUDResourceManager.java +++ /dev/null @@ -1,99 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.resources; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.hive.persistence.IStorageFactory; -import org.apache.ambari.view.hive.persistence.utils.ItemNotFound; -import org.apache.ambari.view.hive.persistence.utils.PersonalResource; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.concurrent.Callable; - -/** - * Resource manager that returns only user owned elements from DB - * @param <T> Data type with ID and Owner - */ -public class PersonalCRUDResourceManager<T extends PersonalResource> extends CRUDResourceManager<T> { - protected boolean ignorePermissions = false; - - private final static Logger LOG = - LoggerFactory.getLogger(PersonalCRUDResourceManager.class); - protected ViewContext context; - - /** - * Constructor - * @param resourceClass model class - */ - public PersonalCRUDResourceManager(Class<? extends T> resourceClass, IStorageFactory storageFabric, ViewContext context) { - super(resourceClass, storageFabric); - this.context = context; - } - - @Override - public T update(T newObject, String id) throws ItemNotFound { - T object = storageFactory.getStorage().load(this.resourceClass, id); - if (object.getOwner().compareTo(this.context.getUsername()) != 0) { - throw new ItemNotFound(); - } - - newObject.setOwner(this.context.getUsername()); - return super.update(newObject, id); - } - - @Override - public T save(T object) { - if (!ignorePermissions) { - // in threads permissions should be ignored, - // because context.getUsername doesn't work. See BUG-27093. - object.setOwner(this.context.getUsername()); - } - return super.save(object); - } - - @Override - protected boolean checkPermissions(T object) { - if (ignorePermissions) { - return true; - } - return object.getOwner().compareTo(this.context.getUsername()) == 0; - } - - /** - * Execute action ignoring objects owner - * @param actions callable to execute - * @return value returned from actions - * @throws Exception - */ - public T ignorePermissions(Callable<T> actions) throws Exception { - ignorePermissions = true; - T result; - try { - result = actions.call(); - } finally { - ignorePermissions = false; - } - return result; - } - - protected String getUsername() { - return context.getUsername(); - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/SharedCRUDResourceManager.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/SharedCRUDResourceManager.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/SharedCRUDResourceManager.java deleted file mode 100644 index 9c4ca36..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/SharedCRUDResourceManager.java +++ /dev/null @@ -1,44 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.resources; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.hive.persistence.IStorageFactory; -import org.apache.ambari.view.hive.persistence.utils.Indexed; - -/** - * Resource manager that doesn't restrict access (Allow all) - * @param <T> Data type with ID - */ -public class SharedCRUDResourceManager<T extends Indexed> extends CRUDResourceManager<T> { - protected ViewContext context; - - /** - * Constructor - * @param responseClass model class - */ - public SharedCRUDResourceManager(Class<T> responseClass, IStorageFactory storageFabric) { - super(responseClass, storageFabric); - } - - @Override - protected boolean checkPermissions(T object) { - return true; //everyone has permission - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/browser/HiveBrowserService.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/browser/HiveBrowserService.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/browser/HiveBrowserService.java deleted file mode 100644 index f758fe3..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/browser/HiveBrowserService.java +++ /dev/null @@ -1,276 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.apache.ambari.view.hive.resources.browser; - -import org.apache.ambari.view.ViewContext; -import org.apache.ambari.view.ViewResourceHandler; -import org.apache.ambari.view.hive.client.ColumnDescription; -import org.apache.ambari.view.hive.client.Cursor; -import org.apache.ambari.view.hive.client.UserLocalConnection; -import org.apache.ambari.view.hive.resources.jobs.ResultsPaginationController; -import org.apache.ambari.view.hive.utils.BadRequestFormattedException; -import org.apache.ambari.view.hive.utils.ServiceFormattedException; -import org.apache.ambari.view.hive.utils.SharedObjectsFactory; -import org.apache.commons.collections4.map.PassiveExpiringMap; -import org.apache.hive.service.cli.thrift.TSessionHandle; -import org.json.simple.JSONObject; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import javax.inject.Inject; -import javax.ws.rs.*; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.concurrent.Callable; - -/** - * Database access resource - */ -public class HiveBrowserService { - @Inject - ViewResourceHandler handler; - @Inject - protected ViewContext context; - - protected final static Logger LOG = - LoggerFactory.getLogger(HiveBrowserService.class); - - private static final long EXPIRING_TIME = 10*60*1000; // 10 minutes - private static Map<String, Cursor> resultsCache; - private UserLocalConnection connectionLocal = new UserLocalConnection(); - - public static Map<String, Cursor> getResultsCache() { - if (resultsCache == null) { - PassiveExpiringMap<String, Cursor> resultsCacheExpiringMap = - new PassiveExpiringMap<String, Cursor>(EXPIRING_TIME); - resultsCache = Collections.synchronizedMap(resultsCacheExpiringMap); - } - return resultsCache; - } - - /** - * Returns list of databases - */ - @GET - @Path("database") - @Produces(MediaType.APPLICATION_JSON) - public Response databases(@QueryParam("like")String like, - @QueryParam("first") String fromBeginning, - @QueryParam("count") Integer count, - @QueryParam("columns") final String requestedColumns) { - if (like == null) - like = "*"; - else - like = "*" + like + "*"; - String curl = null; - try { - JSONObject response = new JSONObject(); - TSessionHandle session = connectionLocal.get(context).getOrCreateSessionByTag("DDL"); - List<String> tables = connectionLocal.get(context).ddl().getDBList(session, like); - response.put("databases", tables); - return Response.ok(response).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (IllegalArgumentException ex) { - throw new BadRequestFormattedException(ex.getMessage(), ex); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex, curl); - } - } - - /** - * Returns list of databases - */ - @GET - @Path("database.page") - @Produces(MediaType.APPLICATION_JSON) - public Response databasesPaginated(@QueryParam("like")String like, - @QueryParam("first") String fromBeginning, - @QueryParam("count") Integer count, - @QueryParam("searchId") String searchId, - @QueryParam("format") String format, - @QueryParam("columns") final String requestedColumns) { - if (like == null) - like = "*"; - else - like = "*" + like + "*"; - String curl = null; - try { - final String finalLike = like; - return ResultsPaginationController.getInstance(context) - .request("databases", searchId, false, fromBeginning, count, format, - new Callable<Cursor>() { - @Override - public Cursor call() throws Exception { - TSessionHandle session = connectionLocal.get(context).getOrCreateSessionByTag("DDL"); - return connectionLocal.get(context).ddl().getDBListCursor(session, finalLike); - } - }).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (IllegalArgumentException ex) { - throw new BadRequestFormattedException(ex.getMessage(), ex); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex, curl); - } - } - - /** - * Returns list of databases - */ - @GET - @Path("database/{db}/table") - @Produces(MediaType.APPLICATION_JSON) - public Response tablesInDatabase(@PathParam("db") String db, - @QueryParam("like")String like, - @QueryParam("first") String fromBeginning, - @QueryParam("count") Integer count, - @QueryParam("columns") final String requestedColumns) { - if (like == null) - like = "*"; - else - like = "*" + like + "*"; - String curl = null; - try { - JSONObject response = new JSONObject(); - TSessionHandle session = connectionLocal.get(context).getOrCreateSessionByTag("DDL"); - List<String> tables = connectionLocal.get(context).ddl().getTableList(session, db, like); - response.put("tables", tables); - response.put("database", db); - return Response.ok(response).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (IllegalArgumentException ex) { - throw new BadRequestFormattedException(ex.getMessage(), ex); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex, curl); - } - } - - /** - * Returns list of databases - */ - @GET - @Path("database/{db}/table.page") - @Produces(MediaType.APPLICATION_JSON) - public Response tablesInDatabasePaginated(@PathParam("db") final String db, - @QueryParam("like")String like, - @QueryParam("first") String fromBeginning, - @QueryParam("count") Integer count, - @QueryParam("searchId") String searchId, - @QueryParam("format") String format, - @QueryParam("columns") final String requestedColumns) { - if (like == null) - like = "*"; - else - like = "*" + like + "*"; - String curl = null; - try { - final String finalLike = like; - return ResultsPaginationController.getInstance(context) - .request(db + ":tables", searchId, false, fromBeginning, count, format, - new Callable<Cursor>() { - @Override - public Cursor call() throws Exception { - TSessionHandle session = connectionLocal.get(context).getOrCreateSessionByTag("DDL"); - Cursor cursor = connectionLocal.get(context).ddl().getTableListCursor(session, db, finalLike); - cursor.selectColumns(requestedColumns); - return cursor; - } - }).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (IllegalArgumentException ex) { - throw new BadRequestFormattedException(ex.getMessage(), ex); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex, curl); - } - } - - /** - * Returns list of databases - */ - @GET - @Path("database/{db}/table/{table}") - @Produces(MediaType.APPLICATION_JSON) - public Response describeTable(@PathParam("db") String db, - @PathParam("table") String table, - @QueryParam("like") String like, - @QueryParam("columns") String requestedColumns, - @QueryParam("extended") String extended) { - boolean extendedTableDescription = (extended != null && extended.equals("true")); - String curl = null; - try { - JSONObject response = new JSONObject(); - TSessionHandle session = connectionLocal.get(context).getOrCreateSessionByTag("DDL"); - List<ColumnDescription> columnDescriptions = connectionLocal.get(context).ddl() - .getTableDescription(session, db, table, like, extendedTableDescription); - response.put("columns", columnDescriptions); - response.put("database", db); - response.put("table", table); - return Response.ok(response).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (IllegalArgumentException ex) { - throw new BadRequestFormattedException(ex.getMessage(), ex); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex, curl); - } - } - - /** - * Returns list of databases - */ - @GET - @Path("database/{db}/table/{table}.page") - @Produces(MediaType.APPLICATION_JSON) - public Response describeTablePaginated(@PathParam("db") final String db, - @PathParam("table") final String table, - @QueryParam("like") final String like, - @QueryParam("first") String fromBeginning, - @QueryParam("searchId") String searchId, - @QueryParam("count") Integer count, - @QueryParam("format") String format, - @QueryParam("columns") final String requestedColumns) { - String curl = null; - try { - return ResultsPaginationController.getInstance(context) - .request(db + ":tables:" + table + ":columns", searchId, false, fromBeginning, count, format, - new Callable<Cursor>() { - @Override - public Cursor call() throws Exception { - TSessionHandle session = connectionLocal.get(context).getOrCreateSessionByTag("DDL"); - Cursor cursor = connectionLocal.get(context).ddl(). - getTableDescriptionCursor(session, db, table, like); - cursor.selectColumns(requestedColumns); - return cursor; - } - }).build(); - } catch (WebApplicationException ex) { - throw ex; - } catch (IllegalArgumentException ex) { - throw new BadRequestFormattedException(ex.getMessage(), ex); - } catch (Exception ex) { - throw new ServiceFormattedException(ex.getMessage(), ex, curl); - } - } -} http://git-wip-us.apache.org/repos/asf/ambari/blob/c0f9621f/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/files/FileResource.java ---------------------------------------------------------------------- diff --git a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/files/FileResource.java b/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/files/FileResource.java deleted file mode 100644 index 633e859..0000000 --- a/contrib/views/hive/src/main/java/org/apache/ambari/view/hive/resources/files/FileResource.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.ambari.view.hive.resources.files; - -/** - * File bean - */ -public class FileResource { - private String filePath; - private String fileContent; - private boolean hasNext; - private long page; - private long pageCount; - - public String getFilePath() { - return filePath; - } - - public void setFilePath(String filePath) { - this.filePath = filePath; - } - - public String getFileContent() { - return fileContent; - } - - public void setFileContent(String fileContent) { - this.fileContent = fileContent; - } - - public boolean isHasNext() { - return hasNext; - } - - public void setHasNext(boolean hasNext) { - this.hasNext = hasNext; - } - - public long getPage() { - return page; - } - - public void setPage(long page) { - this.page = page; - } - - public long getPageCount() { - return pageCount; - } - - public void setPageCount(long pageCount) { - this.pageCount = pageCount; - } -} \ No newline at end of file