mirror of
https://github.com/jetty/jetty.project.git
synced 2025-03-03 04:19:12 +00:00
Merge remote-tracking branch 'origin/jetty-9.4.x'
This commit is contained in:
commit
5e04d8160b
@ -28,6 +28,7 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Queue;
|
import java.util.Queue;
|
||||||
import java.util.concurrent.ConcurrentLinkedQueue;
|
import java.util.concurrent.ConcurrentLinkedQueue;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.eclipse.jetty.deploy.bindings.StandardDeployer;
|
import org.eclipse.jetty.deploy.bindings.StandardDeployer;
|
||||||
import org.eclipse.jetty.deploy.bindings.StandardStarter;
|
import org.eclipse.jetty.deploy.bindings.StandardStarter;
|
||||||
@ -311,7 +312,7 @@ public class DeploymentManager extends ContainerLifeCycle
|
|||||||
*/
|
*/
|
||||||
public Collection<App> getApps(Node node)
|
public Collection<App> getApps(Node node)
|
||||||
{
|
{
|
||||||
List<App> ret = new ArrayList<App>();
|
List<App> ret = new ArrayList<>();
|
||||||
for (AppEntry entry : _apps)
|
for (AppEntry entry : _apps)
|
||||||
{
|
{
|
||||||
if (entry.lifecyleNode == node)
|
if (entry.lifecyleNode == node)
|
||||||
@ -592,13 +593,40 @@ public class DeploymentManager extends ContainerLifeCycle
|
|||||||
{
|
{
|
||||||
return _lifecycle.getNodes();
|
return _lifecycle.getNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
@ManagedOperation(value="list nodes that are tracked by DeploymentManager", impact="INFO")
|
||||||
|
public Collection<String> getNodeNames()
|
||||||
|
{
|
||||||
|
return _lifecycle.getNodes().stream().map(Node::getName).collect(Collectors.toList());
|
||||||
|
}
|
||||||
|
|
||||||
@ManagedOperation(value="list apps that are located at specified App LifeCycle nodes", impact="ACTION")
|
|
||||||
public Collection<App> getApps(@Name("nodeName") String nodeName)
|
public Collection<App> getApps(@Name("nodeName") String nodeName)
|
||||||
{
|
{
|
||||||
return getApps(_lifecycle.getNodeByName(nodeName));
|
return getApps(_lifecycle.getNodeByName(nodeName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
@ManagedOperation(value="list apps that are located at specified App LifeCycle nodes", impact="ACTION")
|
||||||
|
public Collection<String> getAppNames(@Name("nodeName") String nodeName)
|
||||||
|
{
|
||||||
|
Node node = _lifecycle.getNodeByName(nodeName);
|
||||||
|
if(node == null)
|
||||||
|
{
|
||||||
|
throw new IllegalArgumentException("Unable to find node [" + nodeName + "]");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> ret = new ArrayList<>();
|
||||||
|
for (AppEntry entry : _apps)
|
||||||
|
{
|
||||||
|
if (entry.lifecyleNode == node)
|
||||||
|
{
|
||||||
|
ret.add(String.format("contextPath=%s,originId=%s,appProvider=%s", entry.app.getContextPath(), entry.app.getOriginId(), entry.app.getAppProvider().getClass().getName()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
public void scope(XmlConfiguration xmlc, Resource webapp)
|
public void scope(XmlConfiguration xmlc, Resource webapp)
|
||||||
throws IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
|
@ -40,13 +40,13 @@ public class TestHelloServlet
|
|||||||
|
|
||||||
String response = httpClient.GET( "http://localhost:" + port + "/hello?name=beer" ).getContentAsString();
|
String response = httpClient.GET( "http://localhost:" + port + "/hello?name=beer" ).getContentAsString();
|
||||||
|
|
||||||
System.out.println( "httpResponse:" + response );
|
System.out.println( "httpResponse hello annotation servlet:" + response );
|
||||||
|
|
||||||
Assert.assertEquals( "hello beer", response.trim() );
|
Assert.assertEquals( "hello beer", response.trim() );
|
||||||
|
|
||||||
response = httpClient.GET( "http://localhost:" + port + "/ping?name=beer" ).getContentAsString();
|
response = httpClient.GET( "http://localhost:" + port + "/ping?name=beer" ).getContentAsString();
|
||||||
|
|
||||||
System.out.println( "httpResponse:" + response );
|
System.out.println( "httpResponse ping fragment servlet:" + response );
|
||||||
|
|
||||||
Assert.assertEquals( "pong beer", response.trim() );
|
Assert.assertEquals( "pong beer", response.trim() );
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,11 @@
|
|||||||
<artifactId>jetty-simple-base</artifactId>
|
<artifactId>jetty-simple-base</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-simple</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.eclipse.jetty</groupId>
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
<artifactId>jetty-servlet</artifactId>
|
<artifactId>jetty-servlet</artifactId>
|
||||||
|
@ -41,13 +41,13 @@ public class TestHelloServlet
|
|||||||
|
|
||||||
String response = httpClient.GET( "http://localhost:" + port + "/hello?name=beer" ).getContentAsString();
|
String response = httpClient.GET( "http://localhost:" + port + "/hello?name=beer" ).getContentAsString();
|
||||||
|
|
||||||
System.out.println( "httpResponse:" + response );
|
System.out.println( "httpResponse hello annotation servlet:" + response );
|
||||||
|
|
||||||
Assert.assertEquals( "hello beer", response.trim() );
|
Assert.assertEquals( "hello beer", response.trim() );
|
||||||
|
|
||||||
response = httpClient.GET( "http://localhost:" + port + "/ping?name=beer" ).getContentAsString();
|
response = httpClient.GET( "http://localhost:" + port + "/ping?name=beer" ).getContentAsString();
|
||||||
|
|
||||||
System.out.println( "httpResponse:" + response );
|
System.out.println( "httpResponse ping fragment servlet:" + response );
|
||||||
|
|
||||||
Assert.assertEquals( "pong beer", response.trim() );
|
Assert.assertEquals( "pong beer", response.trim() );
|
||||||
}
|
}
|
||||||
|
@ -46,6 +46,12 @@
|
|||||||
<version>1.7.21</version>
|
<version>1.7.21</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.slf4j</groupId>
|
||||||
|
<artifactId>slf4j-simple</artifactId>
|
||||||
|
<version>1.7.21</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>commons-io</groupId>
|
<groupId>commons-io</groupId>
|
||||||
<artifactId>commons-io</artifactId>
|
<artifactId>commons-io</artifactId>
|
||||||
|
@ -151,7 +151,7 @@ public class JettyEffectiveWebXml extends JettyRunMojo
|
|||||||
//just show the result in the log
|
//just show the result in the log
|
||||||
getLog().info(IO.toString(webApp.getQuickStartWebDescriptor().getInputStream()));
|
getLog().info(IO.toString(webApp.getQuickStartWebDescriptor().getInputStream()));
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
throw new MojoExecutionException("Unable to output effective web.xml", e);
|
throw new MojoExecutionException("Unable to output effective web.xml", e);
|
||||||
}
|
}
|
||||||
|
@ -295,7 +295,7 @@ public class JettyRunForkedMojo extends JettyRunMojo
|
|||||||
//leave everything unpacked for the forked process to use
|
//leave everything unpacked for the forked process to use
|
||||||
webApp.setPersistTempDirectory(true);
|
webApp.setPersistTempDirectory(true);
|
||||||
|
|
||||||
webApp.start(); //just enough to generate the quickstart
|
webApp.start(); //just enough to generate the quickstart
|
||||||
|
|
||||||
//save config of the webapp BEFORE we stop
|
//save config of the webapp BEFORE we stop
|
||||||
File props = prepareConfiguration();
|
File props = prepareConfiguration();
|
||||||
@ -424,7 +424,6 @@ public class JettyRunForkedMojo extends JettyRunMojo
|
|||||||
{
|
{
|
||||||
if (forkedProcess != null && waitForChild)
|
if (forkedProcess != null && waitForChild)
|
||||||
forkedProcess.destroy();
|
forkedProcess.destroy();
|
||||||
|
|
||||||
throw new MojoExecutionException("Failed to create Jetty process", ex);
|
throw new MojoExecutionException("Failed to create Jetty process", ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -458,7 +457,7 @@ public class JettyRunForkedMojo extends JettyRunMojo
|
|||||||
public File prepareConfiguration() throws MojoExecutionException
|
public File prepareConfiguration() throws MojoExecutionException
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
//work out the configuration based on what is configured in the pom
|
//work out the configuration based on what is configured in the pom
|
||||||
File propsFile = new File (target, "fork.props");
|
File propsFile = new File (target, "fork.props");
|
||||||
if (propsFile.exists())
|
if (propsFile.exists())
|
||||||
@ -468,8 +467,6 @@ public class JettyRunForkedMojo extends JettyRunMojo
|
|||||||
//propsFile.deleteOnExit();
|
//propsFile.deleteOnExit();
|
||||||
|
|
||||||
Properties props = new Properties();
|
Properties props = new Properties();
|
||||||
|
|
||||||
|
|
||||||
//web.xml
|
//web.xml
|
||||||
if (webApp.getDescriptor() != null)
|
if (webApp.getDescriptor() != null)
|
||||||
{
|
{
|
||||||
@ -484,7 +481,7 @@ public class JettyRunForkedMojo extends JettyRunMojo
|
|||||||
//sort out the context path
|
//sort out the context path
|
||||||
if (webApp.getContextPath() != null)
|
if (webApp.getContextPath() != null)
|
||||||
{
|
{
|
||||||
props.put("context.path", webApp.getContextPath());
|
props.put("context.path", webApp.getContextPath());
|
||||||
}
|
}
|
||||||
|
|
||||||
//tmp dir
|
//tmp dir
|
||||||
@ -504,7 +501,6 @@ public class JettyRunForkedMojo extends JettyRunMojo
|
|||||||
props.put("base.dirs", toCSV(((ResourceCollection)postOverlayResources).getResources()));
|
props.put("base.dirs", toCSV(((ResourceCollection)postOverlayResources).getResources()));
|
||||||
else
|
else
|
||||||
props.put("base.dirs", postOverlayResources.toString());
|
props.put("base.dirs", postOverlayResources.toString());
|
||||||
|
|
||||||
|
|
||||||
//web-inf classes
|
//web-inf classes
|
||||||
if (webApp.getClasses() != null)
|
if (webApp.getClasses() != null)
|
||||||
|
@ -21,6 +21,7 @@ package org.eclipse.jetty.maven.plugin;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.nio.file.Paths;
|
import java.nio.file.Paths;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -281,14 +282,13 @@ public class JettyRunMojo extends AbstractJettyMojo
|
|||||||
if (useTestScope && (testClassesDirectory != null))
|
if (useTestScope && (testClassesDirectory != null))
|
||||||
webApp.setTestClasses (testClassesDirectory);
|
webApp.setTestClasses (testClassesDirectory);
|
||||||
|
|
||||||
webApp.getClassPathFiles().addAll( getDependencyProjects() );
|
webApp.setWebInfLib(getDependencyFiles());
|
||||||
webApp.setWebInfLib (getDependencyFiles());
|
|
||||||
|
|
||||||
//get copy of a list of war artifacts
|
//get copy of a list of war artifacts
|
||||||
Set<Artifact> matchedWarArtifacts = new HashSet<Artifact>();
|
Set<Artifact> matchedWarArtifacts = new HashSet<Artifact>();
|
||||||
|
|
||||||
//process any overlays and the war type artifacts
|
//process any overlays and the war type artifacts
|
||||||
List<Overlay> overlays = new ArrayList<Overlay>();
|
List<Overlay> overlays = new ArrayList<>();
|
||||||
for (OverlayConfig config:warPluginInfo.getMavenWarOverlayConfigs())
|
for (OverlayConfig config:warPluginInfo.getMavenWarOverlayConfigs())
|
||||||
{
|
{
|
||||||
//overlays can be individually skipped
|
//overlays can be individually skipped
|
||||||
@ -584,8 +584,12 @@ public class JettyRunMojo extends AbstractJettyMojo
|
|||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (getProjectReferences( artifact, project )!=null)
|
MavenProject mavenProject = getProjectReferences( artifact, project );
|
||||||
|
if (mavenProject != null)
|
||||||
{
|
{
|
||||||
|
File projectPath = Paths.get(mavenProject.getBuild().getOutputDirectory()).toFile();
|
||||||
|
getLog().debug( "Adding project directory " + projectPath.toString() );
|
||||||
|
dependencyFiles.add( projectPath );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -602,38 +606,6 @@ public class JettyRunMojo extends AbstractJettyMojo
|
|||||||
return dependencyFiles;
|
return dependencyFiles;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<File> getDependencyProjects()
|
|
||||||
{
|
|
||||||
List<File> dependencyFiles = new ArrayList<>();
|
|
||||||
for ( Iterator<Artifact> iter = projectArtifacts.iterator(); iter.hasNext(); )
|
|
||||||
{
|
|
||||||
Artifact artifact = iter.next();
|
|
||||||
|
|
||||||
// Include runtime and compile time libraries, and possibly test libs too
|
|
||||||
if(artifact.getType().equals("war"))
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Artifact.SCOPE_PROVIDED.equals(artifact.getScope()))
|
|
||||||
continue; //never add dependencies of scope=provided to the webapp's classpath (see also <useProvidedScope> param)
|
|
||||||
|
|
||||||
if (Artifact.SCOPE_TEST.equals(artifact.getScope()) && !useTestScope)
|
|
||||||
continue; //only add dependencies of scope=test if explicitly required
|
|
||||||
|
|
||||||
MavenProject mavenProject = getProjectReferences( artifact, project );
|
|
||||||
if (mavenProject != null)
|
|
||||||
{
|
|
||||||
dependencyFiles.add( Paths.get(mavenProject.getBuild().getOutputDirectory()).toFile() );
|
|
||||||
getLog().debug( "Adding project reference " + mavenProject.getBuild().getOutputDirectory()
|
|
||||||
+ " for WEB-INF/classes " );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dependencyFiles;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected MavenProject getProjectReferences( Artifact artifact, MavenProject project )
|
protected MavenProject getProjectReferences( Artifact artifact, MavenProject project )
|
||||||
{
|
{
|
||||||
if ( project.getProjectReferences() == null || project.getProjectReferences().isEmpty() )
|
if ( project.getProjectReferences() == null || project.getProjectReferences().isEmpty() )
|
||||||
|
@ -266,8 +266,15 @@ public class JettyWebAppContext extends WebAppContext
|
|||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
public Resource getQuickStartWebDescriptor ()
|
public Resource getQuickStartWebDescriptor ()
|
||||||
|
throws Exception
|
||||||
{
|
{
|
||||||
return (Resource)getAttribute(QuickStartConfiguration.QUICKSTART_WEB_XML);
|
Object o = getAttribute(QuickStartConfiguration.QUICKSTART_WEB_XML);
|
||||||
|
if (o == null)
|
||||||
|
return null;
|
||||||
|
else if (o instanceof Resource)
|
||||||
|
return (Resource)o;
|
||||||
|
else
|
||||||
|
return Resource.newResource((String)o);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
@ -295,6 +302,12 @@ public class JettyWebAppContext extends WebAppContext
|
|||||||
return _webInfJars;
|
return _webInfJars;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------ */
|
||||||
|
public List<File> getWebInfClasses()
|
||||||
|
{
|
||||||
|
return _webInfClasses;
|
||||||
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
public void setGenerateQuickStart (boolean quickStart)
|
public void setGenerateQuickStart (boolean quickStart)
|
||||||
{
|
{
|
||||||
@ -306,7 +319,7 @@ public class JettyWebAppContext extends WebAppContext
|
|||||||
{
|
{
|
||||||
return _isGenerateQuickStart;
|
return _isGenerateQuickStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
@ -385,6 +398,8 @@ public class JettyWebAppContext extends WebAppContext
|
|||||||
{
|
{
|
||||||
if (c instanceof EnvConfiguration && getJettyEnvXml() != null)
|
if (c instanceof EnvConfiguration && getJettyEnvXml() != null)
|
||||||
((EnvConfiguration)c).setJettyEnvXml(Resource.toURL(new File(getJettyEnvXml())));
|
((EnvConfiguration)c).setJettyEnvXml(Resource.toURL(new File(getJettyEnvXml())));
|
||||||
|
else if (c instanceof MavenQuickStartConfiguration && getQuickStartWebDescriptor() != null)
|
||||||
|
((MavenQuickStartConfiguration)c).setQuickStartWebXml(getQuickStartWebDescriptor());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
|
@ -61,62 +61,64 @@ public class MavenMetaInfConfiguration extends MetaInfConfiguration
|
|||||||
protected List<Resource> findJars (WebAppContext context)
|
protected List<Resource> findJars (WebAppContext context)
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
List<Resource> list = new ArrayList<Resource>();
|
List<Resource> list = new ArrayList<>();
|
||||||
JettyWebAppContext jwac = (JettyWebAppContext)context;
|
JettyWebAppContext jwac = (JettyWebAppContext)context;
|
||||||
if (jwac.getClassPathFiles() != null)
|
List<File> files = jwac.getWebInfLib();
|
||||||
|
if (files != null)
|
||||||
{
|
{
|
||||||
for (File f: jwac.getClassPathFiles())
|
files.forEach( file -> {
|
||||||
{
|
if (file.getName().toLowerCase(Locale.ENGLISH).endsWith(".jar")
|
||||||
if (f.getName().toLowerCase(Locale.ENGLISH).endsWith(".jar"))
|
|| file.isDirectory())
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
list.add(Resource.newResource(f.toURI()));
|
LOG.debug( " add resource to resources to examine {}", file );
|
||||||
|
list.add(Resource.newResource(file.toURI()));
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
LOG.warn("Bad url ", e);
|
LOG.warn("Bad url ", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Resource> superList = super.findJars(context);
|
List<Resource> superList = super.findJars(context);
|
||||||
if (superList != null)
|
if (superList != null)
|
||||||
list.addAll(superList);
|
list.addAll(superList);
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add in the classes dirs from test/classes and target/classes
|
* Add in the classes dirs from test/classes and target/classes
|
||||||
* @see org.eclipse.jetty.webapp.MetaInfConfiguration#findClassDirs(org.eclipse.jetty.webapp.WebAppContext)
|
* @see org.eclipse.jetty.webapp.MetaInfConfiguration#findClassDirs(org.eclipse.jetty.webapp.WebAppContext)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected List<Resource> findClassDirs(WebAppContext context) throws Exception
|
protected List<Resource> findClassDirs(WebAppContext context) throws Exception
|
||||||
{
|
{
|
||||||
List<Resource> list = new ArrayList<Resource>();
|
List<Resource> list = new ArrayList<>();
|
||||||
|
|
||||||
JettyWebAppContext jwac = (JettyWebAppContext)context;
|
JettyWebAppContext jwac = (JettyWebAppContext)context;
|
||||||
if (jwac.getClassPathFiles() != null)
|
List<File> files = jwac.getWebInfClasses();
|
||||||
|
if (files != null)
|
||||||
{
|
{
|
||||||
for (File f: jwac.getClassPathFiles())
|
files.forEach( file -> {
|
||||||
{
|
if (file.exists() && file.isDirectory())
|
||||||
if (f.exists() && f.isDirectory())
|
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
list.add(Resource.newResource(f.toURI()));
|
list.add(Resource.newResource(file.toURI()));
|
||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
LOG.warn("Bad url ", e);
|
LOG.warn("Bad url ", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Resource> classesDirs = super.findClassDirs(context);
|
List<Resource> classesDirs = super.findClassDirs(context);
|
||||||
|
@ -39,6 +39,23 @@ import org.eclipse.jetty.webapp.WebAppContext;
|
|||||||
public class MavenQuickStartConfiguration extends QuickStartConfiguration
|
public class MavenQuickStartConfiguration extends QuickStartConfiguration
|
||||||
{
|
{
|
||||||
private static final Logger LOG = Log.getLogger(QuickStartConfiguration.class);
|
private static final Logger LOG = Log.getLogger(QuickStartConfiguration.class);
|
||||||
|
|
||||||
|
private Resource _quickStartWebXml; //the descriptor to use for starting/generating quickstart
|
||||||
|
|
||||||
|
public void setQuickStartWebXml(Resource quickStartWebXml)
|
||||||
|
{
|
||||||
|
_quickStartWebXml = quickStartWebXml;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Resource getQuickStartWebXml(WebAppContext context) throws Exception
|
||||||
|
{
|
||||||
|
if (_quickStartWebXml == null)
|
||||||
|
return super.getQuickStartWebXml(context);
|
||||||
|
|
||||||
|
return _quickStartWebXml;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preConfigure(WebAppContext context) throws Exception
|
public void preConfigure(WebAppContext context) throws Exception
|
||||||
|
@ -84,10 +84,6 @@ public class MavenWebInfConfiguration extends WebInfConfiguration
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -165,6 +161,7 @@ public class MavenWebInfConfiguration extends WebInfConfiguration
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected Resource unpackOverlay (WebAppContext context, Overlay overlay)
|
protected Resource unpackOverlay (WebAppContext context, Overlay overlay)
|
||||||
throws IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
|
@ -163,7 +163,7 @@ public class RuleContainer extends Rule
|
|||||||
|
|
||||||
if (_rules==null)
|
if (_rules==null)
|
||||||
return target;
|
return target;
|
||||||
|
|
||||||
for (Rule rule : _rules)
|
for (Rule rule : _rules)
|
||||||
{
|
{
|
||||||
String applied=rule.matchAndApply(target,request, response);
|
String applied=rule.matchAndApply(target,request, response);
|
||||||
@ -179,26 +179,29 @@ public class RuleContainer extends Rule
|
|||||||
String query = request.getQueryString();
|
String query = request.getQueryString();
|
||||||
if (query != null)
|
if (query != null)
|
||||||
request.setAttribute(_originalQueryStringAttribute,query);
|
request.setAttribute(_originalQueryStringAttribute,query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ugly hack, we should just pass baseRequest into the API from RewriteHandler itself.
|
||||||
|
Request baseRequest = Request.getBaseRequest(request);
|
||||||
|
|
||||||
if (_rewriteRequestURI)
|
if (_rewriteRequestURI)
|
||||||
{
|
{
|
||||||
String encoded=URIUtil.encodePath(applied);
|
String encoded=URIUtil.encodePath(applied);
|
||||||
if (rule instanceof Rule.ApplyURI)
|
if (rule instanceof Rule.ApplyURI)
|
||||||
((Rule.ApplyURI)rule).applyURI((Request)request,((Request)request).getRequestURI(), encoded);
|
((Rule.ApplyURI)rule).applyURI(baseRequest, baseRequest.getRequestURI(), encoded);
|
||||||
else
|
else
|
||||||
((Request)request).setURIPathQuery(encoded);
|
baseRequest.setURIPathQuery(encoded);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_rewritePathInfo)
|
if (_rewritePathInfo)
|
||||||
((Request)request).setPathInfo(applied);
|
baseRequest.setPathInfo(applied);
|
||||||
|
|
||||||
target=applied;
|
target=applied;
|
||||||
|
|
||||||
if (rule.isHandling())
|
if (rule.isHandling())
|
||||||
{
|
{
|
||||||
LOG.debug("handling {}",rule);
|
LOG.debug("handling {}",rule);
|
||||||
Request.getBaseRequest(request).setHandled(true);
|
baseRequest.setHandled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rule.isTerminating())
|
if (rule.isTerminating())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user