1 16 package org.outerj.daisy.frontend.util; 17 18 import org.apache.cocoon.Constants; 19 import org.apache.cocoon.environment.Context; 20 import org.apache.avalon.framework.context.ContextException; 21 22 import java.util.Properties ; 23 24 public class WikiDataDirHelper { 25 private static String daisyWikiDataDir; 26 private static Properties resolveProperties; 27 private static final String DAISYWIKI_DATA_PROPNAME = "daisywiki.data"; 28 29 static { 30 daisyWikiDataDir = System.getProperty(DAISYWIKI_DATA_PROPNAME); 31 32 resolveProperties = new Properties (System.getProperties()); 33 if (daisyWikiDataDir != null) 34 resolveProperties.setProperty(DAISYWIKI_DATA_PROPNAME, daisyWikiDataDir); 35 } 36 37 public static String getWikiDataDir(org.apache.avalon.framework.context.Context context) { 38 String contextWikiData = getDataDirFromContext(context); 39 if (contextWikiData != null) 40 return contextWikiData; 41 else if (daisyWikiDataDir != null) 42 return daisyWikiDataDir; 43 else 44 throw new RuntimeException ("The property that specifies the location of the Daisy Wiki data directory (daisywiki.data) is neither specified as Java system property, nor as Servlet context initialization parameter."); 45 } 46 47 public static Properties getResolveProperties(org.apache.avalon.framework.context.Context context) { 48 String contextWikiData = getDataDirFromContext(context); 49 if (contextWikiData != null) { 50 Properties resolveProperties = new Properties (System.getProperties()); 51 resolveProperties.setProperty(DAISYWIKI_DATA_PROPNAME, contextWikiData); 52 return resolveProperties; 53 } else { 54 return resolveProperties; 55 } 56 } 57 58 private static String getDataDirFromContext(org.apache.avalon.framework.context.Context context) { 59 Context servletContext; 60 try { 61 servletContext = (Context)context.get(Constants.CONTEXT_ENVIRONMENT_CONTEXT); 62 } catch (ContextException e) { 63 throw new RuntimeException (e); 64 } 65 return servletContext.getInitParameter(DAISYWIKI_DATA_PROPNAME); 66 } 67 } 68 | Popular Tags |