filters)
+ {
+ this.filters = filters;
}
// PROTECTED HELPERS
@@ -264,6 +266,7 @@ protected void reloadPage(Database db, QueryRule... rules) throws DatabaseExcept
}
/** will check whether it is dirty, the refresh */
+ @Override
public abstract void refresh(Database db) throws DatabaseException;
protected State getPagingState()
diff --git a/src/org/molgenis/framework/db/paging/DatabasePager.java b/src/org/molgenis/framework/db/paging/DatabasePager.java
index 0798d5ac6..18e814193 100644
--- a/src/org/molgenis/framework/db/paging/DatabasePager.java
+++ b/src/org/molgenis/framework/db/paging/DatabasePager.java
@@ -12,9 +12,9 @@
/**
* Page through the entities in a Database.
*
- * Very usefull if one doesn't want to retrieve all data at once into memory.
+ * Very useful if one doesn't want to retrieve all data at once into memory.
* Instead, one can just iterate through the data while leaving the bulk of data
- * savely and efficiently on disk. The DatabasePager takes care of (re)querying
+ * safely and efficiently on disk. The DatabasePager takes care of (re)querying
* the Database.
*
* TODO: add a method to go to a certain page.
@@ -182,6 +182,13 @@ public interface DatabasePager extends Serializable
*/
public void resetFilters();
+ /**
+ * Reset the filters to the given filters
+ *
+ * @param filters
+ */
+ public void resetFilters(List filters);
+
/**
* Retrieve the current number of entities in the database, after filtering.
*
diff --git a/src/org/molgenis/framework/db/paging/LimitOffsetPager.java b/src/org/molgenis/framework/db/paging/LimitOffsetPager.java
index a4066532b..6bf79b063 100644
--- a/src/org/molgenis/framework/db/paging/LimitOffsetPager.java
+++ b/src/org/molgenis/framework/db/paging/LimitOffsetPager.java
@@ -25,7 +25,7 @@
public class LimitOffsetPager extends AbstractPager
{
private static final long serialVersionUID = -1859965580920588085L;
- private static transient final Logger logger = Logger.getLogger(LimitOffsetPager.class.getSimpleName());
+ private static final Logger logger = Logger.getLogger(LimitOffsetPager.class);
public LimitOffsetPager(Class entityClass, String defaultOrderByField) throws DatabaseException
{
@@ -41,6 +41,7 @@ public LimitOffsetPager(Class entityClass, String defaultOrderByField) throws
*
* @throws ParseException
*/
+ @Override
public void refresh(Database db) throws DatabaseException
{
// don't use getters and setters here, or everything refreshes like
diff --git a/src/org/molgenis/framework/db/paging/PrimaryKeyPager.java b/src/org/molgenis/framework/db/paging/PrimaryKeyPager.java
index dca8cb47a..56959771a 100644
--- a/src/org/molgenis/framework/db/paging/PrimaryKeyPager.java
+++ b/src/org/molgenis/framework/db/paging/PrimaryKeyPager.java
@@ -27,7 +27,7 @@ public class PrimaryKeyPager extends AbstractPager
{
private static final long serialVersionUID = 1707494068232123242L;
- private static final transient Logger logger = Logger.getLogger(PrimaryKeyPager.class.getSimpleName());
+ private static final Logger logger = Logger.getLogger(PrimaryKeyPager.class);
/**
* Constructor.
@@ -63,6 +63,7 @@ public PrimaryKeyPager(Class entityClass, String primaryKeyField) throws Data
* that at least the primary key is used to sort the data in the database
* underlying the paging.
*/
+ @Override
public void refresh(Database db) throws DatabaseException
{
// don't use getters and setters!!! these will call refresh resulting in
diff --git a/src/org/molgenis/framework/security/SimpleLogin.java b/src/org/molgenis/framework/security/SimpleLogin.java
index 415130fd0..353f353b3 100644
--- a/src/org/molgenis/framework/security/SimpleLogin.java
+++ b/src/org/molgenis/framework/security/SimpleLogin.java
@@ -30,6 +30,7 @@ public void reload(Database db)
{
}
+ @Override
public void logout(Database db)
{
}
diff --git a/src/org/molgenis/framework/server/JTextAreaAppender.java b/src/org/molgenis/framework/server/JTextAreaAppender.java
index 28b93a8ca..1317af2da 100644
--- a/src/org/molgenis/framework/server/JTextAreaAppender.java
+++ b/src/org/molgenis/framework/server/JTextAreaAppender.java
@@ -20,6 +20,7 @@ public JTextAreaAppender(JTextArea jtext)
this.jtext = jtext;
}
+ @Override
protected void append(LoggingEvent event)
{
jtext.append(layout.format(event));
@@ -40,12 +41,14 @@ protected void append(LoggingEvent event)
jtext.setCaretPosition(jtext.getText().length());
}
+ @Override
public boolean requiresLayout()
{
// TODO Auto-generated method stub
return true;
}
+ @Override
public void close()
{
if (closed) return;
diff --git a/src/org/molgenis/framework/server/MolgenisFrontController.java b/src/org/molgenis/framework/server/MolgenisFrontController.java
index d1f6d1445..759c0764f 100644
--- a/src/org/molgenis/framework/server/MolgenisFrontController.java
+++ b/src/org/molgenis/framework/server/MolgenisFrontController.java
@@ -62,6 +62,7 @@ public abstract class MolgenisFrontController extends HttpServlet implements Mol
public abstract void createLogin(MolgenisRequest request) throws Exception;
// the one and only service() used in the molgenis app
+ @Override
public void service(HttpServletRequest request, HttpServletResponse response)
{
try
@@ -97,16 +98,20 @@ public void handleRequest(MolgenisRequest request, MolgenisResponse response) th
{
HttpServletRequest req = request.getRequest();
- // block spiders
- String userAgent = req.getHeader("User-Agent");
- for (String spider : new String[]
- { "Googlebot", "Yammybot", "Openbot", "Yahoo", "Slurp", "msnbot", "ia_archiver", "Lycos", "Scooter",
- "AltaVista", "Teoma", "Gigabot", "Googlebot-Mobile" })
+ if (usedOptions.block_webspiders)
{
- if (userAgent.contains(spider))
+ // block spiders (webcrawlers) if the option has been set (default
+ // is false)
+ String userAgent = req.getHeader("User-Agent");
+ for (String spider : new String[]
+ { "Googlebot", "Yammybot", "Openbot", "Yahoo", "Slurp", "msnbot", "ia_archiver", "Lycos", "Scooter",
+ "AltaVista", "Teoma", "Gigabot", "Googlebot-Mobile" })
{
- response.response.sendError(403, "This page is forbidden for spiders.");
- return;
+ if (userAgent.contains(spider))
+ {
+ response.response.sendError(403, "This page is forbidden for spiders.");
+ return;
+ }
}
}
@@ -236,11 +241,11 @@ protected void manageConnection(UUID connId, long startTime) throws DatabaseExce
}
}
- protected void createLogger(MolgenisOptions mo) throws ServletException
+ protected void createLogger() throws ServletException
{
try
{
- if (StringUtils.isEmpty(mo.log4j_properties_uri))
+ if (StringUtils.isEmpty(usedOptions.log4j_properties_uri))
{
// get logger and remove appenders added by classpath JARs. (=
// evil)
@@ -251,27 +256,27 @@ protected void createLogger(MolgenisOptions mo) throws ServletException
PatternLayout pattern = new PatternLayout("%-4r %-5p [%c] %m%n");
// get the level from the molgenis options
- rootLogger.setLevel(mo.log_level);
+ rootLogger.setLevel(usedOptions.log_level);
// console appender
- if (mo.log_target.equals(MolgenisOptions.LogTarget.CONSOLE))
+ if (usedOptions.log_target.equals(MolgenisOptions.LogTarget.CONSOLE))
{
rootLogger.addAppender(new ConsoleAppender(pattern));
- System.out.println("Log4j CONSOLE appender added log level " + mo.log_level);
+ System.out.println("Log4j CONSOLE appender added log level " + usedOptions.log_level);
}
// file appender
- if (mo.log_target.equals(MolgenisOptions.LogTarget.FILE))
+ if (usedOptions.log_target.equals(MolgenisOptions.LogTarget.FILE))
{
RollingFileAppender fa = new RollingFileAppender(pattern, "logger.out");
fa.setMaximumFileSize(100000000); // 100MB
rootLogger.addAppender(fa);
- System.out.println("Log4j FILE appender added with level " + mo.log_level + ", writing to: "
- + new File(fa.getFile()).getAbsolutePath());
+ System.out.println("Log4j FILE appender added with level " + usedOptions.log_level
+ + ", writing to: " + new File(fa.getFile()).getAbsolutePath());
}
// add no appender at all
- if (mo.log_target.equals(MolgenisOptions.LogTarget.OFF))
+ if (usedOptions.log_target.equals(MolgenisOptions.LogTarget.OFF))
{
System.out.println("Log4j logger turned off");
}
@@ -279,7 +284,7 @@ protected void createLogger(MolgenisOptions mo) throws ServletException
else
{
ClassLoader loader = this.getClass().getClassLoader();
- URL urlLog4jProp = loader.getResource(mo.log4j_properties_uri);
+ URL urlLog4jProp = loader.getResource(usedOptions.log4j_properties_uri);
if (urlLog4jProp == null)
{
System.out
diff --git a/src/org/molgenis/framework/server/MolgenisRequest.java b/src/org/molgenis/framework/server/MolgenisRequest.java
index a199c38ea..f3f31c0ae 100644
--- a/src/org/molgenis/framework/server/MolgenisRequest.java
+++ b/src/org/molgenis/framework/server/MolgenisRequest.java
@@ -70,6 +70,7 @@ public void setAppLocation(String appLocation)
* Special toString for MolgenisRequest Will break off large values, and
* hide passwords
*/
+ @Override
public String toString()
{
if (this.getNrColumns() == 0) return "NONE";
diff --git a/src/org/molgenis/framework/server/ResourceServlet.java b/src/org/molgenis/framework/server/ResourceServlet.java
index e198d00c0..49fa53625 100644
--- a/src/org/molgenis/framework/server/ResourceServlet.java
+++ b/src/org/molgenis/framework/server/ResourceServlet.java
@@ -28,6 +28,7 @@ public class ResourceServlet extends HttpServlet
/**
* Get a resource from the jar and copy it the the response.
*/
+ @Override
public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String resourcePath = request.getRequestURI().substring(request.getContextPath().length() + 1);
diff --git a/src/org/molgenis/framework/server/RestInterface.java b/src/org/molgenis/framework/server/RestInterface.java
index 3e5a29b5e..dba3a4724 100644
--- a/src/org/molgenis/framework/server/RestInterface.java
+++ b/src/org/molgenis/framework/server/RestInterface.java
@@ -26,7 +26,7 @@
*/
public class RestInterface
{
- private static final transient Logger logger = Logger.getLogger(RestInterface.class.getSimpleName());
+ private static final Logger logger = Logger.getLogger(RestInterface.class);
/**
* Handle use of the REST api URL pattern /rest/find/[select]?[filter] and
@@ -110,8 +110,6 @@ private static void handleRetrievalRequest(HttpServletRequest request, HttpServl
{
TupleWriter writer = new CsvWriter(out);
- // CsvWriter writer = new CsvFileWriter( new
- // File("c:/testout.txt") );
if (rulesList != null) db.find(getClassForName(entityName), writer,
rulesList.toArray(new QueryRule[rulesList.size()]));
else
diff --git a/src/org/molgenis/framework/server/ServeConfig.java b/src/org/molgenis/framework/server/ServeConfig.java
index b464b8858..6f0b40328 100644
--- a/src/org/molgenis/framework/server/ServeConfig.java
+++ b/src/org/molgenis/framework/server/ServeConfig.java
@@ -31,6 +31,7 @@ public ServeConfig(ServletContext context, Hashtable initParams,
// Methods from ServletConfig.
// / Returns the context for the servlet.
+ @Override
public ServletContext getServletContext()
{
return context;
@@ -38,6 +39,7 @@ public ServletContext getServletContext()
// / Gets an initialization parameter of the servlet.
// @param name the parameter name
+ @Override
public String getInitParameter(String name)
{
// This server supports servlet init params. :)
@@ -47,6 +49,7 @@ public String getInitParameter(String name)
// / Gets the names of the initialization parameters of the servlet.
// @param name the parameter name
+ @Override
public Enumeration getInitParameterNames()
{
// This server does:) support servlet init params.
@@ -55,6 +58,7 @@ public Enumeration getInitParameterNames()
}
// 2.2
+ @Override
public String getServletName()
{
return servletName;
diff --git a/src/org/molgenis/framework/server/async/AsyncMolgenisFrontController.java b/src/org/molgenis/framework/server/async/AsyncMolgenisFrontController.java
index 25023f957..cd5c43883 100644
--- a/src/org/molgenis/framework/server/async/AsyncMolgenisFrontController.java
+++ b/src/org/molgenis/framework/server/async/AsyncMolgenisFrontController.java
@@ -25,6 +25,7 @@ public abstract class AsyncMolgenisFrontController extends MolgenisFrontControll
protected AsyncMolgenisContext context;
// the one and only service() used in the molgenis app
+ @Override
public void service(HttpServletRequest request, HttpServletResponse response)
{
try
diff --git a/src/org/molgenis/framework/server/services/FileService.java b/src/org/molgenis/framework/server/services/FileService.java
index 44c6b46d5..3e4034e5f 100644
--- a/src/org/molgenis/framework/server/services/FileService.java
+++ b/src/org/molgenis/framework/server/services/FileService.java
@@ -24,13 +24,8 @@
public class FileService extends FileServlet implements MolgenisService
{
-
- private MolgenisContext mc;
-
public FileService(MolgenisContext mc) throws ServletException
{
- this.mc = mc;
-
// needed to pass MIME type mapping from webserver to servlet!
super.init(new ServeConfig(mc.getServletContext(), null, "/"));
}
@@ -49,7 +44,5 @@ public void handleRequest(MolgenisRequest request, MolgenisResponse response) th
{
throw new IOException(e);
}
-
}
-
}
\ No newline at end of file
diff --git a/src/org/molgenis/framework/server/services/MolgenisBashService.java b/src/org/molgenis/framework/server/services/MolgenisBashService.java
index f5dd137aa..f1beabe9b 100644
--- a/src/org/molgenis/framework/server/services/MolgenisBashService.java
+++ b/src/org/molgenis/framework/server/services/MolgenisBashService.java
@@ -7,7 +7,6 @@
import javax.servlet.http.HttpServletResponse;
-import org.apache.log4j.Logger;
import org.molgenis.framework.server.MolgenisContext;
import org.molgenis.framework.server.MolgenisRequest;
import org.molgenis.framework.server.MolgenisResponse;
@@ -15,13 +14,8 @@
public class MolgenisBashService implements MolgenisService
{
- Logger logger = Logger.getLogger(MolgenisBashService.class);
-
- private MolgenisContext mc;
-
public MolgenisBashService(MolgenisContext mc)
{
- this.mc = mc;
}
/**
@@ -31,6 +25,7 @@ public MolgenisBashService(MolgenisContext mc)
* @param response
* @throws IOException
*/
+ @Override
public void handleRequest(MolgenisRequest request, MolgenisResponse response) throws IOException
{
diff --git a/src/org/molgenis/framework/server/services/MolgenisCleanTmpDirService.java b/src/org/molgenis/framework/server/services/MolgenisCleanTmpDirService.java
index 982ed11e9..e4df3fe48 100644
--- a/src/org/molgenis/framework/server/services/MolgenisCleanTmpDirService.java
+++ b/src/org/molgenis/framework/server/services/MolgenisCleanTmpDirService.java
@@ -53,6 +53,7 @@ class CleanTmpDirProcess implements Runnable
t.start();
}
+ @Override
public void run()
{
boolean noExceptions = true;
diff --git a/src/org/molgenis/framework/server/services/MolgenisCleanTmpDirServiceQuartz.java b/src/org/molgenis/framework/server/services/MolgenisCleanTmpDirServiceQuartz.java
index 190cdb40e..be6e491e8 100644
--- a/src/org/molgenis/framework/server/services/MolgenisCleanTmpDirServiceQuartz.java
+++ b/src/org/molgenis/framework/server/services/MolgenisCleanTmpDirServiceQuartz.java
@@ -107,6 +107,7 @@ public void handleRequest(MolgenisRequest request, MolgenisResponse response) th
class CleanTmpDirJob implements Job
{
+ @Override
public void execute(JobExecutionContext context) throws JobExecutionException
{
@SuppressWarnings("unchecked")
diff --git a/src/org/molgenis/framework/server/services/MolgenisDownloadService.java b/src/org/molgenis/framework/server/services/MolgenisDownloadService.java
index a645bffde..03e309a06 100644
--- a/src/org/molgenis/framework/server/services/MolgenisDownloadService.java
+++ b/src/org/molgenis/framework/server/services/MolgenisDownloadService.java
@@ -85,21 +85,42 @@ public void handleRequest(MolgenisRequest req, MolgenisResponse res) throws Pars
showAvailableDownloads(out, db, req);
out.println("