more code in progress to support multiple instances of jetty

git-svn-id: svn+ssh://dev.eclipse.org/svnroot/rt/org.eclipse.jetty/jetty/trunk@2031 7e9141cc-0065-0410-87d8-b60c137991c4
This commit is contained in:
Hugues Malphettes 2010-06-20 03:08:00 +00:00
parent dacfcc8903
commit 79c83a7184
3 changed files with 37 additions and 16 deletions

View File

@ -156,21 +156,21 @@ public class JettyBootstrapActivator implements BundleActivator
_registeredServer = null;
}
}
if (_jettyServerFactoryService != null)
{
try
{
_jettyServerFactoryService.unregister();
}
catch (IllegalArgumentException ill)
{
// already unregistered.
}
finally
{
_jettyServerFactoryService = null;
}
}
// if (_jettyServerFactoryService != null)
// {
// try
// {
// _jettyServerFactoryService.unregister();
// }
// catch (IllegalArgumentException ill)
// {
// // already unregistered.
// }
// finally
// {
// _jettyServerFactoryService = null;
// }
// }
}
finally

View File

@ -107,6 +107,14 @@ public class ServerInstanceWrapper {
{
return _deploymentManager;
}
/**
* @return The collection of context handlers
*/
public ContextHandlerCollection getContextHandlerCollection()
{
return _ctxtHandler;
}
public void start(Server server, Dictionary props)

View File

@ -41,6 +41,7 @@ import org.eclipse.jetty.osgi.boot.JettyBootstrapActivator;
import org.eclipse.jetty.osgi.boot.OSGiAppProvider;
import org.eclipse.jetty.osgi.boot.OSGiWebappConstants;
import org.eclipse.jetty.osgi.boot.internal.jsp.TldLocatableURLClassloader;
import org.eclipse.jetty.osgi.boot.internal.serverfactory.ServerInstanceWrapper;
import org.eclipse.jetty.osgi.boot.utils.BundleClassLoaderHelper;
import org.eclipse.jetty.osgi.boot.utils.BundleFileLocatorHelper;
import org.eclipse.jetty.osgi.boot.utils.WebappRegistrationCustomizer;
@ -126,7 +127,7 @@ public class WebappRegistrationHelper
* webapp classloader. It is in fact the _libExtClassLoader with a trick to
* let the TldScanner find the jars where the tld files are.
*/
private URLClassLoader _commonParentClassLoaderForWebapps;
private ClassLoader _commonParentClassLoaderForWebapps;
private DeploymentManager _deploymentManager;
@ -138,6 +139,14 @@ public class WebappRegistrationHelper
staticInit();
}
public WebappRegistrationHelper(ServerInstanceWrapper wrapper, Server server)
{
_server = server;
_commonParentClassLoaderForWebapps = wrapper.getParentClassLoaderForWebapps();
_ctxtHandler = wrapper.getContextHandlerCollection();
staticInit();
}
// Inject the customizing classes that might be defined in fragment bundles.
private static synchronized void staticInit()
{
@ -370,6 +379,10 @@ public class WebappRegistrationHelper
*/
private void init()
{
if (_ctxtHandler != null)
{
return;
}
// Get the context handler
_ctxtHandler = (ContextHandlerCollection)_server.getChildHandlerByClass(ContextHandlerCollection.class);