aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2012-04-03 23:14:02 +0300
committerArtur Signell <artur@vaadin.com>2012-04-05 00:09:19 +0300
commitbb9c96cf931d664afb211bb977b33362658afa7a (patch)
tree6336a5af571e8f0dae305068a24f26b5c53cd988
parent69ea130cd3cf57ed1373adf7899fb1f4c9184a32 (diff)
downloadvaadin-framework-bb9c96cf931d664afb211bb977b33362658afa7a.tar.gz
vaadin-framework-bb9c96cf931d664afb211bb977b33362658afa7a.zip
Moved ApplicationRunnerServlet to test folder and improved find method
-rw-r--r--tests/testbench/com/vaadin/terminal/gwt/server/ApplicationRunnerServlet.java (renamed from src/com/vaadin/terminal/gwt/server/ApplicationRunnerServlet.java)60
1 files changed, 41 insertions, 19 deletions
diff --git a/src/com/vaadin/terminal/gwt/server/ApplicationRunnerServlet.java b/tests/testbench/com/vaadin/terminal/gwt/server/ApplicationRunnerServlet.java
index 064d2b16af..69e8367a0c 100644
--- a/src/com/vaadin/terminal/gwt/server/ApplicationRunnerServlet.java
+++ b/tests/testbench/com/vaadin/terminal/gwt/server/ApplicationRunnerServlet.java
@@ -3,9 +3,13 @@
*/
package com.vaadin.terminal.gwt.server;
+import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.Collections;
+import java.util.LinkedHashSet;
+import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -16,6 +20,7 @@ import javax.servlet.http.HttpServletResponse;
import com.vaadin.Application;
import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.tests.components.TestBase;
import com.vaadin.ui.Root;
@SuppressWarnings("serial")
@@ -45,7 +50,8 @@ public class ApplicationRunnerServlet extends AbstractApplicationServlet {
* The name of the application class currently used. Only valid within one
* request.
*/
- private String[] defaultPackages;
+ private LinkedHashSet<String> defaultPackages = new LinkedHashSet<String>();
+
private final ThreadLocal<HttpServletRequest> request = new ThreadLocal<HttpServletRequest>();
@Override
@@ -54,7 +60,27 @@ public class ApplicationRunnerServlet extends AbstractApplicationServlet {
String initParameter = servletConfig
.getInitParameter("defaultPackages");
if (initParameter != null) {
- defaultPackages = initParameter.split(",");
+ Collections.addAll(defaultPackages, initParameter.split(","));
+ }
+ String str = TestBase.class.getName().replace('.', '/') + ".class";
+ URL url = getClassLoader().getResource(str);
+ if ("file".equals(url.getProtocol())) {
+ File comVaadinTests = new File(url.getPath()).getParentFile()
+ .getParentFile();
+ addDirectories(comVaadinTests, defaultPackages, "com.vaadin.tests");
+
+ }
+ }
+
+ private void addDirectories(File parent, LinkedHashSet<String> packages,
+ String parentPackage) {
+ packages.add(parentPackage);
+
+ for (File f : parent.listFiles()) {
+ if (f.isDirectory()) {
+ String newPackage = parentPackage + "." + f.getName();
+ addDirectories(f, packages, newPackage);
+ }
}
}
@@ -205,23 +231,19 @@ public class ApplicationRunnerServlet extends AbstractApplicationServlet {
return appClass;
} catch (Exception e) {
//
- if (defaultPackages != null) {
- for (int i = 0; i < defaultPackages.length; i++) {
- try {
- appClass = getClass().getClassLoader().loadClass(
- defaultPackages[i] + "." + baseName);
- } catch (ClassNotFoundException ee) {
- // Ignore as this is expected for many packages
- } catch (Exception e2) {
- // TODO: handle exception
- logger.log(
- Level.FINE,
- "Failed to find application class in the default package.",
- e2);
- }
- if (appClass != null) {
- return appClass;
- }
+ for (String pkg : defaultPackages) {
+ try {
+ appClass = getClass().getClassLoader().loadClass(
+ pkg + "." + baseName);
+ } catch (ClassNotFoundException ee) {
+ // Ignore as this is expected for many packages
+ } catch (Exception e2) {
+ // TODO: handle exception
+ logger.log(Level.FINE, "Failed to find application class "
+ + pkg + "." + baseName, e2);
+ }
+ if (appClass != null) {
+ return appClass;
}
}