VersieInfo.java
/*
* Copyright (C) 2016 B3Partners B.V.
*/
package nl.b3p.brmo.service.util;
import java.io.IOException;
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;
import nl.b3p.brmo.loader.BrmoFramework;
import nl.b3p.brmo.loader.util.BrmoException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
/**
* log versie informatie van de gebruikte schema's. Maakt gebruik van {@link ConfigUtil} om de
* datasources op te halen. Voeg deze servlet toe aan de web.xml van jouw brmo webapp met een
* startup parameter hoger dan de {@link ConfigUtil} servlet. Voorbeeld:
*
* <pre>
* <servlet>
* <servlet-name>VersieInfo</servlet-name>
* <description>versie info controle</description>
* <servlet-class>nl.b3p.brmo.service.util.VersieInfo</servlet-class>
* <load-on-startup>4</load-on-startup>
* </servlet>
* </pre>
*
* @author mprins
* @since 1.4.1
*/
public class VersieInfo implements Servlet {
private static final Log LOG = LogFactory.getLog(VersieInfo.class);
@Override
public void init(ServletConfig config) throws ServletException {
BrmoFramework brmo = null;
String appVersie = "mislukt";
final Properties props = new Properties();
try {
props.load(VersieInfo.class.getClassLoader().getResourceAsStream("git.properties"));
appVersie = props.getProperty("builddetails.build.version", "onbekend");
} 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);
}
try {
brmo =
new BrmoFramework(
ConfigUtil.getDataSourceStaging(),
ConfigUtil.getDataSourceRsgb(),
ConfigUtil.getDataSourceRsgbBgt(),
ConfigUtil.getDataSourceTopNL(),
ConfigUtil.getDataSourceRsgbBrk());
LOG.info("BRMO versie informatie:");
LOG.info(" brmo applicatie versie is: " + appVersie);
LOG.info(" staging schema versie is: " + brmo.getStagingVersion());
LOG.info(" rsgb schema versie is: " + brmo.getRsgbVersion());
LOG.info(" rsgb brk schema versie is: " + brmo.getRsgbBrkVersion());
LOG.info(" rsgbbgt schema versie is: " + brmo.getRsgbBgtVersion());
// LOG.info(" topnl schema versie is: " + brmo.getRsgbTopNLVersion());
// TODO TopNL versie info
// TODO check voor passende versies
} catch (BrmoException ex) {
LOG.warn("Ophalen BRMO schema versie informatie is mislukt.", ex);
} finally {
if (brmo != null) {
brmo.closeBrmoFramework();
}
}
}
@Override
public ServletConfig getServletConfig() {
throw new UnsupportedOperationException("Not supported.");
}
@Override
public void service(ServletRequest req, ServletResponse res)
throws ServletException, IOException {
throw new UnsupportedOperationException("Not supported.");
}
@Override
public String getServletInfo() {
return "Versie info logging servlet";
}
@Override
public void destroy() {
// leeg
}
}