Merge pull request #1680 from olamy/bugfix/maven_plugin_fix_master
Bugfix/maven plugin fix master
This commit is contained in:
commit
fd6b3f198c
|
@ -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>
|
||||||
|
|
|
@ -32,6 +32,7 @@ import org.eclipse.jetty.webapp.WebAppContext;
|
||||||
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;
|
||||||
|
@ -283,24 +284,13 @@ public class JettyRunMojo extends AbstractJettyMojo
|
||||||
if (useTestScope && (testClassesDirectory != null))
|
if (useTestScope && (testClassesDirectory != null))
|
||||||
webApp.setTestClasses (testClassesDirectory);
|
webApp.setTestClasses (testClassesDirectory);
|
||||||
|
|
||||||
List<File> dependencyProjects = getDependencyProjects();
|
webApp.setWebInfLib(getDependencyFiles());
|
||||||
webApp.getClassPathFiles().addAll( dependencyProjects );
|
|
||||||
List<Resource> dependencyResources = //
|
|
||||||
dependencyProjects.stream() //
|
|
||||||
.map( file -> Resource.newResource( file ) ) //
|
|
||||||
.collect( Collectors.toList() );
|
|
||||||
webApp.getMetaData().getContainerResources().addAll( dependencyResources );
|
|
||||||
webApp.setWebInfLib (getDependencyFiles());
|
|
||||||
// webApp.getWebInfLib().addAll( dependencyResources //
|
|
||||||
// .stream() //
|
|
||||||
// .map( resource -> toFile(resource) ) //
|
|
||||||
// .collect( Collectors.toList() ) );
|
|
||||||
webApp.getDependentProjects().addAll( dependencyResources );
|
|
||||||
//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
|
||||||
|
@ -596,8 +586,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -614,38 +608,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() )
|
||||||
|
|
|
@ -104,7 +104,6 @@ public class JettyWebAppContext extends WebAppContext
|
||||||
private Resource _quickStartWebXml;
|
private Resource _quickStartWebXml;
|
||||||
private String _originAttribute;
|
private String _originAttribute;
|
||||||
private boolean _generateOrigin;
|
private boolean _generateOrigin;
|
||||||
private List<Resource> dependentProjects = new ArrayList<>();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern" with a pattern for matching jars on
|
* Set the "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern" with a pattern for matching jars on
|
||||||
|
@ -320,9 +319,9 @@ public class JettyWebAppContext extends WebAppContext
|
||||||
return _webInfJars;
|
return _webInfJars;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Resource> getDependentProjects()
|
public List<File> getWebInfClasses()
|
||||||
{
|
{
|
||||||
return dependentProjects;
|
return _webInfClasses;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
|
@ -336,7 +335,7 @@ public class JettyWebAppContext extends WebAppContext
|
||||||
{
|
{
|
||||||
return _isGenerateQuickStart;
|
return _isGenerateQuickStart;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------ */
|
/* ------------------------------------------------------------ */
|
||||||
|
|
|
@ -84,23 +84,6 @@ public class MavenWebInfConfiguration extends WebInfConfiguration
|
||||||
context.setServerClasses( newServerClasses );
|
context.setServerClasses( newServerClasses );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @see org.eclipse.jetty.webapp.WebInfConfiguration#preConfigure(org.eclipse.jetty.webapp.WebAppContext)
|
|
||||||
*/
|
|
||||||
public void preConfigure(WebAppContext context) throws Exception
|
|
||||||
{
|
|
||||||
super.preConfigure(context);
|
|
||||||
((JettyWebAppContext)context).getDependentProjects()
|
|
||||||
.stream().forEach( resource -> context.getMetaData().addWebInfJar( resource ) );
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see org.eclipse.jetty.webapp.AbstractConfiguration#postConfigure(org.eclipse.jetty.webapp.WebAppContext)
|
* @see org.eclipse.jetty.webapp.AbstractConfiguration#postConfigure(org.eclipse.jetty.webapp.WebAppContext)
|
||||||
*/
|
*/
|
||||||
|
@ -197,24 +180,26 @@ public class MavenWebInfConfiguration extends WebInfConfiguration
|
||||||
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);
|
||||||
|
@ -234,25 +219,26 @@ public class MavenWebInfConfiguration extends WebInfConfiguration
|
||||||
@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);
|
||||||
|
|
Loading…
Reference in New Issue