DiagnosticsServlet.java
/*
* Copyright (C) 2018 B3Partners B.V.
*/
package nl.b3p.brmo.verschil.util;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.DatabaseMetaData;
import java.util.Locale;
import java.util.Properties;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
/**
* @author mprins
*/
public class DiagnosticsServlet implements Servlet {
private static final Log LOG = LogFactory.getLog(DiagnosticsServlet.class);
@Override
public void init(ServletConfig config) throws ServletException {
final Properties props = new Properties();
try {
props.load(DiagnosticsServlet.class.getClassLoader().getResourceAsStream("git.properties"));
} catch (IOException ex) {
String name = config.getServletContext().getContextPath();
name = name.startsWith("/") ? name.substring(1).toUpperCase(Locale.ROOT) : "ROOT";
LOG.warn("Ophalen " + name + " applicatie versie informatie is mislukt.", ex);
}
LOG.info(
String.format("\nBRMO BRK verschilservice versie is: %s\nGebouwd op: %s",
props.getProperty("builddetails.build.version", "onbekend"),
props.getProperty("builddetails.build.time", "onbekend")
));
try {
// lookup db connectie en log info
DataSource rsgb = ConfigUtil.getDataSourceRsgb();
DatabaseMetaData metadata = rsgb.getConnection().getMetaData();
LOG.info(
String.format("\nDatabase en driver informatie\n\n Database product: %s\n Database version: %s\n Database major: %s\n Database minor: %s\n\n DBdriver product: %s\n DBdriver version: %s\n DBdriver major: %s\n DBdriver minor: %s",
metadata.getDatabaseProductName(),
metadata.getDatabaseProductVersion().replace('\n', ' '),
metadata.getDatabaseMajorVersion(),
metadata.getDatabaseMinorVersion(),
metadata.getDriverName(),
metadata.getDriverVersion(),
metadata.getDriverMajorVersion(),
metadata.getDriverMinorVersion()
));
metadata.getConnection().close();
rsgb = null;
} catch (Exception ex) {
LOG.error(ex);
}
}
@Override
public ServletConfig getServletConfig() {
throw new UnsupportedOperationException("Not supported.");
}
@Override
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
}
@Override
public String getServletInfo() {
return "Diagnostics info logging servlet";
}
@Override
public void destroy() {
}
}