Author: olamy Date: Mon Oct 17 14:03:22 2011 New Revision: 1185178 URL: http://svn.apache.org/viewvc?rev=1185178&view=rev Log: [MTOMCAT-102] implements extraDependencies to be able to jdbc driver mail etc.. to the root classloader (ie including in the standalone jar)
Modified: tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java Modified: tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java URL: http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java?rev=1185178&r1=1185177&r2=1185178&view=diff ============================================================================== --- tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java (original) +++ tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractExecWarMojo.java Mon Oct 17 14:03:22 2011 @@ -88,11 +88,6 @@ public abstract class AbstractExecWarMoj private List<Artifact> pluginArtifacts; /** - * @parameter - */ - private List<Dependency> extraDependencies; - - /** * @parameter default-value="${project.build.directory}" */ private File buildDirectory; @@ -208,6 +203,13 @@ public abstract class AbstractExecWarMoj * @required */ private String accessLogValveFormat; + + /** + * list of extra dependencies to add in the standalone tomcat jar: your jdbc driver, mail.jar etc.. + * <b>Those dependencies will be in root classloader.</b> + * @parameter + */ + private List<Dependency> extraDependencies; public void execute() throws MojoExecutionException, MojoFailureException @@ -357,6 +359,31 @@ public abstract class AbstractExecWarMoj } } } + + // add extra dependencies + if ( extraDependencies != null && !extraDependencies.isEmpty() ) + { + for ( Dependency dependency : extraDependencies ) + { + // String groupId, String artifactId, String version, String scope, String type + Artifact artifact = + artifactFactory.createArtifact( dependency.getGroupId(), dependency.getArtifactId(), dependency.getVersion(), dependency.getScope(), dependency.getType() ); + + artifactResolver.resolve( artifact, this.remoteRepos , this.local ); + JarFile jarFile = new JarFile( artifact.getFile() ); + Enumeration<JarEntry> jarEntries = jarFile.entries(); + while ( jarEntries.hasMoreElements() ) + { + JarEntry jarEntry = jarEntries.nextElement(); + InputStream jarEntryIs = jarFile.getInputStream(jarEntry); + + os.putArchiveEntry( new JarArchiveEntry( jarEntry.getName() ) ); + IOUtils.copy( jarEntryIs, os ); + os.closeArchiveEntry(); + } + } + } + Manifest manifest = new Manifest( ); Manifest.Attribute mainClassAtt = new Manifest.Attribute( ); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org