[jboss-svn-commits] JBL Code SVN: r25601 - labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/maven/plugins/jdocbook.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 11 15:30:42 EDT 2009


Author: steve.ebersole at jboss.com
Date: 2009-03-11 15:30:42 -0400 (Wed, 11 Mar 2009)
New Revision: 25601

Modified:
   labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/maven/plugins/jdocbook/AbstractDocBookMojo.java
Log:
MPJDOCBOOK-14 - http proxy support


Modified: labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/maven/plugins/jdocbook/AbstractDocBookMojo.java
===================================================================
--- labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/maven/plugins/jdocbook/AbstractDocBookMojo.java	2009-03-11 18:57:15 UTC (rev 25600)
+++ labs/jbossbuild/maven-plugins/trunk/maven-jdocbook-plugin/src/main/java/org/jboss/maven/plugins/jdocbook/AbstractDocBookMojo.java	2009-03-11 19:30:42 UTC (rev 25601)
@@ -41,6 +41,8 @@
 import org.apache.maven.project.MavenProject;
 import org.apache.maven.project.MavenProjectHelper;
 import org.apache.maven.execution.MavenSession;
+import org.apache.maven.settings.Settings;
+import org.apache.maven.settings.Proxy;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
 import org.jboss.jdocbook.JDocBookProcessException;
 import org.jboss.jdocbook.Log;
@@ -78,6 +80,15 @@
 	protected MavenSession session;
 
 	/**
+	 * INTERNAL : The user settings (used to locate http proxy information).
+	 *
+     * @parameter expression="${settings}"
+     * @required
+     * @readonly
+     */
+    protected Settings settings;
+
+	/**
 	 * INTERNAL : The artifacts associated with the dependencies defined as part
 	 * of the project to which we are being attached.
 	 *
@@ -256,6 +267,54 @@
 	protected void process(FormatPlan[] formatPlans) throws JDocBookProcessException {
 	}
 
+	private void doExecuteWithProxy(Proxy proxy) throws JDocBookProcessException {
+		String originalHost = null;
+		String originalPort = null;
+		String originalUser = null;
+		String originalPswd = null;
+
+		// First set up jvm environemnt with the proxy settings (storing the original values for later)
+		if ( ! empty( proxy.getHost() ) ) {
+			originalHost = System.getProperty( "http.proxyHost" );
+			System.setProperty( "http.proxyHost", proxy.getHost() );
+
+			originalPort = System.getProperty( "http.proxyPort" );
+			System.setProperty( "http.proxyPort", Integer.toString( proxy.getPort() ) );
+		}
+
+		if ( !empty( proxy.getUsername() ) ) {
+			originalUser = System.getProperty( "http.proxyUser" );
+			System.setProperty( "http.proxyUser", proxy.getUsername() );
+		}
+
+		if ( ! empty( proxy.getPassword() ) ) {
+			originalPswd = System.getProperty( "http.proxyPassword" );
+			System.setProperty( "http.proxyPassword", proxy.getPassword() );
+		}
+
+		try {
+			// Do the processing
+			doExecute();
+		}
+		finally {
+			// Restore the original settings
+			if ( ! empty( proxy.getHost() ) ) {
+				System.setProperty( "http.proxyHost", originalHost );
+				System.setProperty( "http.proxyPort", originalPort );
+			}
+			if ( !empty( proxy.getUsername() ) ) {
+				System.setProperty( "http.proxyUser", originalUser );
+			}
+			if ( !empty( proxy.getPassword() ) ) {
+				System.setProperty( "http.proxyPassword", originalPswd );
+			}
+		}
+	}
+
+	private boolean empty(String string) {
+		return string == null || "".equals( string );
+	}
+
 	protected void doExecute() throws JDocBookProcessException {
 		process( determineFormatPlans() );
 	}
@@ -289,7 +348,12 @@
 		}
 
 		try {
-			doExecute();
+			if ( settings.getActiveProxy() != null ) {
+				doExecuteWithProxy( settings.getActiveProxy() );
+			}
+			else {
+				doExecute();
+			}
 		}
 		catch ( XSLTException e ) {
 			throw new MojoExecutionException( "XSLT problem", e );




More information about the jboss-svn-commits mailing list