Hello Sebastian,

jname was selected since our API (OmTimeZoneDaoImpl) can only get timezone
by ID or jname.
Additionally while adding initial admin user we need to have jname
(Usermanagement.addUser:1060  requires jName_timezone).

In fact there are no duplicate output in admin:
Etc/GMT+1
Etc/GMT+1 (North Africa)

so user should enter "Etc/GMT+1" or "Etc/GMT+1 (North Africa)".

I can change admin to expect timezone as iCal, but in such case we need to
agree what will be the form of user hint.

I mean:
I leave in Russia/Novosibirsk, I know my timezone is Novosibirsk (GMT+7).
Currently I can see my timezone in the available timezone list (Etc/GMT+7 )
but if available timezone list will be "Asia/Jakarta" it might confusing.

I guess timezone hint should looks like follows

Please enter
"Asia/Jakarta"                 for Novosibirsk, Indochina Time, Thailand,
Vietnam, Jakarta (Etc/GMT+7)
"Australia/Queensland"  for Russia (Zabaykalsky Krai), Papua New Guinea,
Australia (Queensland) Etc/GMT+10
........................................

what do you think?

On Wed, Apr 25, 2012 at 19:13, [email protected]
<[email protected]>wrote:

> Hi Maxim,
>
> I don't think this will work.
> I thought you would use the field "ical" for matching the given
> timezone to the user input?
>
> I was not able to use the CLI installer to accept any of my input,
> neither "Berlin", nor "Europe/Berlin".
> What should be the input that I have to give
>
> Also as error / options you list then all available timezone name's as
> options. There are two times the name GMT+1, so how should the user
> understand what is the different between GMT+1 and GMT+1 ?
>
>
> Sebastian
>
>
> 2012/4/25  <[email protected]>:
> > Author: solomax
> > Date: Wed Apr 25 10:35:08 2012
> > New Revision: 1330188
> >
> > URL: http://svn.apache.org/viewvc?rev=1330188&view=rev
> > Log:
> > OPENMEETINGS-111 tz issues was fixed; options to install OM from backup
> provided is added.
> >
> > Modified:
> >
>  
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
> >
>  incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
> >
>  
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java
> >
>  
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java
> >
> > Modified:
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
> > URL:
> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java?rev=1330188&r1=1330187&r2=1330188&view=diff
> >
> ==============================================================================
> > ---
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
> (original)
> > +++
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
> Wed Apr 25 10:35:08 2012
> > @@ -768,8 +768,7 @@ public class ImportInitvalues {
> >                List<OmTimeZone> omTimeZones = new
> LinkedList<OmTimeZone>();
> >
> >                SAXReader reader = new SAXReader();
> > -               Document document = reader.read(filePath
> > -                               + ImportInitvalues.nameOfTimeZoneFile);
> > +               Document document = reader.read(new File(filePath,
> ImportInitvalues.nameOfTimeZoneFile));
> >
> >                Element root = document.getRootElement();
> >
> > @@ -960,8 +959,7 @@ public class ImportInitvalues {
> >        }
> >        //
> ------------------------------------------------------------------------------
> >
> > -       public void loadAll(String filePath, InstallationConfig cfg,
> String username,
> > -                       String userpass, String useremail, String
> groupame, String timeZone) throws Exception {
> > +       public void loadSystem(String filePath, InstallationConfig cfg)
> throws Exception {
> >                loadMainMenu();
> >                loadErrorMappingsFromXML(filePath);
> >                loadInitLanguages(filePath);
> > @@ -974,7 +972,12 @@ public class ImportInitvalues {
> >                loadPollTypes();
> >
> >                loadConfiguration(cfg);
> > +       }
> > +
> > +       public void loadAll(String filePath, InstallationConfig cfg,
> String username,
> > +                       String userpass, String useremail, String
> groupame, String timeZone) throws Exception {
> >
> > +               loadSystem(filePath, cfg);
> >                loadInitUserAndOrganisation(username,
> >                                userpass, useremail, groupame, timeZone,
> cfg.defaultLangId);
> >
> >
> > Modified:
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
> > URL:
> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java?rev=1330188&r1=1330187&r2=1330188&view=diff
> >
> ==============================================================================
> > ---
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
> (original)
> > +++
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/cli/Admin.java
> Wed Apr 25 10:35:08 2012
> > @@ -9,6 +9,7 @@ import java.net.MalformedURLException;
> >  import java.net.URL;
> >  import java.util.Date;
> >  import java.util.Enumeration;
> > +import java.util.Map;
> >  import java.util.Set;
> >
> >  import javax.mail.internet.AddressException;
> > @@ -27,15 +28,14 @@ import org.apache.commons.cli.Parser;
> >  import org.apache.commons.cli.PosixParser;
> >  import org.apache.openjpa.jdbc.meta.MappingTool;
> >  import org.openmeetings.app.OpenmeetingsVariables;
> > -import org.openmeetings.app.data.basic.dao.OmTimeZoneDaoImpl;
> >  import org.openmeetings.app.data.file.FileUtils;
> >  import org.openmeetings.app.documents.InstallationDocumentHandler;
> >  import org.openmeetings.app.installation.ImportInitvalues;
> >  import org.openmeetings.app.installation.InstallationConfig;
> > -import org.openmeetings.app.persistence.beans.basic.OmTimeZone;
> >  import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
> >  import org.openmeetings.servlet.outputhandler.BackupExport;
> >  import org.openmeetings.servlet.outputhandler.BackupImportController;
> > +import org.openmeetings.utils.ImportHelper;
> >  import org.openmeetings.utils.OMContextListener;
> >  import org.openmeetings.utils.mail.MailUtil;
> >  import org.openmeetings.utils.math.CalendarPatterns;
> > @@ -49,6 +49,8 @@ public class Admin {
> >        private boolean verbose = false;
> >        private InstallationConfig cfg = null;
> >        private Options opts = null;
> > +       private CommandLine cmdl = null;
> > +       File omHome = null;
> >
> >        private Admin() {
> >                cfg = new InstallationConfig();
> > @@ -69,12 +71,12 @@ public class Admin {
> >                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]",
> true));
> > -               options.addOption(new OmOption("b,r", "file", null,
> true, "file used for backup/restore", "b"));
> > +               options.addOption(new OmOption("b,r,i", "file", null,
> true, "file used for backup/restore/install", "b"));
> >                //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", "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", "user", null, true,
> "Login name of the default user, minimum " +
> InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " characters (mutually
> exclusive with 'file')"));
> > +               options.addOption(new OmOption("i", "email", null, true,
> "Email of the default user (mutually exclusive with 'file')"));
> > +               options.addOption(new OmOption("i", "group", null, true,
> "The name of the default user group (mutually exclusive with 'file')"));
> > +               options.addOption(new OmOption("i", "tz", null, true,
> "Default server time zone, and time zone for the selected user (mutually
> exclusive with 'file')"));
> >                options.addOption(new OmOption("i", null, "password",
> true, "Password of the default user, minimum " +
> InstallationConfig.USER_LOGIN_MINIMUM_LENGTH + " characters (will be
> prompted if not set)", true));
> >                options.addOption(new OmOption("i", null,
> "system-email-address", true, "System e-mail address [default: " +
> cfg.mailReferer + "]", true));
> >                options.addOption(new OmOption("i", null, "smtp-server",
> true, "SMTP server for outgoing e-mails [default: " + cfg.smtpServer + "]",
> true));
> > @@ -242,11 +244,10 @@ public class Admin {
> >        private void process(String[] args) {
> >                String ctxName = System.getProperty("context",
> "openmeetings");
> >                File home = new File(System.getenv("RED5_HOME"));
> > -               File omHome = new File(new File(home, "webapps"),
> ctxName);
> > +               omHome = new File(new File(home, "webapps"), ctxName);
> >                File omUploadTemp = new File(omHome,
> OpenmeetingsVariables.UPLOAD_TEMP_DIR);
> >
> >                Parser parser = new PosixParser();
> > -               CommandLine cmdl = null;
> >                try {
> >                        cmdl = parser.parse(opts, args);
> >                } catch (ParseException e) {
> > @@ -271,9 +272,10 @@ public class Admin {
> >                switch(cmd) {
> >                        case install:
> >                                try {
> > -                                       String login =
> cmdl.getOptionValue("user");
> > -                                       String email =
> cmdl.getOptionValue("email");
> > -                                       String group =
> cmdl.getOptionValue("group");
> > +                                       if (cmdl.hasOption("file") &&
> (cmdl.hasOption("user") || cmdl.hasOption("email") ||
> cmdl.hasOption("group"))) {
> > +
> System.out.println("Please specify even 'file' option or 'admin user'.");
> > +                                               System.exit(1);
> > +                                       }
> >                                        //TODO commented for now, since
> not in use boolean force = cmdl.hasOption("force");
> >                                        if
> (cmdl.hasOption("skip-default-rooms")) {
> >                                                cfg.createDefaultRooms =
> "0";
> > @@ -299,33 +301,7 @@ public class Admin {
> >                                        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);
> > -                                       }
> > -
> > -                                       try {
> > -                                               if
> (!MailUtil.matches(email)) {
> > -                                                   throw new
> AddressException("Invalid address");
> > -                                               }
> > -                                               new
> InternetAddress(email, true);
> > -                                       } catch (AddressException ae) {
> > -
> System.out.println("Please provide non-empty valid email: '" + email + "'
> is not valid.");
> > -                                               System.exit(1);
> > -                                       }
> > -                                       if (group == null ||
> login.length() < 1) {
> > -                                               System.out.println("User
> group was not provided, or too short, should be at least 1 character
> long.");
> > -                                               System.exit(1);
> > -                                       }
> > -                                       String pass =
> cmdl.getOptionValue("password");
> > -                                       if (pass == null ||
> pass.length() < InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH) {
> > -                                               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);
> > -                                               }
> > -                                       }
> > +                                       String langPath = new
> File(omHome, ImportInitvalues.languageFolderName).getAbsolutePath();
> //FIXME need to be moved to helper
> >                                        ConnectionProperties
> connectionProperties = new ConnectionProperties();
> >                                        if (cmdl.hasOption("db-type") ||
> cmdl.hasOption("db-host") || cmdl.hasOption("db-port") ||
> cmdl.hasOption("db-name") || cmdl.hasOption("db-user") ||
> cmdl.hasOption("db-pass")) {
> >                                                String dbType =
> cmdl.getOptionValue("db-type", "derby");
> > @@ -342,30 +318,18 @@ public class Admin {
> >                                                                ,
> connectionProperties
> >                                                                );
> >                                        }
> > -
> > -                                       if(cmdl.hasOption("drop")) {
> > -                                               String[] mappingToolArgs
> = {"-sa", "drop", "-p", omHome.getPath() +
> "/WEB-INF/classes/META-INF/persistence.xml",
> > -
> "-connectionDriverName", connectionProperties.getDriverName(),
> "-connectionURL", connectionProperties.getConnectionURL(),
> > -
> "-connectionUserName", connectionProperties.getConnectionLogin(),
> "-connectionPassword", connectionProperties.getConnectionPass()};
> > -
> MappingTool.main(mappingToolArgs);
> > -                                       }
> > -
> >                                        ClassPathXmlApplicationContext
> ctx = getApplicationContext(ctxName);
> > -                                       OmTimeZoneDaoImpl tzDao =
>  ctx.getBean(OmTimeZoneDaoImpl.class);
> > -                                       String tz = null;
> > -                                       if (cmdl.hasOption("tz")) {
> > -                                               tz =
> cmdl.getOptionValue("tz");
> > -                                               tz =
> tzDao.getOmTimeZone(tz) == null ? null : tz;
> > -                                       }
> > -                                       if (tz == null) {
> > -
> System.out.println("Please enter timezone, Possible timezones are:");
> > -                                               for (OmTimeZone omTz :
> tzDao.getOmTimeZones()) {
> > -
> System.out.println(omTz.getJname());
> > -                                               }
> > -                                               System.exit(1);
> > -                                       }
> >                                        ImportInitvalues importInit =
> ctx.getBean(ImportInitvalues.class);
> > -                                       importInit.loadAll(new
> File(omHome, ImportInitvalues.languageFolderName).getAbsolutePath(), cfg,
> login, pass, email, group, tz);
> > +                                       if (cmdl.hasOption("file")) {
> > +                                               File backup =
> checkRestoreFile(file);
> > +
> dropDB(connectionProperties);
> > +
> importInit.loadSystem(langPath, cfg);
> > +                                               restoreOm(ctxName,
> backup);
> > +                                       } else {
> > +                                               AdminUserDetails admin =
> checkAdminDetails(importInit, langPath);
> > +
> dropDB(connectionProperties);
> > +
> importInit.loadAll(langPath, cfg, admin.login, admin.pass, admin.email,
> admin.group, admin.tz);
> > +                                       }
> >
> >                                        File installerFile = new File(new
> File(home, ScopeApplicationAdapter.configDirName),
> InstallationDocumentHandler.installFileName);
> >
>  
> InstallationDocumentHandler.getInstance().createDocument(installerFile.getAbsolutePath(),
> 1);
> > @@ -392,19 +356,7 @@ public class Admin {
> >                                }
> >                                break;
> >                        case restore:
> > -                               try {
> > -                                       File backup = new File(file);
> > -                                       if (!cmdl.hasOption("file") ||
> !backup.exists() || !backup.isFile()) {
> > -                                               System.out.println("File
> should be specified, and point the existent zip file");
> > -                                               usage();
> > -                                               System.exit(1);
> > -                                       }
> > -
> > -                                       BackupImportController
> importCtrl =
> getApplicationContext(ctxName).getBean(BackupImportController.class);
> > -                                       importCtrl.performImport(new
> FileInputStream(backup), omHome.getAbsolutePath());
> > -                               } catch (Exception e) {
> > -                                       handleError("Restore failed", e);
> > -                               }
> > +                               restoreOm(ctxName,
> checkRestoreFile(file));
> >                                break;
> >                        case files:
> >                                try {
> > @@ -451,6 +403,95 @@ public class Admin {
> >                System.exit(0);
> >        }
> >
> > +       private class AdminUserDetails {
> > +               String login = null;
> > +               String email = null;
> > +               String group = null;
> > +               String pass = null;
> > +               String tz = null;
> > +       }
> > +
> > +       private AdminUserDetails checkAdminDetails(ImportInitvalues
> importInit, String langPath) throws Exception {
> > +               AdminUserDetails admin = new AdminUserDetails();
> > +               admin.login = cmdl.getOptionValue("user");
> > +               admin.email = cmdl.getOptionValue("email");
> > +               admin.group = cmdl.getOptionValue("group");
> > +               if (admin.login == null || admin.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);
> > +               }
> > +
> > +               try {
> > +                       if (!MailUtil.matches(admin.email)) {
> > +                           throw new AddressException("Invalid
> address");
> > +                       }
> > +                       new InternetAddress(admin.email, true);
> > +               } catch (AddressException ae) {
> > +                       System.out.println("Please provide non-empty
> valid email: '" + admin.email + "' is not valid.");
> > +                       System.exit(1);
> > +               }
> > +               if (admin.group == null || admin.group.length() < 1) {
> > +                       System.out.println("User group was not provided,
> or too short, should be at least 1 character long: " + admin.group);
> > +                       System.exit(1);
> > +               }
> > +               admin.pass = cmdl.getOptionValue("password");
> > +               if (checkPassword(admin.pass)) {
> > +                       System.out.print("Please enter password:");
> > +                       admin.pass = new BufferedReader(new
> InputStreamReader(System.in)).readLine();
> > +                       if (checkPassword(admin.pass)) {
> > +                               System.out.println("Password was not
> provided, or too short, should be at least " +
> InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH + " character long.");
> > +                               System.exit(1);
> > +                       }
> > +               }
> > +               Map<String, String> tzMap =
> ImportHelper.getAllTimeZones(importInit.getTimeZones(langPath));
> > +               admin.tz = null;
> > +               if (cmdl.hasOption("tz")) {
> > +                       admin.tz = cmdl.getOptionValue("tz");
> > +                       admin.tz = tzMap.containsKey(admin.tz) ?
> admin.tz : null;
> > +               }
> > +               if (admin.tz == null) {
> > +                       System.out.println("Please enter timezone,
> Possible timezones are:");
> > +                       for (String tzJname : tzMap.keySet()) {
> > +                               System.out.println(tzJname);
> > +                       }
> > +                       System.exit(1);
> > +               }
> > +               return admin;
> > +       }
> > +
> > +       private boolean checkPassword(String pass) {
> > +               return (pass == null || pass.length() <
> InstallationConfig.USER_PASSWORD_MINIMUM_LENGTH);
> > +       }
> > +
> > +       private void dropDB(ConnectionProperties props) throws Exception
> {
> > +               if(cmdl.hasOption("drop")) {
> > +                       String[] mappingToolArgs = {"-sa", "drop", "-p",
> omHome.getAbsolutePath() + "/WEB-INF/classes/META-INF/persistence.xml",
> > +                                       "-connectionDriverName",
> props.getDriverName(), "-connectionURL", props.getConnectionURL(),
> > +                                       "-connectionUserName",
> props.getConnectionLogin(), "-connectionPassword",
> props.getConnectionPass()};
> > +                       MappingTool.main(mappingToolArgs);
> > +               }
> > +       }
> > +
> > +       private File checkRestoreFile(String file) {
> > +               File backup = new File(file);
> > +               if (!cmdl.hasOption("file") || !backup.exists() ||
> !backup.isFile()) {
> > +                       System.out.println("File should be specified,
> and point the existent zip file");
> > +                       usage();
> > +                       System.exit(1);
> > +               }
> > +
> > +               return backup;
> > +       }
> > +
> > +       private void restoreOm(String ctxName, File backup) {
> > +               try {
> > +                       BackupImportController importCtrl =
> getApplicationContext(ctxName).getBean(BackupImportController.class);
> > +                       importCtrl.performImport(new
> FileInputStream(backup), omHome.getAbsolutePath());
> > +               } catch (Exception e) {
> > +                       handleError("Restore failed", e);
> > +               }
> > +       }
> > +
> >        public static void main(String[] args) {
> >                new Admin().process(args);
> >        }
> >
> > Modified:
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java
> > URL:
> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java?rev=1330188&r1=1330187&r2=1330188&view=diff
> >
> ==============================================================================
> > ---
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java
> (original)
> > +++
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/servlet/outputhandler/Install.java
> Wed Apr 25 10:35:08 2012
> > @@ -38,6 +38,7 @@ import org.openmeetings.app.installation
> >  import org.openmeetings.app.installation.InstallationConfig;
> >  import org.openmeetings.app.persistence.beans.basic.OmTimeZone;
> >  import org.openmeetings.app.remote.red5.ScopeApplicationAdapter;
> > +import org.openmeetings.utils.ImportHelper;
> >  import org.red5.logging.Red5LoggerFactory;
> >  import org.slf4j.Logger;
> >  import org.springframework.context.ApplicationContext;
> > @@ -117,22 +118,14 @@ public class Install extends VelocityVie
> >                allFonts.put("Verdana", "Verdana");
> >                allFonts.put("Arial", "Arial");
> >
> > -               LinkedHashMap<String, String> allTimeZones = new
> LinkedHashMap<String, String>();
> >                List<OmTimeZone> omTimeZoneList = getImportInitvalues()
> >                                .getTimeZones(filePath);
> > -               log.debug("omTimeZoneList :: " + omTimeZoneList.size());
> > -               for (OmTimeZone omTimeZone : omTimeZoneList) {
> > -                       String labelName = omTimeZone.getJname() + " ("
> > -                                       + omTimeZone.getLabel() + ")";
> > -                       log.debug("labelName :: " + labelName);
> > -                       allTimeZones.put(omTimeZone.getJname(),
> labelName);
> > -               }
> >
> >                Template tpl = super.getTemplate("install_step1_"
> >                                + lang + ".vm");
> >                ctx.put("allLanguages", allLanguages);
> >                ctx.put("allFonts", allFonts);
> > -               ctx.put("allTimeZones", allTimeZones);
> > +               ctx.put("allTimeZones",
> ImportHelper.getAllTimeZones(omTimeZoneList));
> >                StringWriter writer = new StringWriter();
> >                tpl.merge(ctx, writer);
> >
> >
> > Modified:
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java
> > URL:
> http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java?rev=1330188&r1=1330187&r2=1330188&view=diff
> >
> ==============================================================================
> > ---
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java
> (original)
> > +++
> incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/ImportHelper.java
> Wed Apr 25 10:35:08 2012
> > @@ -18,9 +18,13 @@
> >  */
> >  package org.openmeetings.utils;
> >
> > +import java.util.LinkedHashMap;
> > +import java.util.List;
> > +import java.util.Map;
> > +
> >  import org.openmeetings.app.OpenmeetingsVariables;
> >  import org.openmeetings.app.data.basic.Configurationmanagement;
> > -import org.openmeetings.app.persistence.beans.basic.Configuration;
> > +import org.openmeetings.app.persistence.beans.basic.OmTimeZone;
> >  import org.red5.logging.Red5LoggerFactory;
> >  import org.slf4j.Logger;
> >
> > @@ -31,22 +35,27 @@ public class ImportHelper {
> >
> >        public static final int getMaxUploadSize(
> >                        Configurationmanagement cfgManagement) {
> > -               return getMaxUploadSize(cfgManagement, 3L);
> > -       }
> > -
> > -       public static final int getMaxUploadSize(
> > -                       Configurationmanagement cfgManagement, Long
> userLevel) {
> > -               Configuration cfg = cfgManagement.getConfKey(userLevel,
> > -                               "DEFAULT_MAX_UPLOAD_SIZE");
> >                int result = DEFAULT_MAX_UPLOAD_SIZE;
> > -               if (cfg != null) {
> > -                       String val = cfg.getConf_value();
> > -                       try {
> > -                               result = (int)
> Math.min(Long.parseLong(val), Integer.MAX_VALUE);
> > -                       } catch (Exception e) {
> > -                               log.error("Invalid value saved for
> maxUploadSize: " + val, e);
> > -                       }
> > +               String maxSize =
> cfgManagement.getConfValue("DEFAULT_MAX_UPLOAD_SIZE", String.class, "" +
> result);
> > +               try {
> > +                       result = (int) Math.min(Long.parseLong(maxSize),
> Integer.MAX_VALUE);
> > +               } catch (Exception e) {
> > +                       log.error("Invalid value saved for
> maxUploadSize: " + maxSize, e);
> > +               }
> > +               return result;
> > +       }
> > +
> > +       public static Map<String, String>
> getAllTimeZones(List<OmTimeZone> tzList) {
> > +               Map<String, String> result = new LinkedHashMap<String,
> String>();
> > +
> > +               log.debug("omTimeZoneList :: " + tzList.size());
> > +               for (OmTimeZone omTimeZone : tzList) {
> > +                       String labelName = omTimeZone.getJname() + " ("
> > +                                       + omTimeZone.getLabel() + ")";
> > +                       log.debug("labelName :: " + labelName);
> > +                       result.put(omTimeZone.getJname(), labelName);
> >                }
> > +
> >                return result;
> >        }
> >  }
> >
> >
>
>
>
> --
> Sebastian Wagner
> https://twitter.com/#!/dead_lock
> http://www.openmeetings.de
> http://www.webbase-design.de
> http://www.wagner-sebastian.com
> [email protected]
>



-- 
WBR
Maxim aka solomax

Reply via email to