356190 - Problem selecting expired sessions java.sql.SQLException: Database 'sessions' not found

This commit is contained in:
Jan Bartel 2011-09-05 13:48:33 +10:00
parent 0b489b8877
commit e8f37070a6
3 changed files with 25 additions and 9 deletions

View File

@ -36,7 +36,7 @@ public class HashTestServer extends AbstractTestServer
} }
public SessionIdManager newSessionIdManager() public SessionIdManager newSessionIdManager(String config)
{ {
return new HashSessionIdManager(); return new HashSessionIdManager();
} }

View File

@ -22,22 +22,29 @@ import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
public class JdbcTestServer extends AbstractTestServer public class JdbcTestServer extends AbstractTestServer
{ {
public static final String DRIVER_CLASS = "org.apache.derby.jdbc.EmbeddedDriver"; public static final String DRIVER_CLASS = "org.apache.derby.jdbc.EmbeddedDriver";
public static final String CONNECTION_URL = "jdbc:derby:sessions;create=true"; public static final String DEFAULT_CONNECTION_URL = "jdbc:derby:sessions;create=true";
public static final int SAVE_INTERVAL = 1; public static final int SAVE_INTERVAL = 1;
static static
{ {
System.setProperty("derby.system.home", MavenTestingUtils.getTargetFile("test-derby").getAbsolutePath()); System.setProperty("derby.system.home", MavenTestingUtils.getTargetFile("test-derby").getAbsolutePath());
} }
public JdbcTestServer(int port) public JdbcTestServer(int port)
{ {
super(port); super(port);
} }
public JdbcTestServer(int port, int maxInactivePeriod, int scavengePeriod, String connectionUrl)
{
super(port, maxInactivePeriod, scavengePeriod, connectionUrl);
}
public JdbcTestServer(int port, int maxInactivePeriod, int scavengePeriod) public JdbcTestServer(int port, int maxInactivePeriod, int scavengePeriod)
{ {
super(port, maxInactivePeriod, scavengePeriod); super(port, maxInactivePeriod, scavengePeriod, DEFAULT_CONNECTION_URL);
} }
public JdbcTestServer (int port, boolean optimize) public JdbcTestServer (int port, boolean optimize)
@ -60,14 +67,14 @@ public class JdbcTestServer extends AbstractTestServer
* @see org.eclipse.jetty.server.session.AbstractTestServer#newSessionIdManager() * @see org.eclipse.jetty.server.session.AbstractTestServer#newSessionIdManager()
*/ */
@Override @Override
public SessionIdManager newSessionIdManager() public SessionIdManager newSessionIdManager(String config)
{ {
synchronized(JdbcTestServer.class) synchronized(JdbcTestServer.class)
{ {
JDBCSessionIdManager idManager = new JDBCSessionIdManager(_server); JDBCSessionIdManager idManager = new JDBCSessionIdManager(_server);
idManager.setScavengeInterval(_scavengePeriod); idManager.setScavengeInterval(_scavengePeriod);
idManager.setWorkerName("w"+(__workers++)); idManager.setWorkerName("w"+(__workers++));
idManager.setDriverInfo(DRIVER_CLASS, CONNECTION_URL); idManager.setDriverInfo(DRIVER_CLASS, (config==null?DEFAULT_CONNECTION_URL:config));
return idManager; return idManager;
} }
} }

View File

@ -34,22 +34,31 @@ public abstract class AbstractTestServer
protected final ContextHandlerCollection _contexts; protected final ContextHandlerCollection _contexts;
protected SessionIdManager _sessionIdManager; protected SessionIdManager _sessionIdManager;
public AbstractTestServer(int port) public AbstractTestServer(int port)
{ {
this(port, 30, 10); this(port, 30, 10);
} }
public AbstractTestServer(int port, int maxInactivePeriod, int scavengePeriod) public AbstractTestServer(int port, int maxInactivePeriod, int scavengePeriod)
{
this (port, maxInactivePeriod, scavengePeriod, null);
}
public AbstractTestServer(int port, int maxInactivePeriod, int scavengePeriod, String sessionIdMgrConfig)
{ {
_server = new Server(port); _server = new Server(port);
_maxInactivePeriod = maxInactivePeriod; _maxInactivePeriod = maxInactivePeriod;
_scavengePeriod = scavengePeriod; _scavengePeriod = scavengePeriod;
_contexts = new ContextHandlerCollection(); _contexts = new ContextHandlerCollection();
_sessionIdManager = newSessionIdManager(); _sessionIdManager = newSessionIdManager(sessionIdMgrConfig);
_server.setSessionIdManager(_sessionIdManager);
} }
public abstract SessionIdManager newSessionIdManager();
public abstract SessionIdManager newSessionIdManager(String config);
public abstract SessionManager newSessionManager(); public abstract SessionManager newSessionManager();
public abstract SessionHandler newSessionHandler(SessionManager sessionManager); public abstract SessionHandler newSessionHandler(SessionManager sessionManager);