aholland
2014-02-24 2f3c342b5751f0ea41b0711b6d8757471572a79c
openshift war support (non express)
1 files modified
31 ■■■■■ changed files
src/main/java/com/gitblit/servlet/GitblitContext.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/servlet/GitblitContext.java
@@ -149,7 +149,11 @@
            String contextRealPath = context.getRealPath("/");
            File contextFolder = (contextRealPath != null) ? new File(contextRealPath) : null;
            if (!StringUtils.isEmpty(System.getenv("OPENSHIFT_DATA_DIR"))) {
            // if the base folder dosen't match the default assume they don't want to use express,
            // this allows for other containers to customise the basefolder per context.
            String defaultBase = Constants.contextFolder$ + "/WEB-INF/data";
            String base = lookupBaseFolderFromJndi();
            if (!StringUtils.isEmpty(System.getenv("OPENSHIFT_DATA_DIR")) && defaultBase.equals(base)) {
                // RedHat OpenShift
                baseFolder = configureExpress(context, webxmlSettings, contextFolder, runtimeSettings);
            } else {
@@ -182,6 +186,18 @@
        logger.info("");
        logger.info("All managers started.");
        logger.info("");
    }
    private String lookupBaseFolderFromJndi() {
        try {
            // try to lookup JNDI env-entry for the baseFolder
            InitialContext ic = new InitialContext();
            Context env = (Context) ic.lookup("java:comp/env");
            return (String) env.lookup("baseFolder");
        } catch (NamingException n) {
            logger.error("Failed to get JNDI env-entry: " + n.getExplanation());
        }
        return null;
    }
    protected <X extends IManager> X startManager(ObjectGraph injector, Class<X> clazz) {
@@ -268,16 +284,9 @@
            logger.error("");
        }
        try {
            // try to lookup JNDI env-entry for the baseFolder
            InitialContext ic = new InitialContext();
            Context env = (Context) ic.lookup("java:comp/env");
            String val = (String) env.lookup("baseFolder");
            if (!StringUtils.isEmpty(val)) {
                path = val;
            }
        } catch (NamingException n) {
            logger.error("Failed to get JNDI env-entry: " + n.getExplanation());
        String baseFromJndi = lookupBaseFolderFromJndi();
        if (!StringUtils.isEmpty(baseFromJndi)) {
            path = baseFromJndi;
        }
        File base = com.gitblit.utils.FileUtils.resolveParameter(Constants.contextFolder$, contextFolder, path);