Author: solomax
Date: Tue Apr 10 18:05:00 2012
New Revision: 1311892

URL: http://svn.apache.org/viewvc?rev=1311892&view=rev
Log:
OPENMEETINGS-111 command line admin is partially fixed

Added:
    incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
      - copied, changed from r1311794, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/Admin.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmHelpFormatter.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmOption.java
Removed:
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/Admin.java
Modified:
    incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.bat
    incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.sh
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/dao/OmTimeZoneDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.bat
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.bat?rev=1311892&r1=1311891&r2=1311892&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.bat 
(original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.bat Tue Apr 
10 18:05:00 2012
@@ -3,5 +3,5 @@ set RED5_HOME=%~dp0
 
 set 
CLASSPATH=%RED5_HOME%\*;%RED5_HOME%\conf;%RED5_HOME%\lib\*;%RED5_HOME%\webapps\openmeetings\WEB-INF\lib\*;%RED5_HOME%\webapps\openmeetings\WEB-INF;%RED5_HOME%\webapps\openmeetings\WEB-INF\classes
 
-java -cp "%CLASSPATH%" 
-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector 
org.openmeetings.app.Admin %*
+java -cp "%CLASSPATH%" 
-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector 
org.openmeetings.cli.Admin %*
 

Modified: incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.sh
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.sh?rev=1311892&r1=1311891&r2=1311892&view=diff
==============================================================================
--- incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.sh 
(original)
+++ incubator/openmeetings/trunk/singlewebapp/WebContent/red5/admin.sh Tue Apr 
10 18:05:00 2012
@@ -3,5 +3,5 @@ export RED5_HOME=$(cd $(dirname "$0"); p
 
 export 
CLASSPATH=$RED5_HOME/*:$RED5_HOME/conf:$RED5_HOME/lib/*:$RED5_HOME/webapps/openmeetings/WEB-INF/lib/*:$RED5_HOME/webapps/openmeetings/WEB-INF:$RED5_HOME/webapps/openmeetings/WEB-INF/classes
 
-java -cp "$CLASSPATH" 
-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector 
org.openmeetings.app.Admin $*
+java -cp "$CLASSPATH" 
-Dlogback.ContextSelector=org.red5.logging.LoggingContextSelector 
org.openmeetings.cli.Admin $*
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/dao/OmTimeZoneDaoImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/dao/OmTimeZoneDaoImpl.java?rev=1311892&r1=1311891&r2=1311892&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/dao/OmTimeZoneDaoImpl.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/basic/dao/OmTimeZoneDaoImpl.java
 Tue Apr 10 18:05:00 2012
@@ -89,7 +89,7 @@ public class OmTimeZoneDaoImpl {
                        String hql = "select sl from OmTimeZone as sl "
                                        + "WHERE sl.jname LIKE :jname";
                        TypedQuery<OmTimeZone> query = em.createQuery(hql, 
OmTimeZone.class);
-                       query.setParameter("jname", jname);
+                       query.setParameter("jname", "%" + jname + "%");
                        List<OmTimeZone> sList = query.getResultList();
 
                        if (sList.size() > 0) {

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java?rev=1311892&r1=1311891&r2=1311892&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/user/dao/UsersDaoImpl.java
 Tue Apr 10 18:05:00 2012
@@ -139,8 +139,7 @@ public class UsersDaoImpl {
 
        public List<Users> getAllUsers() {
                try {
-
-                       // get all users
+                       // get all non-deleted users
                        CriteriaBuilder cb = em.getCriteriaBuilder();
                        CriteriaQuery<Users> cq = cb.createQuery(Users.class);
                        Root<Users> c = cq.from(Users.class);
@@ -150,7 +149,6 @@ public class UsersDaoImpl {
                        List<Users> ll = q.getResultList();
 
                        return ll;
-
                } catch (Exception ex2) {
                        log.error("[getAllUsers] ", ex2);
                }
@@ -159,20 +157,10 @@ public class UsersDaoImpl {
 
        public List<Users> getAllUsersDeleted() {
                try {
-
-                       // get all users
-                       CriteriaBuilder cb = em.getCriteriaBuilder();
-                       CriteriaQuery<Users> cq = cb.createQuery(Users.class);
-                       Root<Users> c = cq.from(Users.class);
-                       Predicate condition = cb.equal(c.get("deleted"), 
"false");
-                       cq.where(condition);
-                       TypedQuery<Users> q = em.createQuery(cq);
-                       List<Users> ll = q.getResultList();
-
-                       return ll;
-
+                       TypedQuery<Users> q = 
em.createNamedQuery("getAllUsers", Users.class);
+                       return q.getResultList();
                } catch (Exception ex2) {
-                       log.error("[getAllUsers] ", ex2);
+                       log.error("[getAllUsersDeleted] ", ex2);
                }
                return null;
        }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java?rev=1311892&r1=1311891&r2=1311892&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/InstallationConfig.java
 Tue Apr 10 18:05:00 2012
@@ -12,8 +12,8 @@ public class InstallationConfig {
        //email
        public String smtpPort = "25";
        public String smtpServer = "localhost";
-       public String mailAuthName = "xyz";
-       public String mailAuthPass = "qwertz";
+       public String mailAuthName = "";
+       public String mailAuthPass = "";
        public String mailReferer = "[email protected]";
        public String mailUseTls = "0";
        //paths

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java?rev=1311892&r1=1311891&r2=1311892&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/user/Users.java
 Tue Apr 10 18:05:00 2012
@@ -46,7 +46,9 @@ import org.openmeetings.app.persistence.
 
 @Entity
 @NamedQueries({
-    @NamedQuery(name="getUsersByOrganisationId",
+    @NamedQuery(name="getAllUsers",
+               query="SELECT u FROM Users u")
+    , @NamedQuery(name="getUsersByOrganisationId",
        query="SELECT u FROM Users u WHERE u.deleted = 'false' AND 
u.organisation_users.organisation.organisation_id = :organisation_id")
 })
 @Table(name = "users")

Copied: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java 
(from r1311794, 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/Admin.java)
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java?p2=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java&p1=incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/Admin.java&r1=1311794&r2=1311892&rev=1311892&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/Admin.java 
(original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java 
Tue Apr 10 18:05:00 2012
@@ -1,4 +1,4 @@
-package org.openmeetings.app;
+package org.openmeetings.cli;
 
 import java.io.BufferedReader;
 import java.io.File;
@@ -18,15 +18,15 @@ import javax.servlet.ServletContextEvent
 import javax.servlet.ServletException;
 
 import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.OptionBuilder;
 import org.apache.commons.cli.OptionGroup;
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.Parser;
 import org.apache.commons.cli.PosixParser;
+import org.openmeetings.app.data.user.dao.UsersDaoImpl;
 import org.openmeetings.app.installation.ImportInitvalues;
 import org.openmeetings.app.installation.InstallationConfig;
+import org.openmeetings.app.persistence.beans.user.Users;
 import org.openmeetings.servlet.outputhandler.BackupExport;
 import org.openmeetings.servlet.outputhandler.BackupImportController;
 import org.openmeetings.utils.OMContextListener;
@@ -38,28 +38,44 @@ import org.springframework.context.suppo
 public class Admin {
        private static final Logger log = 
Red5LoggerFactory.getLogger(Admin.class);
        private boolean verbose = false;
-       private Options opts = buildOptions();
+       private InstallationConfig cfg = null;
+       private Options opts = null;
 
+       private Admin() {
+               cfg = new InstallationConfig();
+               opts = buildOptions();
+       }
+       
        @SuppressWarnings("static-access")
        private Options buildOptions() {
                Options options = new Options();
                OptionGroup group = new OptionGroup()
-                       
.addOption(OptionBuilder.withLongOpt("install").withDescription("Fill DB table, 
and make OM usable").create('i'))
-                       
.addOption(OptionBuilder.withLongOpt("backup").withDescription("Backups 
OM").create('b'))
-                       
.addOption(OptionBuilder.withLongOpt("restore").withDescription("Restores 
OM").create('r'))
-                       
.addOption(OptionBuilder.withLongOpt("help").withDescription("print this 
message").create('h'));
+                       .addOption(new OmOption("i", "i", "install", false, 
"Fill DB table, and make OM usable"))
+                       .addOption(new OmOption("b", "b", "backup", false, 
"Backups OM"))
+                       .addOption(new OmOption("r", "r", "restore", false, 
"Restores OM"))
+                       .addOption(new OmOption("f", "f", "files", false, "File 
operations - statictics/cleanup"))
+                       .addOption(new OmOption("h", "h", "help", false, 
"prints this message"));
                group.setRequired(true); 
                options.addOptionGroup(group);
-               
options.addOption(OptionBuilder.withLongOpt("verbose").withDescription("verbose 
error messages").create('v'));
-               
options.addOption(OptionBuilder.withLongOpt("file").hasArg().withDescription("file
 used for backup/restore").create('f'));
-               
options.addOption(OptionBuilder.withLongOpt("exclude-files").withDescription("should
 backup exclude files [default: include]").create());
-               //install options
-               options.addOption(OptionBuilder.hasArg().withDescription("Login 
name of the default user, minimum " + 
InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " characters").create("user"));
-               options.addOption(OptionBuilder.hasArg().withDescription("Email 
of the default user").create("email"));
-               options.addOption(OptionBuilder.hasArg().withDescription("The 
name of the default user group").create("group"));
-               
options.addOption(OptionBuilder.hasArg().withDescription("Default server time 
zone, and time zone for the selected user [GMT+10, GMT-2]").create("tz"));
-               
options.addOption(OptionBuilder.withLongOpt("skip-default-rooms").withDescription("Do
 not create default rooms [created by default]").create());
-               
options.addOption(OptionBuilder.withLongOpt("disable-frontend-register").withDescription("Do
 not allow front end register [allowed by default]").create());
+               //general
+               options.addOption(new OmOption(null, "v", "verbose", false, 
"verbose error messages"));
+               //backup/restore
+               options.addOption(new OmOption("b", null, "exclude-files", 
false, "should backup exclude files [default: include]"));
+               options.addOption(new OmOption("b,r", "file", null, true, "file 
used for backup/restore"));
+               //install
+               options.addOption(new OmOption("i", "user", null, true, "Login 
name of the default user, minimum " + 
InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " characters"));
+               options.addOption(new OmOption("i", "pass", null, true, 
"Password of the default user, minimum " + 
InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " characters (will be prompted 
if not set)"));
+               options.addOption(new OmOption("i", "email", null, true, "Email 
of the default user"));
+               options.addOption(new OmOption("i", "group", null, true, "The 
name of the default user group"));
+               options.addOption(new OmOption("i", "tz", null, true, "Default 
server time zone, and time zone for the selected user [for ex: 'GMT+10', '-2', 
'Chicago']"));
+               options.addOption(new OmOption("i", null, 
"system-email-address", true, "System e-mail address [default: " + 
cfg.mailReferer + "]"));
+               options.addOption(new OmOption("i", null, "smtp-server", true, 
"SMTP server for outgoing e-mails [default: " + cfg.smtpServer + "]"));
+               options.addOption(new OmOption("i", null, "smtp-port", true, 
"SMTP server for outgoing e-mails [default: " + cfg.smtpPort + "]"));
+               options.addOption(new OmOption("i", null, "email-auth-user", 
true, "Email auth username (anonymous connection will be used if not set)"));
+               options.addOption(new OmOption("i", null, "email-auth-pass", 
true, "Email auth password (anonymous connection will be used if not set)"));
+               options.addOption(new OmOption("i", null, "email-use-tls", 
false, "Is secure e-mail connection [default: no]"));
+               options.addOption(new OmOption("i", null, "skip-default-rooms", 
false, "Do not create default rooms [created by default]"));
+               options.addOption(new OmOption("i", null, 
"disable-frontend-register", false, "Do not allow front end register [allowed 
by default]"));
                
                return options;
        }
@@ -68,11 +84,12 @@ public class Admin {
                install
                , backup
                , restore
+               , files
                , usage
        }
        
        private void usage() {
-               new HelpFormatter().printHelp("admin [-h|-i|-b|-r] [options]", 
opts);
+               new OmHelpFormatter().printHelp("admin", opts);
        }
        
        private void handleError(String msg, Exception e) {
@@ -225,13 +242,14 @@ public class Admin {
                        cmd = Command.backup;
                } else if (cmdl.hasOption('r')) {
                        cmd = Command.restore;
+               } else if (cmdl.hasOption('f')) {
+                       cmd = Command.files;
                }
 
                String file = cmdl.getOptionValue('f', "");
                switch(cmd) {
                        case install:
                                try {
-                                       InstallationConfig cfg = new 
InstallationConfig();
                                        String login = 
cmdl.getOptionValue("user");
                                        String email = 
cmdl.getOptionValue("email");
                                        String group = 
cmdl.getOptionValue("group");
@@ -242,6 +260,24 @@ public class Admin {
                                        if 
(cmdl.hasOption("disable-frontend-register")) {
                                                cfg.allowFrontendRegister = "0";
                                        }
+                                       if 
(cmdl.hasOption("system-email-address")) {
+                                               cfg.mailReferer = 
cmdl.getOptionValue("system-email-address");
+                                       }
+                                       if (cmdl.hasOption("smtp-server")) {
+                                               cfg.smtpServer = 
cmdl.getOptionValue("smtp-server");
+                                       }
+                                       if (cmdl.hasOption("smtp-port")) {
+                                               cfg.smtpPort = 
cmdl.getOptionValue("smtp-port");
+                                       }
+                                       if (cmdl.hasOption("email-auth-user")) {
+                                               cfg.mailAuthName = 
cmdl.getOptionValue("email-auth-user");
+                                       }
+                                       if (cmdl.hasOption("email-auth-pass")) {
+                                               cfg.mailAuthPass = 
cmdl.getOptionValue("email-auth-pass");
+                                       }
+                                       if (cmdl.hasOption("email-use-tls")) {
+                                               cfg.mailUseTls = "1";
+                                       }
                                        if (login == null || login.length() < 
InstallationConfig.USER_LOGIN_MINIMUM_LENGTH) {
                                                System.out.println("User login 
was not provided, or too short, should be at least " + 
InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " character long.");
                                                System.exit(1);
@@ -250,13 +286,15 @@ public class Admin {
                                                System.out.println("User group 
was not provided, or too short, should be at least 1 character long.");
                                                System.exit(1);
                                        }
-                                       System.out.print("Please enter 
password:");
-                                       String pass = new BufferedReader(new 
InputStreamReader(System.in)).readLine();
+                                       String pass = 
cmdl.getOptionValue("pass");
                                        if (pass == null || pass.length() < 
InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH) {
-                                               System.out.println("Password 
was not provided, or too short, should be at least " + 
InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH + " character long.");
-                                               System.exit(1);
+                                               System.out.print("Please enter 
password:");
+                                               pass = new BufferedReader(new 
InputStreamReader(System.in)).readLine();
+                                               if (pass == null || 
pass.length() < InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH) {
+                                                       
System.out.println("Password was not provided, or too short, should be at least 
" + InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH + " character long.");
+                                                       System.exit(1);
+                                               }
                                        }
-                                       
                                        ImportInitvalues importInit = 
getApplicationContext(ctxName).getBean(ImportInitvalues.class);
                                        importInit.loadAll(new File(omHome, 
ImportInitvalues.languageFolderName).getAbsolutePath()
                                                        , cfg, login, pass, 
email, group, tz);
@@ -297,6 +335,23 @@ public class Admin {
                                        handleError("Restore failed", e);
                                }
                                break;
+                       case files:
+                               try {
+                                       ClassPathXmlApplicationContext ctx = 
getApplicationContext(ctxName);
+                                       //user pictures
+                                       
//dist/red5/webapps/openmeetings/upload/profiles
+                                       UsersDaoImpl udao = 
ctx.getBean(UsersDaoImpl.class);
+                                       for (Users u : 
udao.getAllUsersDeleted()) {
+                                               System.out.println("id == " + 
u.getUser_id() + "; deleted ? " + u.getDeleted() + "; uri -> " + 
u.getPictureuri());
+                                       }
+                                       //public files
+                                       //private files
+                                       //public recordings
+                                       //private recordings
+                               } catch (Exception e) {
+                                       handleError("Files failed", e);
+                               }
+                               break;
                        case usage:
                        default:
                                usage();

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmHelpFormatter.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmHelpFormatter.java?rev=1311892&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmHelpFormatter.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmHelpFormatter.java
 Tue Apr 10 18:05:00 2012
@@ -0,0 +1,62 @@
+package org.openmeetings.cli;
+
+import java.io.PrintWriter;
+import java.util.Collection;
+import java.util.List;
+
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Option;
+import org.apache.commons.cli.OptionGroup;
+import org.apache.commons.cli.Options;
+
+public class OmHelpFormatter extends HelpFormatter {
+
+       @SuppressWarnings("unchecked")
+       private Collection<Option> getReqOptions(Options opts) {
+               //suppose we have only 1 group (for now)
+               OptionGroup g = 
((List<OptionGroup>)opts.getRequiredOptions()).get(0);
+               return g.getOptions();
+       }
+       
+       private String getReqOptionsString(Options opts) {
+               String delim = "";
+               StringBuilder result = new StringBuilder();
+               for (Option o : getReqOptions(opts)) {
+                       result.append(delim).append(o.getOpt());
+                       delim = "|";
+               }
+               return result.toString();
+       }
+       
+       @Override
+       public void printOptions(PrintWriter pw, int width, Options options,
+                       int leftPad, int descPad) {
+               // TODO Auto-generated method stub
+               super.printOptions(pw, width, options, leftPad, descPad);
+       }
+       
+       @Override
+       public void printHelp(PrintWriter pw, int width, String cmdLineSyntax,
+                       String header, Options options, int leftPad, int 
descPad,
+                       String footer, boolean autoUsage) {
+               if ((cmdLineSyntax == null) || (cmdLineSyntax.length() == 0)) {
+                       throw new IllegalArgumentException("cmdLineSyntax not 
provided");
+               }
+
+               printUsage(pw, width, cmdLineSyntax, options);
+
+               if ((header != null) && (header.trim().length() > 0)) {
+                       printWrapped(pw, width, header);
+               }
+
+               printOptions(pw, width, options, leftPad, descPad);
+
+               if ((footer != null) && (footer.trim().length() > 0)) {
+                       printWrapped(pw, width, footer);
+               }
+       }
+    
+       public void printUsage(PrintWriter pw, int width, String app, Options 
opts) {
+               pw.println(String.format("usage: %1$s [%2$s] [options]", app, 
getReqOptionsString(opts)));
+       }
+}

Added: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmOption.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmOption.java?rev=1311892&view=auto
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmOption.java
 (added)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/OmOption.java
 Tue Apr 10 18:05:00 2012
@@ -0,0 +1,31 @@
+package org.openmeetings.cli;
+
+import org.apache.commons.cli.Option;
+
+public class OmOption extends Option {
+       private static final long serialVersionUID = -544426769898915573L;
+       private String group = null;
+       private boolean optional = true;
+
+       public OmOption(String group, String opt, String longOpt, boolean 
hasArg,
+                       String description) throws IllegalArgumentException {
+               super(opt, longOpt, hasArg, description);
+               this.setGroup(group);
+       }
+
+       public String getGroup() {
+               return group;
+       }
+
+       public void setGroup(String group) {
+               this.group = group;
+       }
+
+       public boolean isOptional() {
+               return optional;
+       }
+
+       public void setOptional(boolean optional) {
+               this.optional = optional;
+       }
+}

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java?rev=1311892&r1=1311891&r2=1311892&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/BackupExport.java
 Tue Apr 10 18:05:00 2012
@@ -1527,9 +1527,7 @@ public class BackupExport {
 
                Element users = root.addElement("users");
 
-               for (Iterator<Users> it = uList.iterator(); it.hasNext();) {
-                       Users u = it.next();
-
+               for (Users u : uList) {
                        Element user = users.addElement("user");
 
                        user.addElement("user_id").addCDATA(


Reply via email to