Index: VERSION.txt
===================================================================
--- VERSION.txt	(revision 4234)
+++ VERSION.txt	(working copy)
@@ -9,6 +9,7 @@
  + JETTY-807 HttpTester to handle charsets
  + JETTY-808 cometd client demo run.sh
  + JETTY-809 Need a way to customize WEB-INF/lib file extensions that are added to the classpath
+ + JETTY-811 Allow configuration of system properties for the maven plugin using a file
  + JETTY-814 Add org.mortbay.jetty.client.Address.toString()
  + JETTY-816 Implement reconnect on java bayeux client
  + JETTY-817 Aborted SSL connections may cause jetty to hang with full cpu
Index: modules/maven-plugin/src/main/java/org/mortbay/jetty/plugin/AbstractJettyMojo.java
===================================================================
--- modules/maven-plugin/src/main/java/org/mortbay/jetty/plugin/AbstractJettyMojo.java	(revision 4234)
+++ modules/maven-plugin/src/main/java/org/mortbay/jetty/plugin/AbstractJettyMojo.java	(working copy)
@@ -18,9 +18,12 @@
 
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.util.ArrayList;
+import java.util.Enumeration;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Properties;
 
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
@@ -128,12 +131,23 @@
      */
     protected String reload;
     
-    
     /**
+     * File containing system properties to be set before execution
+     * 
+     * Note that these properties will NOT override System properties
+     * that have been set on the command line, by the JVM, or directly 
+     * in the POM via systemProperties. Optional.
+     * 
+     * @parameter expression="${jetty.systemPropertiesFile}"
+     */
+    protected File systemPropertiesFile;
+
+    /**
      * System properties to set before execution. 
      * Note that these properties will NOT override System properties 
-     * that have been set on the command line or by the JVM. Optional.
-     * @parameter 
+     * that have been set on the command line or by the JVM. They WILL 
+     * override System properties that have been set via systemPropertiesFile.
+     * Optional.
      */
     protected SystemProperties systemProperties;
     
@@ -269,6 +283,53 @@
         return this.scanIntervalSeconds;
     }
 
+    /**
+     * @return returns the path to the systemPropertiesFile
+     */
+    public File getSystemPropertiesFile()
+    {
+        return this.systemPropertiesFile;
+    }
+    
+    public void setSystemPropertiesFile(File file) throws Exception
+    {
+        this.systemPropertiesFile = file;
+        FileInputStream propFile = new FileInputStream(systemPropertiesFile);
+        Properties properties = new Properties();
+        properties.load(propFile);
+        
+        if (this.systemProperties == null )
+            this.systemProperties = new SystemProperties();
+        
+        for (Enumeration keys = properties.keys(); keys.hasMoreElements();  )
+        {
+            String key = (String)keys.nextElement();
+            if ( ! systemProperties.containsSystemProperty(key) )
+            {
+                SystemProperty prop = new SystemProperty();
+                prop.setKey(key);
+                prop.setValue(properties.getProperty(key));
+                
+                this.systemProperties.setSystemProperty(prop);
+            }
+        }
+        
+    }
+    
+    public void setSystemProperties(SystemProperties systemProperties)
+    {
+        if (this.systemProperties == null)
+            this.systemProperties = systemProperties;
+        else
+        {
+            Iterator itor = systemProperties.getSystemProperties().iterator();
+            while (itor.hasNext())
+            {
+                SystemProperty prop = (SystemProperty)itor.next();
+                this.systemProperties.setSystemProperty(prop);
+            }   
+        }
+    }
 
     public File getJettyXmlFile ()
     {
Index: modules/maven-plugin/src/main/java/org/mortbay/jetty/plugin/util/SystemProperties.java
===================================================================
--- modules/maven-plugin/src/main/java/org/mortbay/jetty/plugin/util/SystemProperties.java	(revision 4234)
+++ modules/maven-plugin/src/main/java/org/mortbay/jetty/plugin/util/SystemProperties.java	(working copy)
@@ -49,6 +49,11 @@
         return (SystemProperty)properties.get(name);
     }
     
+    public boolean containsSystemProperty(String name)
+    {
+       return properties.containsKey(name); 
+    }
+    
     public List getSystemProperties ()
     {
         return new ArrayList(properties.values());
