This project has retired. For details please refer to its Attic page.
ClusterConfig xref
View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *     http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  
19  package org.apache.hadoop.chukwa.util;
20  
21  
22  import java.io.*;
23  import java.util.*;
24  
25  public class ClusterConfig {
26    public static final HashMap<String, String> clusterMap = new HashMap<String, String>();
27    private String path = System.getenv("CHUKWA_CONF_DIR") + File.separator;
28  
29    static public String getContents(File aFile) {
30      // ...checks on aFile are elided
31      StringBuffer contents = new StringBuffer();
32  
33      try {
34        // use buffering, reading one line at a time
35        // FileReader always assumes default encoding is OK!
36        BufferedReader input = new BufferedReader(new FileReader(aFile));
37        try {
38          String line = null; // not declared within while loop
39          /*
40           * readLine is a bit quirky : it returns the content of a line MINUS the
41           * newline. it returns null only for the END of the stream. it returns
42           * an empty String if two newlines appear in a row.
43           */
44          while ((line = input.readLine()) != null) {
45            contents.append(line);
46            contents.append(System.getProperty("line.separator"));
47          }
48        } finally {
49          input.close();
50        }
51      } catch (IOException ex) {
52        ex.printStackTrace();
53      }
54  
55      return contents.toString();
56    }
57  
58    public ClusterConfig() {
59      File cc = new File(path + "jdbc.conf");
60      String buffer = getContents(cc);
61      String[] lines = buffer.split("\n");
62      for (String line : lines) {
63        String[] data = line.split("=", 2);
64        clusterMap.put(data[0], data[1]);
65      }
66    }
67  
68    public String getURL(String cluster) {
69      String url = clusterMap.get(cluster);
70      return url;
71    }
72  
73    public Iterator<String> getClusters() {
74      Set<String> keys = clusterMap.keySet();
75      Iterator<String> i = keys.iterator();
76      return i;
77    }
78  }