java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java
branchv_0
changeset 200 2e351d7c26c4
parent 197 7a2f535017e4
child 201 d3db5a72a089
--- a/java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java	Sun May 24 18:45:46 2015 +0200
+++ b/java/sql-dk/src/info/globalcode/sql/dk/InfoLister.java	Sun May 24 19:10:25 2015 +0200
@@ -42,6 +42,7 @@
 import java.util.EnumSet;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Map.Entry;
 import java.util.ServiceLoader;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
@@ -88,6 +89,8 @@
 				case DATABASES:
 				case FORMATTERS:
 				case TYPES:
+				case JAVA_PROPERTIES:
+				case ENVIRONMENT_VARIABLES:
 					formattinNeeded = true;
 					break;
 			}
@@ -116,6 +119,24 @@
 		}
 	}
 
+	private void listJavaProperties() throws FormatterException, ConfigurationException {
+		ColumnsHeader header = constructHeader(new HeaderField("name", SQLType.VARCHAR), new HeaderField("value", SQLType.VARCHAR));
+		List<Object[]> data = new ArrayList<>();
+		for (Entry<Object, Object> e : System.getProperties().entrySet()) {
+			data.add(new Object[]{e.getKey(), e.getValue()});
+		}
+		printTable(formatter, header, "-- Java system properties", null, data);
+	}
+
+	private void listEnvironmentVariables() throws FormatterException, ConfigurationException {
+		ColumnsHeader header = constructHeader(new HeaderField("name", SQLType.VARCHAR), new HeaderField("value", SQLType.VARCHAR));
+		List<Object[]> data = new ArrayList<>();
+		for (Entry<String, String> e : System.getenv().entrySet()) {
+			data.add(new Object[]{e.getKey(), e.getValue()});
+		}
+		printTable(formatter, header, "-- environment variables", null, data);
+	}
+
 	private void listFormatters() throws ConfigurationException, FormatterException {
 		ColumnsHeader header = constructHeader(
 				new HeaderField("name", SQLType.VARCHAR),
@@ -497,6 +518,18 @@
 						infoLister.printResource(Constants.LICENSE_FILE);
 					}
 				},
+		JAVA_PROPERTIES {
+					@Override
+					public void showInfo(InfoLister infoLister) throws FormatterException, ConfigurationException {
+						infoLister.listJavaProperties();
+					}
+				},
+		ENVIRONMENT_VARIABLES {
+					@Override
+					public void showInfo(InfoLister infoLister) throws FormatterException, ConfigurationException {
+						infoLister.listEnvironmentVariables();
+					}
+				},
 		FORMATTERS {
 					@Override
 					public void showInfo(InfoLister infoLister) throws FormatterException, ConfigurationException {