Java tutorial
package org.focusns.service.env.impl; /* * #%L * FocusSNS Runtime * %% * Copyright (C) 2011 - 2013 FocusSNS * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as * published by the Free Software Foundation, either version 2.1 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Lesser Public License for more details. * * You should have received a copy of the GNU General Lesser Public * License along with this program. If not, see * <http://www.gnu.org/licenses/lgpl-2.1.html>. * #L% */ import java.sql.DatabaseMetaData; import java.sql.SQLException; import java.util.Map; import java.util.Properties; import javax.sql.DataSource; import org.focusns.model.env.Environment.Type; import org.focusns.model.env.Environment; import org.focusns.model.env.EnvironmentDB; import org.focusns.model.env.EnvironmentJava; import org.focusns.model.env.EnvironmentOS; import org.focusns.service.env.EnvironmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class EnvironmentServiceImpl implements EnvironmentService { @Autowired private DataSource dataSource; private EnvironmentOS envOS; private EnvironmentJava envJava; public Environment lookupEnvironment(Type type) { if (Type.OS == type) { return lookupOS(); } else if (Type.JRE == type) { return lookupJava(); } else if (Type.DB == type) { return lookupDB(); } // throw new IllegalArgumentException(type.toString()); } protected Environment lookupOS() { if (envOS == null) { Properties props = System.getProperties(); Map<String, String> env = System.getenv(); // envOS = new EnvironmentOS(); envOS.setOsName(props.getProperty("os.name")); envOS.setOsVersion(props.getProperty("os.version")); envOS.setOsArch(props.getProperty("os.arch")); envOS.setOsPatch(props.getProperty("sun.os.patch.level")); envOS.setOsPath(env.get("Path")); } // return envOS; } protected Environment lookupJava() { if (envJava == null) { Properties props = System.getProperties(); Map<String, String> env = System.getenv(); // envJava = new EnvironmentJava(); envJava.setJavaVendor(props.getProperty("java.vendor")); envJava.setJavaVersion(props.getProperty("java.version")); envJava.setJavaHome(env.get("JAVA_HOME")); envJava.setJavaOptions(env.get("JAVA_OPTS")); envJava.setJavaClassPath(props.getProperty("java.class.path")); envJava.setJavaLibraryPath(props.getProperty("java.library.path")); envJava.setJavaRuntimeName(props.getProperty("java.runtime.name")); envJava.setJavaRuntimeVersion(props.getProperty("java.runtime.version")); // envJava.setJavaVMName(props.getProperty("java.vm.name")); envJava.setJavaVMVendor(props.getProperty("java.vm.vendor")); envJava.setJavaVMVersion(props.getProperty("java.vm.version")); envJava.setJavaVMInfo(props.getProperty("java.vm.info")); } // return envJava; } protected Environment lookupDB() { try { DatabaseMetaData metaData = dataSource.getConnection().getMetaData(); // EnvironmentDB envDB = new EnvironmentDB(); envDB.setDatabaseName(metaData.getDatabaseProductName()); envDB.setDatabaseVersion(metaData.getDatabaseProductVersion()); envDB.setDriverName(metaData.getDriverName()); envDB.setDriverVersion(metaData.getDriverVersion()); envDB.setUrl(metaData.getURL()); envDB.setUsername(metaData.getUserName()); envDB.setMaxConnections(metaData.getMaxConnections()); // metaData.getConnection().close(); // return envDB; } catch (SQLException e) { throw new UnsupportedOperationException(e); } } }