Support jetty-eeX-env.xml, as per jetty-eeX-web.xml (#11752)

* Support jetty-eeX-env.xml, as per jetty-eeX-web.xml

---------

Co-authored-by: Greg Wilkins <gregw@webtide.com>
This commit is contained in:
Jan Bartel 2024-05-10 08:43:48 +02:00 committed by GitHub
parent 312bc340b1
commit 1e0f012f66
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
22 changed files with 584 additions and 46 deletions

View File

@ -47,6 +47,8 @@ public class EnvConfiguration extends AbstractConfiguration
private static final Logger LOG = LoggerFactory.getLogger(EnvConfiguration.class); private static final Logger LOG = LoggerFactory.getLogger(EnvConfiguration.class);
private static final String JETTY_ENV_BINDINGS = "org.eclipse.jetty.jndi.EnvConfiguration"; private static final String JETTY_ENV_BINDINGS = "org.eclipse.jetty.jndi.EnvConfiguration";
private static final String JETTY_EE10_ENV_XML_FILENAME = "jetty-ee10-env.xml";
private static final String JETTY_ENV_XML_FILENAME = "jetty-env.xml";
public EnvConfiguration() public EnvConfiguration()
{ {
@ -69,25 +71,12 @@ public class EnvConfiguration extends AbstractConfiguration
if (LOG.isDebugEnabled()) if (LOG.isDebugEnabled())
LOG.debug("Created java:comp/env for webapp {}", context.getContextPath()); LOG.debug("Created java:comp/env for webapp {}", context.getContextPath());
//check to see if an explicit file has been set, if not, //check to see if an explicit file has been set
//look in WEB-INF/jetty-env.xml
Resource jettyEnvXmlResource = (Resource)context.getAttribute(JETTY_ENV_XML); Resource jettyEnvXmlResource = (Resource)context.getAttribute(JETTY_ENV_XML);
if (jettyEnvXmlResource == null) if (jettyEnvXmlResource == null)
{ {
//look for a file called WEB-INF/jetty-env.xml //otherwise find jetty-ee10-env.xml or fallback to jetty-env.xml
//and process it if it exists jettyEnvXmlResource = resolveJettyEnvXml(context.getWebInf());
Resource webInf = context.getWebInf();
if (webInf != null && webInf.isDirectory())
{
// TODO: should never return from WEB-INF/lib/foo.jar!/WEB-INF/jetty-env.xml
// TODO: should also never return from a META-INF/versions/#/WEB-INF/jetty-env.xml location
Resource jettyEnv = webInf.resolve("jetty-env.xml");
if (Resources.exists(jettyEnv))
{
jettyEnvXmlResource = jettyEnv;
}
}
} }
if (jettyEnvXmlResource != null) if (jettyEnvXmlResource != null)
@ -241,6 +230,40 @@ public class EnvConfiguration extends AbstractConfiguration
} }
} }
/**
* Obtain a WEB-INF/jetty-ee10-env.xml, falling back to
* looking for WEB-INF/jetty-env.xml.
*
* @param webInf the WEB-INF of the context to search
* @return the file if it exists or null otherwise
*/
private Resource resolveJettyEnvXml(Resource webInf)
{
try
{
if (webInf == null || !webInf.isDirectory())
return null;
//try to find jetty-ee10-env.xml
Resource xmlResource = webInf.resolve(JETTY_EE10_ENV_XML_FILENAME);
if (!Resources.missing(xmlResource))
return xmlResource;
//failing that, look for jetty-env.xml
xmlResource = webInf.resolve(JETTY_ENV_XML_FILENAME);
if (!Resources.missing(xmlResource))
return xmlResource;
return null;
}
catch (Exception e)
{
if (LOG.isDebugEnabled())
LOG.debug("Error resolving", e);
return null;
}
}
private static class Dumper extends NamingDump private static class Dumper extends NamingDump
{ {
Dumper(ClassLoader loader, String name) Dumper(ClassLoader loader, String name)

View File

@ -0,0 +1,76 @@
//
// ========================================================================
// Copyright (c) 1995 Mort Bay Consulting Pty Ltd and others.
//
// This program and the accompanying materials are made available under the
// terms of the Eclipse Public License v. 2.0 which is available at
// https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
// which is available at https://www.apache.org/licenses/LICENSE-2.0.
//
// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
// ========================================================================
//
package org.eclipse.jetty.ee10.plus.webapp;
import java.nio.file.Files;
import java.nio.file.Path;
import org.eclipse.jetty.ee10.webapp.WebAppContext;
import org.eclipse.jetty.plus.jndi.NamingEntryUtil;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class EnvConfigurationTest
{
Server _server;
@BeforeEach
public void setUp()
{
_server = new Server();
}
@AfterEach
public void tearDown() throws Exception
{
if (_server != null)
_server.stop();
}
@Test
public void testWithOnlyJettyWebXml() throws Exception
{
Path testWebappDir = MavenTestingUtils.getTargetPath("test-classes/webapp-with-jetty-env-xml");
assertTrue(Files.exists(testWebappDir));
WebAppContext context = new WebAppContext();
context.setContextPath("/");
_server.setHandler(context);
context.setWar(testWebappDir.toFile().getAbsolutePath());
_server.start();
assertNotNull(NamingEntryUtil.lookupNamingEntry(context, "apricot"));
}
@Test
public void testWithJettyEEWebXml() throws Exception
{
Path testWebappDir = MavenTestingUtils.getTargetPath("test-classes/webapp-with-jetty-ee10-env-xml");
assertTrue(Files.exists(testWebappDir));
WebAppContext context = new WebAppContext();
context.setContextPath("/");
_server.setHandler(context);
context.setWar(testWebappDir.toFile().getAbsolutePath());
_server.start();
assertNotNull(NamingEntryUtil.lookupNamingEntry(context, "peach"));
assertNull(NamingEntryUtil.lookupNamingEntry(context, "cabbage"));
}
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee10.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>peach</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee10.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>cabbage</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee10.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>apricot</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee10.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>apricot</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -47,6 +47,8 @@ public class EnvConfiguration extends AbstractConfiguration
private static final Logger LOG = LoggerFactory.getLogger(EnvConfiguration.class); private static final Logger LOG = LoggerFactory.getLogger(EnvConfiguration.class);
private static final String JETTY_ENV_BINDINGS = "org.eclipse.jetty.jndi.EnvConfiguration"; private static final String JETTY_ENV_BINDINGS = "org.eclipse.jetty.jndi.EnvConfiguration";
private static final String JETTY_EE11_ENV_XML_FILENAME = "jetty-ee11-env.xml";
private static final String JETTY_ENV_XML_FILENAME = "jetty-env.xml";
public EnvConfiguration() public EnvConfiguration()
{ {
@ -69,25 +71,11 @@ public class EnvConfiguration extends AbstractConfiguration
if (LOG.isDebugEnabled()) if (LOG.isDebugEnabled())
LOG.debug("Created java:comp/env for webapp {}", context.getContextPath()); LOG.debug("Created java:comp/env for webapp {}", context.getContextPath());
//check to see if an explicit file has been set, if not, //check to see if an explicit file has been set,
//look in WEB-INF/jetty-env.xml
Resource jettyEnvXmlResource = (Resource)context.getAttribute(JETTY_ENV_XML); Resource jettyEnvXmlResource = (Resource)context.getAttribute(JETTY_ENV_XML);
if (jettyEnvXmlResource == null) if (jettyEnvXmlResource == null)
{ {
//look for a file called WEB-INF/jetty-env.xml jettyEnvXmlResource = resolveJettyEnvXml(context.getWebInf());
//and process it if it exists
Resource webInf = context.getWebInf();
if (webInf != null && webInf.isDirectory())
{
// TODO: should never return from WEB-INF/lib/foo.jar!/WEB-INF/jetty-env.xml
// TODO: should also never return from a META-INF/versions/#/WEB-INF/jetty-env.xml location
Resource jettyEnv = webInf.resolve("jetty-env.xml");
if (Resources.exists(jettyEnv))
{
jettyEnvXmlResource = jettyEnv;
}
}
} }
if (jettyEnvXmlResource != null) if (jettyEnvXmlResource != null)
@ -241,6 +229,40 @@ public class EnvConfiguration extends AbstractConfiguration
} }
} }
/**
* Obtain a WEB-INF/jetty-ee11-env.xml, falling back to
* looking for WEB-INF/jetty-env.xml.
*
* @param webInf the WEB-INF of the context to search
* @return the file if it exists or null otherwise
*/
private Resource resolveJettyEnvXml(Resource webInf)
{
try
{
if (webInf == null || !webInf.isDirectory())
return null;
//try to find jetty-ee10-env.xml
Resource xmlResource = webInf.resolve(JETTY_EE11_ENV_XML_FILENAME);
if (!Resources.missing(xmlResource))
return xmlResource;
//failing that, look for jetty-env.xml
xmlResource = webInf.resolve(JETTY_ENV_XML_FILENAME);
if (!Resources.missing(xmlResource))
return xmlResource;
return null;
}
catch (Exception e)
{
if (LOG.isDebugEnabled())
LOG.debug("Error resolving", e);
return null;
}
}
private static class Dumper extends NamingDump private static class Dumper extends NamingDump
{ {
Dumper(ClassLoader loader, String name) Dumper(ClassLoader loader, String name)

View File

@ -0,0 +1,76 @@
//
// ========================================================================
// Copyright (c) 1995 Mort Bay Consulting Pty Ltd and others.
//
// This program and the accompanying materials are made available under the
// terms of the Eclipse Public License v. 2.0 which is available at
// https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
// which is available at https://www.apache.org/licenses/LICENSE-2.0.
//
// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
// ========================================================================
//
package org.eclipse.jetty.ee11.plus.webapp;
import java.nio.file.Files;
import java.nio.file.Path;
import org.eclipse.jetty.ee11.webapp.WebAppContext;
import org.eclipse.jetty.plus.jndi.NamingEntryUtil;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class EnvConfigurationTest
{
Server _server;
@BeforeEach
public void setUp()
{
_server = new Server();
}
@AfterEach
public void tearDown() throws Exception
{
if (_server != null)
_server.stop();
}
@Test
public void testWithOnlyJettyWebXml() throws Exception
{
Path testWebappDir = MavenTestingUtils.getTargetPath("test-classes/webapp-with-jetty-env-xml");
assertTrue(Files.exists(testWebappDir));
WebAppContext context = new WebAppContext();
context.setContextPath("/");
_server.setHandler(context);
context.setWar(testWebappDir.toFile().getAbsolutePath());
_server.start();
assertNotNull(NamingEntryUtil.lookupNamingEntry(context, "apricot"));
}
@Test
public void testWithJettyEEWebXml() throws Exception
{
Path testWebappDir = MavenTestingUtils.getTargetPath("test-classes/webapp-with-jetty-ee11-env-xml");
assertTrue(Files.exists(testWebappDir));
WebAppContext context = new WebAppContext();
context.setContextPath("/");
_server.setHandler(context);
context.setWar(testWebappDir.toFile().getAbsolutePath());
_server.start();
assertNotNull(NamingEntryUtil.lookupNamingEntry(context, "peach"));
assertNull(NamingEntryUtil.lookupNamingEntry(context, "cabbage"));
}
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee11.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>peach</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee11.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>cabbage</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee11.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>apricot</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee11.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>apricot</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee8.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>peach</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee8.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>cabbage</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee8.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>apricot</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee8.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>apricot</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -14,7 +14,6 @@
package org.eclipse.jetty.ee9.plus.webapp; package org.eclipse.jetty.ee9.plus.webapp;
import java.net.URL; import java.net.URL;
import java.util.Map;
import java.util.Set; import java.util.Set;
import javax.naming.Context; import javax.naming.Context;
import javax.naming.InitialContext; import javax.naming.InitialContext;
@ -50,6 +49,8 @@ public class EnvConfiguration extends AbstractConfiguration
private static final Logger LOG = LoggerFactory.getLogger(EnvConfiguration.class); private static final Logger LOG = LoggerFactory.getLogger(EnvConfiguration.class);
private static final String JETTY_ENV_BINDINGS = "org.eclipse.jetty.jndi.EnvConfiguration"; private static final String JETTY_ENV_BINDINGS = "org.eclipse.jetty.jndi.EnvConfiguration";
private static final String JETTY_ENV_XML = "jetty-env.xml";
private static final String JETTY_EE9_ENV_XML = "jetty-ee9-env.xml";
private Resource jettyEnvXmlResource; private Resource jettyEnvXmlResource;
private NamingDump _dumper; private NamingDump _dumper;
private ResourceFactory.Closeable _resourceFactory; private ResourceFactory.Closeable _resourceFactory;
@ -89,19 +90,8 @@ public class EnvConfiguration extends AbstractConfiguration
//look in WEB-INF/jetty-env.xml //look in WEB-INF/jetty-env.xml
if (jettyEnvXmlResource == null) if (jettyEnvXmlResource == null)
{ {
//look for a file called WEB-INF/jetty-env.xml //look for a configuration file
//and process it if it exists jettyEnvXmlResource = resolveJettyEnvXml(context.getWebInf());
org.eclipse.jetty.util.resource.Resource webInf = context.getWebInf();
if (webInf != null && webInf.isDirectory())
{
// TODO: should never return from WEB-INF/lib/foo.jar!/WEB-INF/jetty-env.xml
// TODO: should also never return from a META-INF/versions/#/WEB-INF/jetty-env.xml location
org.eclipse.jetty.util.resource.Resource jettyEnv = webInf.resolve("jetty-env.xml");
if (Resources.isReadableFile(jettyEnv))
{
jettyEnvXmlResource = jettyEnv;
}
}
} }
if (jettyEnvXmlResource != null) if (jettyEnvXmlResource != null)
@ -257,4 +247,38 @@ public class EnvConfiguration extends AbstractConfiguration
Thread.currentThread().setContextClassLoader(oldLoader); Thread.currentThread().setContextClassLoader(oldLoader);
} }
} }
/**
* Obtain a WEB-INF/jetty-ee9-env.xml, falling back to
* looking for WEB-INF/jetty-env.xml.
*
* @param webInf the WEB-INF of the context to search
* @return the file if it exists or null otherwise
*/
private Resource resolveJettyEnvXml(Resource webInf)
{
try
{
if (webInf == null || !webInf.isDirectory())
return null;
//try to find jetty-ee9-env.xml
Resource xmlResource = webInf.resolve(JETTY_EE9_ENV_XML);
if (!Resources.missing(xmlResource))
return xmlResource;
//failing that, look for jetty-env.xml
xmlResource = webInf.resolve(JETTY_ENV_XML);
if (!Resources.missing(xmlResource))
return xmlResource;
return null;
}
catch (Exception e)
{
if (LOG.isDebugEnabled())
LOG.debug("Error resolving", e);
return null;
}
}
} }

