Issue #2409 Ensure no duplicate config classes in osgi (#2416)

Signed-off-by: Jan Bartel <janb@webtide.com>
This commit is contained in:
Jan Bartel 2018-04-06 09:18:47 +10:00 committed by GitHub
parent be3c5a08d0
commit 09bfb77e5f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 4 deletions

View File

@ -590,15 +590,20 @@ public abstract class AbstractWebAppProvider extends AbstractLifeCycle implement
Configuration.ClassList defaults = Configuration.ClassList.serverDefault(_serverWrapper.getServer());
//add before JettyWebXmlConfiguration
if (annotationsAvailable())
if (annotationsAvailable() && !defaults.contains("org.eclipse.jetty.osgi.annotations.AnnotationConfiguration"))
defaults.addBefore("org.eclipse.jetty.webapp.JettyWebXmlConfiguration",
"org.eclipse.jetty.osgi.annotations.AnnotationConfiguration");
//add in EnvConfiguration and PlusConfiguration just after FragmentConfiguration
if (jndiAvailable())
defaults.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration",
"org.eclipse.jetty.plus.webapp.EnvConfiguration",
"org.eclipse.jetty.plus.webapp.PlusConfiguration");
{
if (!defaults.contains("org.eclipse.jetty.plus.webapp.EnvConfiguration"))
defaults.addAfter("org.eclipse.jetty.webapp.FragmentConfiguration",
"org.eclipse.jetty.plus.webapp.EnvConfiguration");
if (!defaults.contains("org.eclipse.jetty.plus.webapp.PlusConfiguration"))
defaults.addAfter("org.eclipse.jetty.plus.webapp.EnvConfiguration", "org.eclipse.jetty.plus.webapp.PlusConfiguration");
}
String[] asArray = new String[defaults.size()];
return defaults.toArray(asArray);
}