You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2010/01/06 11:39:13 UTC

svn commit: r896373 - /james/mpt/trunk/mavenplugin/src/main/java/org/apache/james/mpt/maven/MailProtocolTestMojo.java

Author: norman
Date: Wed Jan  6 10:39:12 2010
New Revision: 896373

URL: http://svn.apache.org/viewvc?rev=896373&view=rev
Log:
Some pending changes for the maven mpt plugin (MPT-2)

Modified:
    james/mpt/trunk/mavenplugin/src/main/java/org/apache/james/mpt/maven/MailProtocolTestMojo.java

Modified: james/mpt/trunk/mavenplugin/src/main/java/org/apache/james/mpt/maven/MailProtocolTestMojo.java
URL: http://svn.apache.org/viewvc/james/mpt/trunk/mavenplugin/src/main/java/org/apache/james/mpt/maven/MailProtocolTestMojo.java?rev=896373&r1=896372&r2=896373&view=diff
==============================================================================
--- james/mpt/trunk/mavenplugin/src/main/java/org/apache/james/mpt/maven/MailProtocolTestMojo.java (original)
+++ james/mpt/trunk/mavenplugin/src/main/java/org/apache/james/mpt/maven/MailProtocolTestMojo.java Wed Jan  6 10:39:12 2010
@@ -23,7 +23,9 @@
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
+import java.io.Reader;
+import java.io.StringReader;
+import java.util.List;
 
 import org.apache.james.mpt.ExternalHostSystem;
 import org.apache.james.mpt.Monitor;
@@ -35,7 +37,7 @@
 import org.apache.maven.plugin.MojoFailureException;
 
 /**
- * @goal mpt
+ * @goal run
  */
 public class MailProtocolTestMojo extends AbstractMojo implements Monitor{
 
@@ -58,19 +60,36 @@
      * @parameter 
      */
     private String host;
-
+    
     /**
      * @parameter 
      */
-    private String user;
+    private String shabang;
+    
     /**
-     * @parameter 
+     * @parameter
      */
-    private String pass;
+    private AddUser[] addUsers;
+
+
     /**
-     * @parameter 
+     * Gets the host (either name or number) against which this
+     * test will run.
+     * @return host, not null
      */
-    private String shabang;
+    public String getHost() {
+        return host;
+    }
+
+
+    /**
+     * Gets the port against which this test will run.
+     * @return port number
+     */
+    public int getPort() {
+        return port;
+    }
+
     
     /*
      * (non-Javadoc)
@@ -80,16 +99,25 @@
 		validate();
 		
      
-         final Runner runner = new Runner();
-         InputStream inputStream;
+		for (int i = 0; i < addUsers.length; i++) {
+			AddUser addUser = (AddUser) addUsers[i];
+			  try {
+		            
+		            final Reader reader = new StringReader(addUser.getText());
+		            
+		            final ScriptedUserAdder adder = new ScriptedUserAdder(addUser.getHost(), addUser.getPort(), MailProtocolTestMojo.this);
+		            adder.addUser(addUser.getUser(), addUser.getPasswd(), reader);
+		        } catch (Exception e) {
+		            getLog().error("Unable to add user", e);
+		            throw new MojoFailureException("User addition failed: \n" + e.getMessage());
+		        }
+		}
+        final Runner runner = new Runner();
+        InputStream inputStream;
 		try {
 			inputStream = new FileInputStream(scriptFile);
 
-		    final ScriptedUserAdder adder = new ScriptedUserAdder(host, port,this);
-	        
-			if (user != null) adder.addUser(user, pass, new InputStreamReader(inputStream));
-	        
-			final ExternalHostSystem hostSystem = new ExternalHostSystem(host, port, this, shabang, adder);
+			final ExternalHostSystem hostSystem = new ExternalHostSystem(host, port, this, shabang, null);
 		    final ProtocolSessionBuilder builder = new ProtocolSessionBuilder();
 		     
 	        builder.addProtocolLines(scriptFile.getName(), inputStream, runner.getTestElements());
@@ -117,8 +145,25 @@
             throw new MojoFailureException("'scriptFile' not exists");
 		}
 		
+		for (int i = 0; i < addUsers.length; i++) {
+			AddUser addUser = (AddUser)addUsers[i];
+			
+			if (addUser.getText() == null) {
+	            throw new MojoFailureException("AddUser must contain the text of the script");
+	        }
+	        
+	        if (addUser.getPort() <= 0) {
+	            throw new MojoFailureException("'port' attribute must be set on AddUser to the port against which the script should run.");
+	        }
+	        
+	        if (addUser.getHost() == null) {
+	            throw new MojoFailureException("'host' attribute must be set on AddUser to the host against which the script should run.");
+	        }
+		}
+		
 	}
 	
+	
 	/*
 	 * (non-Javadoc)
 	 * @see org.apache.james.mpt.Monitor#debug(char)
@@ -143,4 +188,97 @@
 		getLog().debug(message);
 	}
 	
+ 
+	
+    /**
+     * Adds a user.
+     */
+    public class AddUser {
+        
+        private int port;
+        private String user;
+        private String passwd;
+        private String scriptText;
+        private String host;
+        
+        /**
+         * Gets the host (either name or number) against which this
+         * test will run.
+         * @return host, not null
+         */
+        public String getHost() {
+            return host;
+        }
+
+        public void setHost(String host) {
+        	this.host = host;
+        }
+        
+        /**
+         * Gets the port against which the user addition
+         * script should be executed.
+         * @return port number
+         */
+        public int getPort() {
+            return port;
+        }
+
+        /**
+         * Sets the port against which the user addition
+         * script should be executed.
+         * @param port port number
+         */
+        public void setPort(int port) {
+            this.port = port;
+        }
+
+        /**
+         * Gets the password for the user.
+         * @return password not null
+         */
+        public String getPasswd() {
+            return passwd;
+        }
+
+        /**
+         * Sets the password for the user.
+         * This will be passed in the user creation script.
+         * @param passwd not null
+         */
+        public void setPasswd(String passwd) {
+            this.passwd = passwd;
+        }
+
+        /**
+         * Gets the name of the user to be created.
+         * @return user name, not null
+         */
+        public String getUser() {
+            return user;
+        }
+
+        /**
+         * Sets the name of the user to be created.
+         * @param user not null
+         */
+        public void setUser(String user) {
+            this.user = user;
+        }
+        
+        /**
+         * Sets user addition script.
+         * @param scriptText not null
+         */
+        public void setText(String scriptText) {
+            this.scriptText = scriptText;
+        }
+
+
+        public String getText() {
+            return scriptText;
+        }
+
+        
+    }
+    
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org