Merge pull request #4097 from eclipse/jetty-10.0.x-ConfigurationCleanup
Configuration cleanup
This commit is contained in:
commit
e690b45f87
|
@ -42,10 +42,10 @@ import org.eclipse.jetty.util.StringUtil;
|
||||||
import org.eclipse.jetty.util.URIUtil;
|
import org.eclipse.jetty.util.URIUtil;
|
||||||
import org.eclipse.jetty.util.log.Log;
|
import org.eclipse.jetty.util.log.Log;
|
||||||
import org.eclipse.jetty.util.log.Logger;
|
import org.eclipse.jetty.util.log.Logger;
|
||||||
import org.eclipse.jetty.util.resource.PathResource;
|
|
||||||
import org.eclipse.jetty.util.resource.Resource;
|
import org.eclipse.jetty.util.resource.Resource;
|
||||||
import org.eclipse.jetty.util.resource.ResourceCollection;
|
import org.eclipse.jetty.util.resource.ResourceCollection;
|
||||||
import org.eclipse.jetty.webapp.Configuration;
|
import org.eclipse.jetty.webapp.Configuration;
|
||||||
|
import org.eclipse.jetty.webapp.Configurations;
|
||||||
import org.eclipse.jetty.webapp.MetaInfConfiguration;
|
import org.eclipse.jetty.webapp.MetaInfConfiguration;
|
||||||
import org.eclipse.jetty.webapp.WebAppContext;
|
import org.eclipse.jetty.webapp.WebAppContext;
|
||||||
|
|
||||||
|
@ -310,22 +310,27 @@ public class JettyWebAppContext extends WebAppContext
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void loadConfigurations()
|
protected Configurations newConfigurations()
|
||||||
{
|
{
|
||||||
super.loadConfigurations();
|
Configurations configurations = super.newConfigurations();
|
||||||
try
|
if (getJettyEnvXml() != null)
|
||||||
{
|
{
|
||||||
// inject configurations with config from maven plugin
|
try
|
||||||
for (Configuration c : getWebAppConfigurations())
|
|
||||||
{
|
{
|
||||||
if (c instanceof EnvConfiguration && getJettyEnvXml() != null)
|
// inject configurations with config from maven plugin
|
||||||
((EnvConfiguration)c).setJettyEnvResource(new PathResource(new File(getJettyEnvXml())));
|
for (Configuration c : configurations)
|
||||||
|
{
|
||||||
|
if (c instanceof EnvConfiguration)
|
||||||
|
((EnvConfiguration)c).setJettyEnvResource(Resource.newResource(getJettyEnvXml()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
|
||||||
{
|
return configurations;
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -85,7 +85,7 @@ public class QuickStartConfiguration extends AbstractConfiguration
|
||||||
|
|
||||||
public QuickStartConfiguration()
|
public QuickStartConfiguration()
|
||||||
{
|
{
|
||||||
super(false);
|
super(true);
|
||||||
addDependencies(WebInfConfiguration.class);
|
addDependencies(WebInfConfiguration.class);
|
||||||
addDependents(WebXmlConfiguration.class);
|
addDependents(WebXmlConfiguration.class);
|
||||||
}
|
}
|
||||||
|
@ -208,7 +208,7 @@ public class QuickStartConfiguration extends AbstractConfiguration
|
||||||
{
|
{
|
||||||
LOG.info("Quickstarting {}", context);
|
LOG.info("Quickstarting {}", context);
|
||||||
_quickStart = true;
|
_quickStart = true;
|
||||||
context.setConfigurations(context.getWebAppConfigurations().stream()
|
context.setConfigurations(context.getConfigurations().stream()
|
||||||
.filter(c -> !__replacedConfigurations.contains(c.replaces()) && !__replacedConfigurations.contains(c.getClass()))
|
.filter(c -> !__replacedConfigurations.contains(c.replaces()) && !__replacedConfigurations.contains(c.getClass()))
|
||||||
.collect(Collectors.toList()).toArray(new Configuration[]{}));
|
.collect(Collectors.toList()).toArray(new Configuration[]{}));
|
||||||
context.getMetaData().setWebXml((Resource)context.getAttribute(QUICKSTART_WEB_XML));
|
context.getMetaData().setWebXml((Resource)context.getAttribute(QUICKSTART_WEB_XML));
|
||||||
|
|
|
@ -93,7 +93,7 @@ public class QuickStartGeneratorConfiguration extends AbstractConfiguration
|
||||||
|
|
||||||
public QuickStartGeneratorConfiguration(boolean abort)
|
public QuickStartGeneratorConfiguration(boolean abort)
|
||||||
{
|
{
|
||||||
super(true);
|
super(false);
|
||||||
_count = 0;
|
_count = 0;
|
||||||
_abort = abort;
|
_abort = abort;
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ import java.util.stream.Collectors;
|
||||||
|
|
||||||
public class AbstractConfiguration implements Configuration
|
public class AbstractConfiguration implements Configuration
|
||||||
{
|
{
|
||||||
private final boolean _disabledByDefault;
|
private final boolean _enabledByDefault;
|
||||||
private final List<String> _after = new ArrayList<>();
|
private final List<String> _after = new ArrayList<>();
|
||||||
private final List<String> _beforeThis = new ArrayList<>();
|
private final List<String> _beforeThis = new ArrayList<>();
|
||||||
private final ClassMatcher _system = new ClassMatcher();
|
private final ClassMatcher _system = new ClassMatcher();
|
||||||
|
@ -34,12 +34,12 @@ public class AbstractConfiguration implements Configuration
|
||||||
|
|
||||||
protected AbstractConfiguration()
|
protected AbstractConfiguration()
|
||||||
{
|
{
|
||||||
this(false);
|
this(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected AbstractConfiguration(boolean disabledByDefault)
|
protected AbstractConfiguration(boolean enabledByDefault)
|
||||||
{
|
{
|
||||||
_disabledByDefault = disabledByDefault;
|
_enabledByDefault = enabledByDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -196,9 +196,9 @@ public class AbstractConfiguration implements Configuration
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isDisabledByDefault()
|
public boolean isEnabledByDefault()
|
||||||
{
|
{
|
||||||
return _disabledByDefault;
|
return _enabledByDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -34,12 +34,12 @@ import org.eclipse.jetty.util.TopologicalSort;
|
||||||
* </p>
|
* </p>
|
||||||
* <p>Configuration instances are discovered by the {@link Configurations} class using either the
|
* <p>Configuration instances are discovered by the {@link Configurations} class using either the
|
||||||
* {@link ServiceLoader} mechanism or by an explicit call to {@link Configurations#setKnown(String...)}.
|
* {@link ServiceLoader} mechanism or by an explicit call to {@link Configurations#setKnown(String...)}.
|
||||||
* By default, all Configurations that do not implement the {@link #isDisabledByDefault()} interface
|
* By default, all Configurations that do not return false from {@link #isEnabledByDefault()}
|
||||||
* are applied to all {@link WebAppContext}s within the JVM. However a Server wide default {@link Configurations}
|
* are applied to all {@link WebAppContext}s within the JVM. However a Server wide default {@link Configurations}
|
||||||
* collection may also be defined with {@link Configurations#setServerDefault(org.eclipse.jetty.server.Server)}.
|
* collection may also be defined with {@link Configurations#setServerDefault(org.eclipse.jetty.server.Server)}.
|
||||||
* Furthermore, each individual Context may have its Configurations list explicitly set and/or amended with
|
* Furthermore, each individual Context may have its Configurations list explicitly set and/or amended with
|
||||||
* {@link WebAppContext#setConfigurations(Configuration[])}, {@link WebAppContext#addConfiguration(Configuration...)}
|
* {@link WebAppContext#setConfigurations(Configuration[])}, {@link WebAppContext#addConfiguration(Configuration...)}
|
||||||
* or {@link WebAppContext#getWebAppConfigurations()}.
|
* or {@link WebAppContext#getConfigurations()}.
|
||||||
* </p>
|
* </p>
|
||||||
* <p>Since Jetty-9.4, Configurations are self ordering using the {@link #getDependencies()} and
|
* <p>Since Jetty-9.4, Configurations are self ordering using the {@link #getDependencies()} and
|
||||||
* {@link #getDependents()} methods for a {@link TopologicalSort} initiated by {@link Configurations#sort()}
|
* {@link #getDependents()} methods for a {@link TopologicalSort} initiated by {@link Configurations#sort()}
|
||||||
|
@ -171,9 +171,9 @@ public interface Configuration
|
||||||
void destroy(WebAppContext context) throws Exception;
|
void destroy(WebAppContext context) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return true if configuration is disabled by default
|
* @return true if configuration is enabled by default
|
||||||
*/
|
*/
|
||||||
boolean isDisabledByDefault();
|
boolean isEnabledByDefault();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return true if configuration should be aborted
|
* @return true if configuration should be aborted
|
||||||
|
|
|
@ -209,7 +209,7 @@ public class Configurations extends AbstractList<Configuration> implements Dumpa
|
||||||
if (configurations == null)
|
if (configurations == null)
|
||||||
{
|
{
|
||||||
configurations = new Configurations(Configurations.getKnown().stream()
|
configurations = new Configurations(Configurations.getKnown().stream()
|
||||||
.filter(c -> !c.isDisabledByDefault())
|
.filter(c -> c.isEnabledByDefault())
|
||||||
.map(c -> c.getClass().getName())
|
.map(c -> c.getClass().getName())
|
||||||
.toArray(String[]::new));
|
.toArray(String[]::new));
|
||||||
}
|
}
|
||||||
|
@ -279,6 +279,27 @@ public class Configurations extends AbstractList<Configuration> implements Dumpa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public <T> T get(Class<? extends T> configClass)
|
||||||
|
{
|
||||||
|
for (Configuration configuration : _configurations)
|
||||||
|
{
|
||||||
|
if (configClass.isAssignableFrom(configuration.getClass()))
|
||||||
|
return (T)configuration;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public <T> List<T> getConfigurations(Class<? extends T> configClass)
|
||||||
|
{
|
||||||
|
List<T> list = new ArrayList<>();
|
||||||
|
for (Configuration configuration : _configurations)
|
||||||
|
{
|
||||||
|
if (configClass.isAssignableFrom(configuration.getClass()))
|
||||||
|
list.add((T)configuration);
|
||||||
|
}
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
public void clear()
|
public void clear()
|
||||||
{
|
{
|
||||||
_configurations.clear();
|
_configurations.clear();
|
||||||
|
|
|
@ -95,7 +95,7 @@ import org.eclipse.jetty.util.resource.ResourceCollection;
|
||||||
* <ul>
|
* <ul>
|
||||||
* <li>Add all Server class inclusions from all known configurations {@link Configurations#getKnown()}</li>
|
* <li>Add all Server class inclusions from all known configurations {@link Configurations#getKnown()}</li>
|
||||||
* <li>{@link #loadConfigurations()}, which uses either explicitly set Configurations or takes the server
|
* <li>{@link #loadConfigurations()}, which uses either explicitly set Configurations or takes the server
|
||||||
* default (which is all known non {@link Configuration#isDisabledByDefault()} Configurations.</li>
|
* default (which is all known {@link Configuration#isEnabledByDefault()} Configurations.</li>
|
||||||
* <li>Sort the configurations using {@link TopologicalSort} in {@link Configurations#sort()}.</li>
|
* <li>Sort the configurations using {@link TopologicalSort} in {@link Configurations#sort()}.</li>
|
||||||
* <li>Add all Server class exclusions from this webapps {@link Configurations}</li>
|
* <li>Add all Server class exclusions from this webapps {@link Configurations}</li>
|
||||||
* <li>Add all System classes inclusions and exclusions for this webapps {@link Configurations}</li>
|
* <li>Add all System classes inclusions and exclusions for this webapps {@link Configurations}</li>
|
||||||
|
@ -183,10 +183,10 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
|
||||||
"org.eclipse.jetty." // hide jetty classes
|
"org.eclipse.jetty." // hide jetty classes
|
||||||
);
|
);
|
||||||
|
|
||||||
private final Configurations _configurations = new Configurations();
|
|
||||||
private final ClassMatcher _systemClasses = new ClassMatcher(__dftSystemClasses);
|
private final ClassMatcher _systemClasses = new ClassMatcher(__dftSystemClasses);
|
||||||
private final ClassMatcher _serverClasses = new ClassMatcher(__dftServerClasses);
|
private final ClassMatcher _serverClasses = new ClassMatcher(__dftServerClasses);
|
||||||
|
|
||||||
|
private Configurations _configurations;
|
||||||
private String _defaultsDescriptor = WEB_DEFAULTS_XML;
|
private String _defaultsDescriptor = WEB_DEFAULTS_XML;
|
||||||
private String _descriptor = null;
|
private String _descriptor = null;
|
||||||
private final List<String> _overrideDescriptors = new ArrayList<>();
|
private final List<String> _overrideDescriptors = new ArrayList<>();
|
||||||
|
@ -570,18 +570,21 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
|
||||||
{
|
{
|
||||||
// Prepare for configuration
|
// Prepare for configuration
|
||||||
MultiException mx = new MultiException();
|
MultiException mx = new MultiException();
|
||||||
for (Configuration configuration : _configurations)
|
if (_configurations != null)
|
||||||
{
|
{
|
||||||
try
|
for (Configuration configuration : _configurations)
|
||||||
{
|
{
|
||||||
configuration.destroy(this);
|
try
|
||||||
}
|
{
|
||||||
catch (Exception e)
|
configuration.destroy(this);
|
||||||
{
|
}
|
||||||
mx.add(e);
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
mx.add(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_configurations.clear();
|
_configurations = null;
|
||||||
super.destroy();
|
super.destroy();
|
||||||
mx.ifExceptionThrowRuntime();
|
mx.ifExceptionThrowRuntime();
|
||||||
}
|
}
|
||||||
|
@ -615,10 +618,9 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
|
||||||
/**
|
/**
|
||||||
* @return Returns the configurations.
|
* @return Returns the configurations.
|
||||||
*/
|
*/
|
||||||
public Configurations getWebAppConfigurations()
|
public Configurations getConfigurations()
|
||||||
{
|
{
|
||||||
if (_configurations.size() == 0)
|
loadConfigurations();
|
||||||
loadConfigurations();
|
|
||||||
return _configurations;
|
return _configurations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -885,10 +887,18 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
|
||||||
protected void loadConfigurations()
|
protected void loadConfigurations()
|
||||||
{
|
{
|
||||||
//if the configuration instances have been set explicitly, use them
|
//if the configuration instances have been set explicitly, use them
|
||||||
if (!_configurations.isEmpty())
|
if (_configurations != null)
|
||||||
return;
|
return;
|
||||||
|
if (isStarted())
|
||||||
|
throw new IllegalStateException();
|
||||||
|
_configurations = newConfigurations();
|
||||||
|
}
|
||||||
|
|
||||||
_configurations.add(Configurations.getServerDefault(getServer()).toArray());
|
protected Configurations newConfigurations()
|
||||||
|
{
|
||||||
|
Configurations configurations = new Configurations();
|
||||||
|
configurations.add(Configurations.getServerDefault(getServer()).toArray());
|
||||||
|
return configurations;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -958,8 +968,8 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
|
||||||
*/
|
*/
|
||||||
public void setConfigurationClasses(String[] configurations)
|
public void setConfigurationClasses(String[] configurations)
|
||||||
{
|
{
|
||||||
if (isStarted())
|
if (_configurations == null)
|
||||||
throw new IllegalStateException();
|
_configurations = new Configurations();
|
||||||
_configurations.set(configurations);
|
_configurations.set(configurations);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -973,15 +983,13 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
|
||||||
*/
|
*/
|
||||||
public void setConfigurations(Configuration[] configurations)
|
public void setConfigurations(Configuration[] configurations)
|
||||||
{
|
{
|
||||||
if (isStarted())
|
if (_configurations == null)
|
||||||
throw new IllegalStateException();
|
_configurations = new Configurations();
|
||||||
_configurations.set(configurations);
|
_configurations.set(configurations);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addConfiguration(Configuration... configuration)
|
public void addConfiguration(Configuration... configuration)
|
||||||
{
|
{
|
||||||
if (isStarted())
|
|
||||||
throw new IllegalStateException();
|
|
||||||
loadConfigurations();
|
loadConfigurations();
|
||||||
_configurations.add(configuration);
|
_configurations.add(configuration);
|
||||||
}
|
}
|
||||||
|
@ -989,12 +997,19 @@ public class WebAppContext extends ServletContextHandler implements WebAppClassL
|
||||||
public <T> T getConfiguration(Class<? extends T> configClass)
|
public <T> T getConfiguration(Class<? extends T> configClass)
|
||||||
{
|
{
|
||||||
loadConfigurations();
|
loadConfigurations();
|
||||||
for (Configuration configuration : _configurations)
|
return _configurations.get(configClass);
|
||||||
{
|
}
|
||||||
if (configClass.isAssignableFrom(configuration.getClass()))
|
|
||||||
return (T)configuration;
|
public void removeConfiguration(Configuration... configurations)
|
||||||
}
|
{
|
||||||
return null;
|
if (_configurations != null)
|
||||||
|
_configurations.remove(configurations);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void removeConfiguration(Class<? extends Configuration>... configurations)
|
||||||
|
{
|
||||||
|
if (_configurations != null)
|
||||||
|
_configurations.remove(configurations);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -100,7 +100,7 @@ public class WebAppContextTest
|
||||||
{
|
{
|
||||||
Configurations.cleanKnown();
|
Configurations.cleanKnown();
|
||||||
String[] known_and_enabled = Configurations.getKnown().stream()
|
String[] known_and_enabled = Configurations.getKnown().stream()
|
||||||
.filter(c -> !c.isDisabledByDefault())
|
.filter(c -> c.isEnabledByDefault())
|
||||||
.map(c -> c.getClass().getName())
|
.map(c -> c.getClass().getName())
|
||||||
.toArray(String[]::new);
|
.toArray(String[]::new);
|
||||||
|
|
||||||
|
@ -108,7 +108,7 @@ public class WebAppContextTest
|
||||||
|
|
||||||
//test if no classnames set, its the defaults
|
//test if no classnames set, its the defaults
|
||||||
WebAppContext wac = new WebAppContext();
|
WebAppContext wac = new WebAppContext();
|
||||||
assertThat(wac.getWebAppConfigurations().stream()
|
assertThat(wac.getConfigurations().stream()
|
||||||
.map(c -> c.getClass().getName())
|
.map(c -> c.getClass().getName())
|
||||||
.collect(Collectors.toList()),
|
.collect(Collectors.toList()),
|
||||||
Matchers.containsInAnyOrder(known_and_enabled));
|
Matchers.containsInAnyOrder(known_and_enabled));
|
||||||
|
@ -126,7 +126,7 @@ public class WebAppContextTest
|
||||||
Configurations.cleanKnown();
|
Configurations.cleanKnown();
|
||||||
WebAppContext wac = new WebAppContext();
|
WebAppContext wac = new WebAppContext();
|
||||||
wac.setServer(new Server());
|
wac.setServer(new Server());
|
||||||
assertThat(wac.getWebAppConfigurations().stream().map(c -> c.getClass().getName()).collect(Collectors.toList()),
|
assertThat(wac.getConfigurations().stream().map(c -> c.getClass().getName()).collect(Collectors.toList()),
|
||||||
Matchers.contains(
|
Matchers.contains(
|
||||||
"org.eclipse.jetty.webapp.JmxConfiguration",
|
"org.eclipse.jetty.webapp.JmxConfiguration",
|
||||||
"org.eclipse.jetty.webapp.WebInfConfiguration",
|
"org.eclipse.jetty.webapp.WebInfConfiguration",
|
||||||
|
@ -144,14 +144,14 @@ public class WebAppContextTest
|
||||||
Configuration[] configs = {new WebInfConfiguration()};
|
Configuration[] configs = {new WebInfConfiguration()};
|
||||||
WebAppContext wac = new WebAppContext();
|
WebAppContext wac = new WebAppContext();
|
||||||
wac.setConfigurations(configs);
|
wac.setConfigurations(configs);
|
||||||
assertThat(wac.getWebAppConfigurations(), Matchers.contains(configs));
|
assertThat(wac.getConfigurations(), Matchers.contains(configs));
|
||||||
|
|
||||||
//test that explicit config instances override any from server
|
//test that explicit config instances override any from server
|
||||||
String[] classNames = {"x.y.z"};
|
String[] classNames = {"x.y.z"};
|
||||||
Server server = new Server();
|
Server server = new Server();
|
||||||
server.setAttribute(Configuration.ATTR, classNames);
|
server.setAttribute(Configuration.ATTR, classNames);
|
||||||
wac.setServer(server);
|
wac.setServer(server);
|
||||||
assertThat(wac.getWebAppConfigurations(), Matchers.contains(configs));
|
assertThat(wac.getConfigurations(), Matchers.contains(configs));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -193,7 +193,7 @@ public class DeploymentErrorTest
|
||||||
assertThat("ContextHandler.isAvailable", context.isAvailable(), is(false));
|
assertThat("ContextHandler.isAvailable", context.isAvailable(), is(false));
|
||||||
WebAppContext webapp = (WebAppContext)context;
|
WebAppContext webapp = (WebAppContext)context;
|
||||||
TrackedConfiguration trackedConfiguration = null;
|
TrackedConfiguration trackedConfiguration = null;
|
||||||
for (Configuration webappConfig : webapp.getWebAppConfigurations())
|
for (Configuration webappConfig : webapp.getConfigurations())
|
||||||
{
|
{
|
||||||
if (webappConfig instanceof TrackedConfiguration)
|
if (webappConfig instanceof TrackedConfiguration)
|
||||||
trackedConfiguration = (TrackedConfiguration)webappConfig;
|
trackedConfiguration = (TrackedConfiguration)webappConfig;
|
||||||
|
@ -239,7 +239,7 @@ public class DeploymentErrorTest
|
||||||
assertThat("ContextHandler.isAvailable", context.isAvailable(), is(false));
|
assertThat("ContextHandler.isAvailable", context.isAvailable(), is(false));
|
||||||
WebAppContext webapp = (WebAppContext)context;
|
WebAppContext webapp = (WebAppContext)context;
|
||||||
TrackedConfiguration trackedConfiguration = null;
|
TrackedConfiguration trackedConfiguration = null;
|
||||||
for (Configuration webappConfig : webapp.getWebAppConfigurations())
|
for (Configuration webappConfig : webapp.getConfigurations())
|
||||||
{
|
{
|
||||||
if (webappConfig instanceof TrackedConfiguration)
|
if (webappConfig instanceof TrackedConfiguration)
|
||||||
trackedConfiguration = (TrackedConfiguration)webappConfig;
|
trackedConfiguration = (TrackedConfiguration)webappConfig;
|
||||||
|
@ -285,7 +285,7 @@ public class DeploymentErrorTest
|
||||||
assertThat("ContextHandler.isAvailable", context.isAvailable(), is(false));
|
assertThat("ContextHandler.isAvailable", context.isAvailable(), is(false));
|
||||||
WebAppContext webapp = (WebAppContext)context;
|
WebAppContext webapp = (WebAppContext)context;
|
||||||
TrackedConfiguration trackedConfiguration = null;
|
TrackedConfiguration trackedConfiguration = null;
|
||||||
for (Configuration webappConfig : webapp.getWebAppConfigurations())
|
for (Configuration webappConfig : webapp.getConfigurations())
|
||||||
{
|
{
|
||||||
if (webappConfig instanceof TrackedConfiguration)
|
if (webappConfig instanceof TrackedConfiguration)
|
||||||
trackedConfiguration = (TrackedConfiguration)webappConfig;
|
trackedConfiguration = (TrackedConfiguration)webappConfig;
|
||||||
|
|
Loading…
Reference in New Issue