| /* |
| * 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 |
| <<<<<<< Updated upstream |
| * |
| * 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 |
| ======= |
| * |
| * https://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 |
| >>>>>>> Stashed changes |
| * limitations under the License. |
| */ |
| |
| package org.apache.jdo.tck.util; |
| |
| import java.io.File; |
| import java.io.FileNotFoundException; |
| import java.io.FileOutputStream; |
| import java.io.PrintStream; |
| import java.util.Enumeration; |
| import java.util.Properties; |
| import javax.jdo.JDOFatalException; |
| |
| /** A class to produce a text summary of system configuration information. */ |
| public class SystemCfgSummary { |
| |
| /** The name of the system configuration summary file. */ |
| private static final String SYSCFG_FILE_NAME = "system_config.txt"; |
| |
| private static String newLine; |
| |
| /** |
| * Creates a new file containing system configuration information. |
| * |
| * @param args the first element contains the output directory; the second element contains the |
| * file name |
| */ |
| public static void main(String[] args) { |
| String directory = args[0] + File.separator; |
| String fileName = null; |
| if (args[1] != null) { |
| fileName = args[1]; |
| } else { |
| fileName = SYSCFG_FILE_NAME; |
| } |
| newLine = System.getProperty("line.separator"); |
| String message = getSystemInfo(); |
| if (message == null) { |
| message = "No system information found."; |
| } |
| saveSystemInfo(directory + fileName, message); |
| } |
| |
| /** |
| * Gets system information from System properties |
| * |
| * @return System property keys and values as a String, one per line |
| */ |
| static String getSystemInfo() { |
| |
| Properties props = System.getProperties(); |
| Enumeration<?> propEnum = props.propertyNames(); |
| StringBuilder sysinfo = new StringBuilder(); |
| while (propEnum.hasMoreElements()) { |
| String key = (String) propEnum.nextElement(); |
| sysinfo.append(key + ": " + props.getProperty(key) + newLine); |
| } |
| return sysinfo.toString(); |
| } |
| |
| /** |
| * Saves the given message to the system configuration summary file in the given directory. |
| * |
| * @param path the path |
| * @param message the message |
| */ |
| static void saveSystemInfo(String path, String message) { |
| try (PrintStream resultStream = new PrintStream(new FileOutputStream(path, true))) { |
| resultStream.println(message); |
| } catch (FileNotFoundException e) { |
| throw new JDOFatalException("Cannot create file " + path, e); |
| } |
| } |
| } |