Author: olamy
Date: Fri May  4 13:06:23 2012
New Revision: 1333929

URL: http://svn.apache.org/viewvc?rev=1333929&view=rev
Log:
[MTOMCAT-150] expose ports used with tomcat7:run as sys props: feature to dump 
ports in a property file to be able to use later with a forked surefire 
execution

Modified:
    
tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java

Modified: 
tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java
URL: 
http://svn.apache.org/viewvc/tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java?rev=1333929&r1=1333928&r2=1333929&view=diff
==============================================================================
--- 
tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java
 (original)
+++ 
tomcat/maven-plugin/trunk/tomcat7-maven-plugin/src/main/java/org/apache/tomcat/maven/plugin/tomcat7/run/AbstractRunMojo.java
 Fri May  4 13:06:23 2012
@@ -31,6 +31,7 @@ import org.apache.catalina.startup.Catal
 import org.apache.catalina.startup.CatalinaProperties;
 import org.apache.catalina.startup.Tomcat;
 import org.apache.catalina.valves.AccessLogValve;
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter;
@@ -69,6 +70,7 @@ import javax.xml.stream.XMLStreamReader;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -78,6 +80,7 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 
 /**
@@ -382,6 +385,14 @@ public abstract class AbstractRunMojo
      */
     protected MavenSession session;
 
+    /**
+     * Will dump port in a properties file (see ports for property names).
+     * If empty no file generated
+     *
+     * @parameter expression="${maven.tomcat.propertiesPortFilePath}"
+     */
+    protected String propertiesPortFilePath;
+
     // ----------------------------------------------------------------------
     // Fields
     // ----------------------------------------------------------------------
@@ -952,6 +963,10 @@ public abstract class AbstractRunMojo
 
                 embeddedTomcat.start();
 
+                Properties portProperties = new Properties();
+
+                portProperties.put( "tomcat.maven.http.port", 
Integer.toString( connector.getLocalPort() ) );
+
                 session.getExecutionProperties().put( "tomcat.maven.http.port",
                                                       Integer.toString( 
connector.getLocalPort() ) );
                 System.setProperty( "tomcat.maven.http.port", 
Integer.toString( connector.getLocalPort() ) );
@@ -960,6 +975,7 @@ public abstract class AbstractRunMojo
                 {
                     session.getExecutionProperties().put( 
"tomcat.maven.https.port",
                                                           Integer.toString( 
httpsConnector.getLocalPort() ) );
+                    portProperties.put( "tomcat.maven.https.port", 
Integer.toString( connector.getLocalPort() ) );
                     System.setProperty( "tomcat.maven.https.port", 
Integer.toString( httpsConnector.getLocalPort() ) );
                 }
 
@@ -967,8 +983,26 @@ public abstract class AbstractRunMojo
                 {
                     session.getExecutionProperties().put( 
"tomcat.maven.ajp.port",
                                                           Integer.toString( 
ajpConnector.getLocalPort() ) );
+                    portProperties.put( "tomcat.maven.ajp.port", 
Integer.toString( ajpConnector.getLocalPort() ) );
                     System.setProperty( "tomcat.maven.ajp.port", 
Integer.toString( ajpConnector.getLocalPort() ) );
                 }
+                if ( propertiesPortFilePath != null )
+                {
+                    File propertiesPortsFile = new File( 
propertiesPortFilePath );
+                    if ( propertiesPortsFile.exists() )
+                    {
+                        propertiesPortsFile.delete();
+                    }
+                    FileOutputStream fileOutputStream = new FileOutputStream( 
propertiesPortsFile );
+                    try
+                    {
+                        portProperties.store( fileOutputStream, "Apache Tomcat 
Maven plugin port used" );
+                    }
+                    finally
+                    {
+                        IOUtils.closeQuietly( fileOutputStream );
+                    }
+                }
 
                 EmbeddedRegistry.getInstance().register( embeddedTomcat );
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to