This project has retired. For details please refer to its
Attic page.
001 /**
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018 package org.apache.oozie.util;
019
020 import java.util.Properties;
021 import java.util.Set;
022 import java.io.StringWriter;
023 import java.io.IOException;
024 import java.io.StringReader;
025 import java.io.Reader;
026
027 import org.apache.hadoop.conf.Configuration;
028 import org.apache.oozie.ErrorCode;
029 import org.apache.oozie.command.CommandException;
030
031 public class PropertiesUtils {
032
033 public static final String HADOOP_UGI = "hadoop.job.ugi";
034 public static final String HADOOP_USER = "user.name";
035 public static final String YEAR = "YEAR";
036 public static final String MONTH = "MONTH";
037 public static final String DAY = "DAY";
038 public static final String HOUR = "HOUR";
039 public static final String MINUTE = "MINUTE";
040 public static final String DAYS = "DAYS";
041 public static final String HOURS = "HOURS";
042 public static final String MINUTES = "MINUTES";
043 public static final String KB = "KB";
044 public static final String MB = "MB";
045 public static final String GB = "GB";
046 public static final String TB = "TB";
047 public static final String PB = "PB";
048 public static final String RECORDS = "RECORDS";
049 public static final String MAP_IN = "MAP_IN";
050 public static final String MAP_OUT = "MAP_OUT";
051 public static final String REDUCE_IN = "REDUCE_IN";
052 public static final String REDUCE_OUT = "REDUCE_OUT";
053 public static final String GROUPS = "GROUPS";
054
055 public static String propertiesToString(Properties props) {
056 ParamChecker.notNull(props, "props");
057 try {
058 StringWriter sw = new StringWriter();
059 props.store(sw, "");
060 sw.close();
061 return sw.toString();
062 }
063 catch (IOException ex) {
064 throw new RuntimeException(ex);
065 }
066 }
067
068 public static Properties stringToProperties(String str) {
069 ParamChecker.notNull(str, "str");
070 try {
071 StringReader sr = new StringReader(str);
072 Properties props = new Properties();
073 props.load(sr);
074 sr.close();
075 return props;
076 }
077 catch (IOException ex) {
078 throw new RuntimeException(ex);
079 }
080 }
081
082 public static Properties readProperties(Reader reader, int maxDataLen) throws IOException {
083 String data = IOUtils.getReaderAsString(reader, maxDataLen);
084 return stringToProperties(data);
085 }
086
087 /**
088 * Create a set from an array
089 *
090 * @param properties String array
091 * @param set String set
092 */
093 public static void createPropertySet(String[] properties, Set<String> set) {
094 ParamChecker.notNull(set, "set");
095 for (String p : properties) {
096 set.add(p);
097 }
098 }
099
100 /**
101 * Validate against DISALLOWED Properties.
102 *
103 * @param conf : configuration to check.
104 * @throws CommandException
105 */
106 public static void checkDisallowedProperties(Configuration conf, Set<String> set) throws CommandException {
107 ParamChecker.notNull(conf, "conf");
108 for (String prop : set) {
109 if (conf.get(prop) != null) {
110 throw new CommandException(ErrorCode.E0808, prop);
111 }
112 }
113 }
114
115 }