View File

@ -0,0 +1,77 @@
//
// ========================================================================
// Copyright (c) 1995 Mort Bay Consulting Pty Ltd and others.
//
// This program and the accompanying materials are made available under the
// terms of the Eclipse Public License v. 2.0 which is available at
// https://www.eclipse.org/legal/epl-2.0, or the Apache License, Version 2.0
// which is available at https://www.apache.org/licenses/LICENSE-2.0.
//
// SPDX-License-Identifier: EPL-2.0 OR Apache-2.0
// ========================================================================
//
package org.eclipse.jetty.ee9.plus.webapp;
import java.nio.file.Files;
import java.nio.file.Path;
import org.eclipse.jetty.ee9.webapp.WebAppContext;
import org.eclipse.jetty.plus.jndi.NamingEntryUtil;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.toolchain.test.MavenTestingUtils;
import org.eclipse.jetty.util.jndi.NamingUtil;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertNull;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class EnvConfigurationTest
{
Server _server;
@BeforeEach
public void setUp()
{
_server = new Server();
}
@AfterEach
public void tearDown() throws Exception
{
if (_server != null)
_server.stop();
}
@Test
public void testWithOnlyJettyWebXml() throws Exception
{
Path testWebappDir = MavenTestingUtils.getTargetPath("test-classes/webapp-with-jetty-env-xml");
assertTrue(Files.exists(testWebappDir));
WebAppContext context = new WebAppContext();
context.setContextPath("/");
_server.setHandler(context);
context.setWar(testWebappDir.toFile().getAbsolutePath());
_server.start();
assertNotNull(NamingEntryUtil.lookupNamingEntry(context, "apricot"));
}
@Test
public void testWithJettyEEWebXml() throws Exception
{
Path testWebappDir = MavenTestingUtils.getTargetPath("test-classes/webapp-with-jetty-ee9-env-xml");
assertTrue(Files.exists(testWebappDir));
WebAppContext context = new WebAppContext();
context.setContextPath("/");
_server.setHandler(context);
context.setWar(testWebappDir.toFile().getAbsolutePath());
_server.start();
assertNotNull(NamingEntryUtil.lookupNamingEntry(context, "peach"));
assertNull(NamingEntryUtil.lookupNamingEntry(context, "cabbage"));
}
}

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee9.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>peach</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee9.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>cabbage</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee9.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>apricot</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>

View File

@ -0,0 +1,15 @@
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "https://www.eclipse.org/jetty/configure_10_0.dtd">
<Configure id='wac' class="org.eclipse.jetty.ee9.webapp.WebAppContext">
<!-- Add an EnvEntry only valid for this webapp -->
<New id="gargle" class="org.eclipse.jetty.plus.jndi.EnvEntry">
<Arg><Ref refid='wac'/></Arg>
<Arg>apricot</Arg>
<Arg type="java.lang.Double">100</Arg>
<Arg type="boolean">true</Arg>
</New>
</Configure>