blob: f3d15797699196f18732d4a787807d8ad77fb58c [file] [log] [blame]
/*
* 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.geode.admin;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Date;
/**
* AdminConfig loads/stores the member information list. The list contains all of the members being
* monitored.
*
* Config must be of the format:
* <p>
* <li>Name=What you want displayed as a name for the instance
* <li>Type=SERVER|CLIENT
* <li>Host=A valid hostname or IP Address where the instance is running
* <li>Port=The port you are using to open the monitor port for the instance
*
* @deprecated as of 7.0 use the <code><a href=
* "{@docRoot}/org/apache/geode/management/package-summary.html">management</a></code>
* package instead
*/
public class AdminConfig {
// Name, Type, Host, Port
public static Entry[] loadConfig(File file) throws IOException {
// Place all lines into stack
ArrayList entryList = new ArrayList();
FileReader reader = null;
BufferedReader fileReader = null;
try {
reader = new FileReader(file);
fileReader = new BufferedReader(reader);
// Read the first line.
String line = fileReader.readLine();
while (line != null) {
line = line.trim();
// Replace tabs with spaces
line = line.replace('\t', ' ');
// Skip all empty and comment lines
if (line.length() != 0 && line.startsWith("#") == false) {
try {
entryList.add(new Entry(line));
} catch (Exception ex) {
// ignore - drop any lines that are not valid
}
}
line = fileReader.readLine();
}
} finally {
if (fileReader != null) {
fileReader.close();
}
if (reader != null) {
reader.close();
}
}
return (Entry[]) entryList.toArray(new Entry[0]);
}
public static void storeConfig(File file, AdminConfig.Entry entries[]) throws IOException {
FileOutputStream fos = null;
PrintStream ps = null;
try {
fos = new FileOutputStream(file);
ps = new PrintStream(fos);
// Header
ps.print("#");
ps.println(
"This file is generated by AdminConsole. Edit as you wish but it will be overwritten if it is modified in AdminConsole.");
ps.println("#");
ps.println(String.format("Modified %s", new Date()));
ps.println("#");
ps.println("# Name, Type, Host, Port");
ps.println("#");
int len = entries.length;
for (int i = 0; i < len; i++) {
ps.println(entries[i].toString());
}
ps.flush();
} finally {
if (ps != null) {
ps.close();
}
if (fos != null) {
fos.close();
}
}
}
public static class Entry {
public String name;
public String type;
public String host;
public int port;
public Entry(String line) {
// Split
String split[] = line.split(",");
// Convert line to parameters
name = split[0].trim();
type = split[1].trim();
host = split[2].trim();
port = Integer.parseInt(split[3]);
}
public Entry(String name, String type, String host, int port) {
this.name = name;
this.type = type;
this.host = host;
this.port = port;
}
@Override // GemStoneAddition
public String toString() {
return name + "," + type + "," + host + "," + port;
}
}
}