changeset 1294:07290525b18d

fixed inheritance of getCurrentConfig and getVersion methods.
author robcast
date Wed, 25 Jun 2014 22:29:48 +0200
parents 6cff723fc149
children 09424acc2216
files common/src/main/java/digilib/conf/DigilibConfiguration.java pdf/src/main/java/digilib/conf/PDFServletConfiguration.java pdf/src/main/java/digilib/servlet/PDFCache.java servlet/src/main/java/digilib/conf/DigilibServletConfiguration.java servlet3/src/main/java/digilib/conf/DigilibServlet3Configuration.java servlet3/src/main/java/digilib/servlet/Scaler.java text/src/main/java/digilib/conf/TextServletConfiguration.java text/src/main/java/digilib/servlet/Texter.java
diffstat 8 files changed, 75 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/common/src/main/java/digilib/conf/DigilibConfiguration.java	Fri Jun 06 16:17:13 2014 +0200
+++ b/common/src/main/java/digilib/conf/DigilibConfiguration.java	Wed Jun 25 22:29:48 2014 +0200
@@ -56,9 +56,14 @@
     protected static String propertiesFileName = "digilib.properties";
 
     /** digilib version */
-    public static String getVersion() {
+    public static String getClassVersion() {
         return "2.3.0";
     }
+
+    /* non-static getVersion for Java inheritance */
+    public String getVersion() {
+    	return getClassVersion();
+    }
     
     /**
      * Default constructor defines all parameters and their default values.
@@ -72,7 +77,7 @@
          */
         
         // digilib version
-        newParameter("digilib.version", DigilibConfiguration.getVersion(), null, 's');
+        newParameter("digilib.version", getVersion(), null, 's');
         // sending image files as-is allowed
         newParameter("sendfile-allowed", Boolean.TRUE, null, 'f');
         // Type of DocuImage instance
--- a/pdf/src/main/java/digilib/conf/PDFServletConfiguration.java	Fri Jun 06 16:17:13 2014 +0200
+++ b/pdf/src/main/java/digilib/conf/PDFServletConfiguration.java	Wed Jun 25 22:29:48 2014 +0200
@@ -54,10 +54,16 @@
     public static final String PDF_WORKDIR_KEY = "pdf.servlet.work.dir";
     public static final String PDF_CACHEDIR_KEY = "pdf.servlet.cache.dir";
 
-    public static String getVersion() {
+    public static String getClassVersion() {
         return "2.3.0 pdf";
     }
 
+    /* non-static getVersion for Java inheritance */
+    @Override
+    public String getVersion() {
+    	return getClassVersion();
+    }
+    
     /**
      * Constructs PDFServletConfiguration and defines all parameters and their default values.
      */
--- a/pdf/src/main/java/digilib/servlet/PDFCache.java	Fri Jun 06 16:17:13 2014 +0200
+++ b/pdf/src/main/java/digilib/servlet/PDFCache.java	Wed Jun 25 22:29:48 2014 +0200
@@ -60,7 +60,7 @@
 @SuppressWarnings("serial")
 public class PDFCache extends HttpServlet {
 
-    public static String version = PDFServletConfiguration.getVersion();
+    public static String version = PDFServletConfiguration.getClassVersion();
 
     /** logger for accounting requests */
     protected static Logger accountlog = Logger.getLogger("account.pdf.request");
--- a/servlet/src/main/java/digilib/conf/DigilibServletConfiguration.java	Fri Jun 06 16:17:13 2014 +0200
+++ b/servlet/src/main/java/digilib/conf/DigilibServletConfiguration.java	Wed Jun 25 22:29:48 2014 +0200
@@ -87,10 +87,16 @@
     /** the time the webapp (i.e. this class) was loaded */
     public final Long webappStartTime = System.currentTimeMillis();
 
-    public static String getVersion() {
+    public static String getClassVersion() {
         return "2.3.0 srv";
     }
     
+    /* non-static getVersion for Java inheritance */
+    @Override
+    public String getVersion() {
+    	return getClassVersion();
+    }
+    
     /**
      * Constructs DigilibServletConfiguration and defines all parameters and their default values.
      */
@@ -115,7 +121,7 @@
         newParameter("servlet.dirmeta.class", null, null, 's');
         newParameter("servlet.authops.class", null, null, 's');
         newParameter("servlet.docudirectory.class", null, null, 's');
-        newParameter("servlet.version", DigilibServletConfiguration.getVersion(), null, 's');
+        newParameter("servlet.version", getVersion(), null, 's');
 
         /*
          * parameters that can be read from config file have a type 'f'
@@ -346,7 +352,7 @@
             /*
              * set as the servlets main config
              */
-            setCurrentConfig(context);
+            setContextConfig(context);
         } catch (Exception e) {
             logger.error("Error configuring digilib servlet:", e);
         }
@@ -359,7 +365,7 @@
         ServletContext context = cte.getServletContext();
         context.log("***** Digital Image Library Configuration (" + getVersion() + ") *****");
         // see if there is a Configuration instance
-        DigilibServletConfiguration dlConfig = getCurrentConfig(context);
+        DigilibServletConfiguration dlConfig = getContextConfig(context);
         if (dlConfig == null) {
             try {
                 // initialise this instance
@@ -382,7 +388,7 @@
         logger.info("DigilibServletConfiguration shutting down.");
         // get current config from servlet context
         ServletContext context = cte.getServletContext();
-        DigilibServletConfiguration config = getCurrentConfig(context);
+        DigilibServletConfiguration config = getContextConfig(context);
         @SuppressWarnings("unchecked")
         DigilibJobCenter<DocuImage> imageExecutor = (DigilibJobCenter<DocuImage>) config.getValue(IMAGEEXECUTOR_KEY);
         if (imageExecutor != null) {
@@ -400,7 +406,7 @@
      * Sets the current DigilibConfiguration in the context. 
      * @param context
      */
-    public void setCurrentConfig(ServletContext context) {
+    protected void setContextConfig(ServletContext context) {
         context.setAttribute(DigilibServletConfiguration.SERVLET_CONFIG_KEY, this);
     }
     
@@ -416,4 +422,15 @@
         return config;
     }
 
+    /**
+     * Returns the current DigilibConfiguration from the context.
+     * (non-static method, for Java inheritance)
+     * 
+     * @param context
+     * @return
+     */
+    protected DigilibServletConfiguration getContextConfig(ServletContext context) {
+        return getCurrentConfig(context);
+    }
+
 }
--- a/servlet3/src/main/java/digilib/conf/DigilibServlet3Configuration.java	Fri Jun 06 16:17:13 2014 +0200
+++ b/servlet3/src/main/java/digilib/conf/DigilibServlet3Configuration.java	Wed Jun 25 22:29:48 2014 +0200
@@ -41,10 +41,16 @@
 @WebListener
 public class DigilibServlet3Configuration extends DigilibServletConfiguration {
 
-    public static String getVersion() {
+    public static String getClassVersion() {
         return "2.3.0 async";
     }
 
+    /* non-static getVersion for Java inheritance */
+    @Override
+    public String getVersion() {
+    	return getClassVersion();
+    }
+    
     /**
      * Constructs DigilibServletConfiguration and defines all parameters and their default values.
      */
@@ -63,7 +69,7 @@
         super.configure(context);
         
         // set version
-        setValue("servlet.version", DigilibServlet3Configuration.getVersion());
+        setValue("servlet.version", getVersion());
         
         // digilib worker timeout
         long to = getAsInt("worker-timeout");
--- a/servlet3/src/main/java/digilib/servlet/Scaler.java	Fri Jun 06 16:17:13 2014 +0200
+++ b/servlet3/src/main/java/digilib/servlet/Scaler.java	Wed Jun 25 22:29:48 2014 +0200
@@ -59,7 +59,7 @@
     private static final long serialVersionUID = 5289386646192471549L;
 
     /** digilib servlet version (for all components) */
-    public static final String version = DigilibServlet3Configuration.getVersion();
+    public static final String version = DigilibServlet3Configuration.getClassVersion();
 
     /** servlet error codes */
     public static enum Error {
@@ -128,7 +128,7 @@
         // get our ServletContext
         ServletContext context = config.getServletContext();
         // see if there is a Configuration instance
-        dlConfig = (DigilibConfiguration) context.getAttribute("digilib.servlet.configuration");
+        dlConfig = DigilibServlet3Configuration.getCurrentConfig(context);
         if (dlConfig == null) {
             // no Configuration
             throw new ServletException("No Configuration!");
--- a/text/src/main/java/digilib/conf/TextServletConfiguration.java	Fri Jun 06 16:17:13 2014 +0200
+++ b/text/src/main/java/digilib/conf/TextServletConfiguration.java	Wed Jun 25 22:29:48 2014 +0200
@@ -50,10 +50,16 @@
     
     public static final String TEXT_DIR_CACHE_KEY = "text.servlet.dir.cache";    
     
-    public static String getVersion() {
+    public static String getClassVersion() {
         return "2.3.0 txt";
     }
 
+    /** non-static getVersion for Java inheritance */
+    @Override
+    public String getVersion() {
+    	return getClassVersion();
+    }
+    
     /**
      * Constructs DigilibServletConfiguration and defines all parameters and
      * their default values.
@@ -76,20 +82,19 @@
         DigilibServletConfiguration config = this;
 
         // set version
-        setValue("servlet.version", TextServletConfiguration.getVersion());
+        setValue("servlet.version", getVersion());
 
         try {
             // directory cache for text files
-            String[] bd = (String[]) config.getValue("basedir-list");
             DocuDirCache dirCache;
             if (config.getAsBoolean("use-mapping")) {
                 // with mapping file
                 File mapConf = ServletOps.getConfigFile((File) config.getValue("mapping-file"), context);
-                dirCache = new AliasingDocuDirCache(bd, FileClass.TEXT, mapConf, config);
+                dirCache = new AliasingDocuDirCache(FileClass.TEXT, mapConf, config);
                 config.setValue("mapping-file", mapConf);
             } else {
                 // without mapping
-                dirCache = new DocuDirCache(bd, FileClass.TEXT, this);
+                dirCache = new DocuDirCache(FileClass.TEXT, this);
             }
             config.setValue(TEXT_DIR_CACHE_KEY, dirCache);
         } catch (Exception e) {
@@ -101,7 +106,8 @@
      * Sets the current DigilibConfiguration in the context. 
      * @param context
      */
-    public void setCurrentConfig(ServletContext context) {
+    @Override
+    public void setContextConfig(ServletContext context) {
         context.setAttribute(TextServletConfiguration.TEXT_SERVLET_CONFIG_KEY, this);
     }
     
@@ -117,4 +123,16 @@
         return config;
     }
 
+    /**
+     * Returns the current DigilibConfiguration from the context.
+     * (non-static method, for Java inheritance)
+     * 
+     * @param context
+     * @return
+     */
+    @Override
+    protected DigilibServletConfiguration getContextConfig(ServletContext context) {
+        return getCurrentConfig(context);
+    }
+
 }
--- a/text/src/main/java/digilib/servlet/Texter.java	Fri Jun 06 16:17:13 2014 +0200
+++ b/text/src/main/java/digilib/servlet/Texter.java	Wed Jun 25 22:29:48 2014 +0200
@@ -45,7 +45,6 @@
 import digilib.image.ImageOpException;
 import digilib.io.DocuDirCache;
 import digilib.io.FileOps;
-import digilib.io.FileOps.FileClass;
 import digilib.io.TextFile;
 
 /**
@@ -60,7 +59,7 @@
     private static final long serialVersionUID = 6678666342141409867L;
 
     /** Servlet version */
-	public static String tlVersion = TextServletConfiguration.getVersion();
+	public static String tlVersion = TextServletConfiguration.getClassVersion();
 
 	/** DigilibConfiguration instance */
 	DigilibServletConfiguration dlConfig = null;
@@ -100,8 +99,7 @@
 		// get our ServletContext
 		ServletContext context = config.getServletContext();
 		// see if there is a Configuration instance
-		dlConfig = (DigilibServletConfiguration) context
-				.getAttribute(TextServletConfiguration.TEXT_SERVLET_CONFIG_KEY);
+		dlConfig = TextServletConfiguration.getCurrentConfig(context);
 		if (dlConfig == null) {
 			// no Configuration
 			throw new ServletException("No Configuration!");
@@ -197,7 +195,6 @@
 	private TextFile getTextFile(DigilibServletRequest dlRequest, String subDirectory) {
 		String loadPathName = dlRequest.getFilePath() + subDirectory;
 		// find the file(set)
-		return (TextFile) dirCache.getFile(loadPathName, dlRequest.getAsInt("pn"), 
-		        FileClass.TEXT);
+		return (TextFile) dirCache.getFile(loadPathName, dlRequest.getAsInt("pn"));
 	}
 }
\ No newline at end of file