You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2016/04/04 07:45:46 UTC

svn commit: r1737626 [1/2] - in /openmeetings/application: branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/ branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/ branches/3.1.x/openmeetings...

Author: solomax
Date: Mon Apr  4 05:45:45 2016
New Revision: 1737626

URL: http://svn.apache.org/viewvc?rev=1737626&view=rev
Log:
[OPENMEETINGS-1349] state object is removed, ISO2 country is used instead

Added:
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/apache/
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/apache/openmeetings/
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java
    openmeetings/application/trunk/openmeetings-install/src/main/resources/
    openmeetings/application/trunk/openmeetings-install/src/main/resources/org/
    openmeetings/application/trunk/openmeetings-install/src/main/resources/org/apache/
    openmeetings/application/trunk/openmeetings-install/src/main/resources/org/apache/openmeetings/
    openmeetings/application/trunk/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/
    openmeetings/application/trunk/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java
Removed:
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/StateDao.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/State.java
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/StateConverter.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/languages/countries.xml
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/languages/countries.xsd
    openmeetings/application/branches/3.1.x/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestStateToLower.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/StateDao.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/State.java
    openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/StateConverter.java
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/languages/countries.xml
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/languages/countries.xsd
    openmeetings/application/trunk/openmeetings-web/src/test/java/org/apache/openmeetings/test/user/TestStateToLower.java
Modified:
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
    openmeetings/application/branches/3.1.x/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
    openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
    openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
    openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java
    openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
    openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
    openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
    openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
    openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
    openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
    openmeetings/application/trunk/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
    openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
    openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
    openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
    openmeetings/application/trunk/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
    openmeetings/application/trunk/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java
    openmeetings/application/trunk/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
    openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
    openmeetings/application/trunk/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
    openmeetings/application/trunk/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
    openmeetings/application/trunk/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
    openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java Mon Apr  4 05:45:45 2016
@@ -51,7 +51,6 @@ import org.apache.directory.ldap.client.
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.user.Address;
@@ -127,8 +126,6 @@ public class LdapLoginManagement {
 	@Autowired
 	private ConfigurationDao cfgDao;
 	@Autowired
-	private StateDao stateDao;
-	@Autowired
 	private LdapConfigDao ldapConfigDao;
 	@Autowired
 	private UserDao userDao;
@@ -350,7 +347,7 @@ public class LdapLoginManagement {
 			u.getAddress().setAdditionalname(getAttr(config, entry, CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME, LDAP_KEY_ADDITIONAL_NAME));
 			u.getAddress().setFax(getAttr(config, entry, CONFIGKEY_LDAP_KEY_FAX, LDAP_KEY_FAX));
 			u.getAddress().setZip(getAttr(config, entry, CONFIGKEY_LDAP_KEY_ZIP, LDAP_KEY_ZIP));
-			u.getAddress().setState(stateDao.get(getAttr(config, entry, CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY)));
+			u.getAddress().setCountry(getAttr(config, entry, CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY));
 			u.getAddress().setTown(getAttr(config, entry, CONFIGKEY_LDAP_KEY_TOWN, LDAP_KEY_TOWN));
 			u.getAddress().setPhone(getAttr(config, entry, CONFIGKEY_LDAP_KEY_PHONE, LDAP_KEY_PHONE));
 			String tz = getAttr(config, entry, LdapOptions.CONFIGKEY_LDAP_TIMEZONE_NAME, LDAP_KEY_TIMEZONE);

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java Mon Apr  4 05:45:45 2016
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.ut
 
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 import java.util.Set;
 
 import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
@@ -385,7 +386,7 @@ public class MainService implements IPen
 						if (user == null) {
 							String iCalTz = configurationDao.getConfValue("default.timezone", String.class, "");
 
-							Address a = userDao.getAddress(null, null, null, 1L, null, null, null, userObject.getEmail());
+							Address a = userDao.getAddress(null, null, null, Locale.getDefault().getCountry(), null, null, null, userObject.getEmail());
 
 							Set<Right> rights = UserDao.getDefaultRights();
 							rights.remove(Right.Login);

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MobileService.java Mon Apr  4 05:45:45 2016
@@ -30,6 +30,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.TimeZone;
 
@@ -41,14 +42,12 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.room.Room;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.GroupUser;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.util.CalendarPatterns;
 import org.apache.openmeetings.util.OmException;
@@ -68,8 +67,6 @@ public class MobileService {
 	@Autowired
 	private UserDao userDao;
 	@Autowired
-	private StateDao stateDao;
-	@Autowired
 	private IUserManager userManager;
 	@Autowired
 	private SessiondataDao sessionDao;
@@ -94,10 +91,10 @@ public class MobileService {
 		return result;
 	}
 	
-	public Map<Long, String> getStates() {
-		Map<Long, String> result = new Hashtable<>();
-		for (State s : stateDao.get()) {
-			result.put(s.getId(), s.getName());
+	public Map<String, String> getStates() {
+		Map<String, String> result = new Hashtable<>();
+		for (String code : Locale.getISOCountries()) {
+			result.put(code, new Locale.Builder().setRegion(code).build().getDisplayCountry());
 		}
 		return result;
 	}
@@ -135,7 +132,7 @@ public class MobileService {
 				}
 				String password = umap.get("password");
 				String tzId = umap.get("tzId");
-				Long stateId = Long.valueOf(umap.get("stateId"));
+				String country = umap.get("stateId");
 				Long langId = Long.valueOf(umap.get("langId"));
 				
 				//FIXME TODO unify with Register dialog
@@ -147,7 +144,7 @@ public class MobileService {
 						&& 1 == cfgDao.getConfValue("sendEmailWithVerficationCode", Integer.class, "0");
 				Long userId = userManager.registerUserInit(UserDao.getDefaultRights(), login, password, lastname
 						, firstname, email, null /* age/birthday */, "" /* street */
-						, "" /* additionalname */, "" /* fax */, "" /* zip */, stateId
+						, "" /* additionalname */, "" /* fax */, "" /* zip */, country
 						, "" /* town */, langId, true /* sendWelcomeMessage */
 						, Arrays.asList(cfgDao.getConfValue(CONFIG_DEFAULT_GROUP_ID, Long.class, null)),
 						"" /* phone */, false, sendConfirmation, TimeZone.getTimeZone(tzId),

Modified: openmeetings/application/branches/3.1.x/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-core/src/test/java/org/apache/openmeetings/test/asf/AsfCopyRightReplace.java Mon Apr  4 05:45:45 2016
@@ -100,6 +100,7 @@ public class AsfCopyRightReplace {
 	private void scanFolder(File folder) {
 
 		for (File javaFile : folder.listFiles(new FilenameFilter() {
+			@Override
 			public boolean accept(File b, String name) {
 				return name.endsWith(".java") || name.endsWith(".vm");
 			}
@@ -108,6 +109,7 @@ public class AsfCopyRightReplace {
 		}
 
 		for (File javaFile : folder.listFiles(new FilenameFilter() {
+			@Override
 			public boolean accept(File b, String name) {
 				return name.endsWith(".xml") || name.endsWith(".lzx");
 			}
@@ -116,6 +118,7 @@ public class AsfCopyRightReplace {
 		}
 
 		for (File folderFile : folder.listFiles(new FilenameFilter() {
+			@Override
 			public boolean accept(File b, String name) {
 				File f = new File(b, name);
 				return f.isDirectory();
@@ -126,15 +129,12 @@ public class AsfCopyRightReplace {
 	}
 
 	private void scanAndWriteXMLFile(File javaFile) {
-		try {
-			System.out.println("Processing " + javaFile.getCanonicalPath());
-
-			BufferedReader is = new BufferedReader(new InputStreamReader(
-					new FileInputStream(javaFile), StandardCharsets.UTF_8));
+		StringWriter strWriter = new StringWriter();
+		try (BufferedReader is = new BufferedReader(new InputStreamReader(new FileInputStream(javaFile), StandardCharsets.UTF_8))) {
+			log.debug("Processing " + javaFile.getCanonicalPath());
 
 			String line;
 			String firstline = "";
-			StringWriter strWriter = new StringWriter();
 			int i = 0;
 
 			while ((line = is.readLine()) != null) {
@@ -146,8 +146,6 @@ public class AsfCopyRightReplace {
 					} else if (firstline.startsWith("<library")) {
 						strWriter.append(asf_xml_copyright);
 					}
-							
-					
 				} else if (i == 1) {
 					if (firstline.startsWith("<?xml ")
 							&& !line.startsWith("<!--")) {
@@ -163,29 +161,24 @@ public class AsfCopyRightReplace {
 				strWriter.append(line + "\n");
 				i++;
 			}
-			is.close();
-
-			OutputStreamWriter out = new OutputStreamWriter(
-					new FileOutputStream(javaFile.getCanonicalPath()), StandardCharsets.UTF_8);
 
+		} catch (Exception err) {
+			log.error("Error while scanAndWriteXMLFile", err);
+		}
+		try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(javaFile), StandardCharsets.UTF_8)) {
 			out.write(strWriter.toString());
 			out.flush();
-			out.close();
-
 		} catch (Exception err) {
 			log.error("Error while scanAndWriteXMLFile", err);
 		}
 	}
 
 	private void scanAndWriteJavaFile(File javaFile) {
-		try {
-			System.out.println("Processing " + javaFile.getCanonicalPath());
-
-			BufferedReader is = new BufferedReader(new InputStreamReader(
-					new FileInputStream(javaFile), StandardCharsets.UTF_8));
+		StringWriter strWriter = new StringWriter();
+		try (BufferedReader is = new BufferedReader(new InputStreamReader(new FileInputStream(javaFile), StandardCharsets.UTF_8))) {
+			log.debug("Processing " + javaFile.getCanonicalPath());
 
 			String line;
-			StringWriter strWriter = new StringWriter();
 			int i = 0;
 
 			while ((line = is.readLine()) != null) {
@@ -200,18 +193,14 @@ public class AsfCopyRightReplace {
 				strWriter.append(line + "\n");
 				i++;
 			}
-			is.close();
-			
-			OutputStreamWriter out = new OutputStreamWriter(
-					new FileOutputStream(javaFile.getCanonicalPath()), StandardCharsets.UTF_8);
-
+		} catch (Exception err) {
+			log.error("Error while scanAndWriteJavaFile", err);
+		}
+		try (OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(javaFile), StandardCharsets.UTF_8)) {
 			out.write(strWriter.toString());
 			out.flush();
-			out.close();
-
 		} catch (Exception err) {
 			log.error("Error while scanAndWriteJavaFile", err);
 		}
 	}
-
 }

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/label/LabelDao.java Mon Apr  4 05:45:45 2016
@@ -207,20 +207,10 @@ public class LabelDao implements IDataPr
 	
 	private static List<StringLabel> getLabels(Locale l) {
 		List<StringLabel> labels = new ArrayList<StringLabel>();
-		InputStream is = null;
-		try {
-			is = APP.getResourceAsStream(getLabelFileName(l));
+		try (InputStream is = APP.getResourceAsStream(getLabelFileName(l))) {
 			labels = getLabels(l, is);
 		} catch (Exception e) {
 			log.error("Error reading resources document", e);
-		} finally {
-			if (is != null) {
-				try {
-					is.close();
-				} catch (Exception e) {
-					//no-op
-				}
-			}
 		}
 		return labels;
 	}

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/IUserManager.java Mon Apr  4 05:45:45 2016
@@ -27,7 +27,6 @@ import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;
 
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.Userdata;
@@ -37,13 +36,13 @@ public interface IUserManager {
 	
 	Long registerUser(String login, String Userpass, String lastname,
 			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, long stateId,
+			String additionalname, String fax, String zip, String country,
 			String town, long languageId, String phone, boolean sendSMS,
 			boolean generateSipUserData, String jNameTimeZone, Boolean sendConfirmation);
 	
 	Long registerUserInit(Set<Right> rights, String login, String password, String lastname,
 			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, long stateId,
+			String additionalname, String fax, String zip, String country,
 			String town, long languageId, boolean sendWelcomeMessage,
 			List<Long> groups, String phone, boolean sendSMS, Boolean sendConfirmation,
 			TimeZone timezone, Boolean forceTimeZoneCheck,
@@ -51,7 +50,6 @@ public interface IUserManager {
 			Boolean showContactDataToContacts, String activatedHash) throws Exception;
 
 	Long getLanguage(Locale loc);
-	State getCountry(Locale loc);
 	User loginOAuth(Map<String, String> params, long serverId) throws IOException, NoSuchAlgorithmException;
 
 	/** TODO FIXME seems to be unused **/

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dao/user/UserDao.java Mon Apr  4 05:45:45 2016
@@ -29,6 +29,7 @@ import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
 import java.util.TimeZone;
@@ -81,8 +82,6 @@ public class UserDao implements IDataPro
 	@Autowired
 	private ConfigurationDao cfgDao;
 	@Autowired
-	private StateDao stateDao;
-	@Autowired
 	private TimezoneUtil timezoneUtil;
 
 	public static Set<Right> getDefaultRights() {
@@ -109,7 +108,7 @@ public class UserDao implements IDataPro
 		user.setSendSMS(false);
 		user.setAge(new Date());
 		Address address = new Address();
-		address.setState(stateDao.get(1L));
+		address.setCountry(Locale.getDefault().getCountry());
 		user.setAddress(address);
 		user.setShowContactData(false);
 		user.setShowContactDataToContacts(false);
@@ -622,12 +621,12 @@ public class UserDao implements IDataPro
 		return update(u, u.getId());
 	}
 	
-	public Address getAddress(String street, String zip, String town, long stateId, String additionalname, String fax, String phone, String email) {
+	public Address getAddress(String street, String zip, String town, String country, String additionalname, String fax, String phone, String email) {
 		Address a =  new Address();
 		a.setStreet(street);
 		a.setZip(zip);
 		a.setTown(town);
-		a.setState(stateDao.get(stateId));
+		a.setCountry(country);
 		a.setAdditionalname(additionalname);
 		a.setComment("");
 		a.setFax(fax);

Modified: openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/user/Address.java Mon Apr  4 05:45:45 2016
@@ -22,13 +22,10 @@ import java.util.Date;
 
 import javax.persistence.Column;
 import javax.persistence.Entity;
-import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.JoinColumn;
 import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
 import javax.persistence.Table;
 
 import org.apache.openmeetings.db.entity.IDataProviderEntity;
@@ -63,10 +60,9 @@ public class Address implements IDataPro
 	@Element(name = "starttime",data=true, required=false)
 	private Date inserted;
 	
-	@ManyToOne(fetch = FetchType.EAGER)
-	@JoinColumn(name = "state_id")
-	@Element(name="state_id", data=true, required=false)
-	private State state;
+	@Column(name = "country")
+	@Element(name="country", data=true, required=false)
+	private String country;
 	
 	@Column(name = "street")
 	@Element(data=true, required=false)
@@ -134,12 +130,12 @@ public class Address implements IDataPro
 		this.inserted = inserted;
 	}
 
-	public State getState() {
-		return state;
+	public String getCountry() {
+		return country;
 	}
 
-	public void setState(State state) {
-		this.state = state;
+	public void setCountry(String country) {
+		this.country = country;
 	}
 
 	public String getStreet() {
@@ -200,7 +196,7 @@ public class Address implements IDataPro
 
 	@Override
 	public String toString() {
-		return "Address [id=" + id + ", state=" + state
+		return "Address [id=" + id + ", country=" + country
 				+ ", street=" + street + ", town=" + town + ", zip=" + zip
 				+ ", deleted=" + deleted + ", email=" + email + ", phone="
 				+ phone + "]";

Modified: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupExport.java Mon Apr  4 05:45:45 2016
@@ -59,7 +59,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.PrivateMessage;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.util.OmFileHelper;
@@ -333,7 +332,6 @@ public class BackupExport {
 		{
 			List<Configuration> list = configurationDao.getConfigurations(0, Integer.MAX_VALUE, "c.id", true);
 			Registry registry = new Registry();
-			registry.bind(State.class, StateConverter.class);
 			registry.bind(User.class, UserConverter.class);
 			Strategy strategy = new RegistryStrategy(registry);
 			Serializer serializer = new Persister(strategy);
@@ -407,12 +405,12 @@ public class BackupExport {
 		log.debug("---Done");
 	}
 	
-	private <T> void writeList(Serializer ser, File backup_dir, String fileName, String listElement, List<T> list) throws Exception {
+	private static <T> void writeList(Serializer ser, File backup_dir, String fileName, String listElement, List<T> list) throws Exception {
 		FileOutputStream fos = new FileOutputStream(new File(backup_dir, fileName));
 		writeList(ser, fos, listElement, list);
 	}
 	
-	private <T> void writeList(Serializer ser, OutputStream os, String listElement, List<T> list) throws Exception {
+	private static <T> void writeList(Serializer ser, OutputStream os, String listElement, List<T> list) throws Exception {
 		Format format = new Format("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
 		OutputNode doc = NodeBuilder.write(new OutputStreamWriter(os, StandardCharsets.UTF_8), format);
 		OutputNode root = doc.getChild("root");
@@ -442,7 +440,6 @@ public class BackupExport {
 		Serializer serializer = new Persister(strategy);
 
 		registry.bind(Group.class, GroupConverter.class);
-		registry.bind(State.class, StateConverter.class);
 		registry.bind(Salutation.class, SalutationConverter.class);
 		if (list != null && list.size() > 0) {
 			Class<?> dateClass = list.get(0).getRegdate() != null ? list.get(0).getRegdate().getClass() : list.get(0).getInserted().getClass();

Modified: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/backup/BackupImport.java Mon Apr  4 05:45:45 2016
@@ -29,8 +29,8 @@ import static org.apache.openmeetings.ut
 import static org.apache.openmeetings.util.OmFileHelper.getUploadRoomDir;
 import static org.apache.openmeetings.util.OmFileHelper.profilesPrefix;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT_KEY;
-import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_DEFAULT_LDAP_ID;
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -44,6 +44,7 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 import java.util.UUID;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
@@ -71,7 +72,6 @@ import org.apache.openmeetings.db.dao.se
 import org.apache.openmeetings.db.dao.user.GroupDao;
 import org.apache.openmeetings.db.dao.user.PrivateMessageDao;
 import org.apache.openmeetings.db.dao.user.PrivateMessageFolderDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserContactDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.ChatMessage;
@@ -94,7 +94,6 @@ import org.apache.openmeetings.db.entity
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.PrivateMessage;
 import org.apache.openmeetings.db.entity.user.PrivateMessageFolder;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
@@ -123,12 +122,11 @@ import org.xml.sax.InputSource;
 public class BackupImport {
 	private static final Logger log = Red5LoggerFactory.getLogger(BackupImport.class, webAppRootKey);
 	private static final String LDAP_EXT_TYPE = "LDAP";
+	private static final Properties countries = new Properties();
 
 	@Autowired
 	private AppointmentDao appointmentDao;
 	@Autowired
-	private StateDao statemanagement;
-	@Autowired
 	private RoomDao roomDao;
 	@Autowired
 	private UserDao userDao;
@@ -930,7 +928,6 @@ public class BackupImport {
 		Serializer ser = new Persister(strategy);
 
 		registry.bind(Group.class, new GroupConverter(groupDao, groupMap));
-		registry.bind(State.class, new StateConverter(statemanagement));
 		registry.bind(Salutation.class, SalutationConverter.class);
 		registry.bind(Date.class, DateConverter.class);
 
@@ -996,7 +993,7 @@ public class BackupImport {
 						item1 = listNode1.getNext(); //HACK to handle Address inside user
 					} while (item1 != null && !"user".equals(item1.getName()));
 				}
-				String levelId = null, status = null;
+				String levelId = null, status = null, stateId = null;
 				do {
 					if (u.getTimeZoneId() == null && "omTimeZone".equals(item2.getName())) {
 						String jName = item2.getValue();
@@ -1008,6 +1005,9 @@ public class BackupImport {
 					if ("status".equals(item2.getName())) {
 						status = item2.getValue();
 					}
+					if ("state_id".equals(item2.getName())) {
+						stateId = item2.getValue();
+					}
 					item2 = listNode2.getNext(); //HACK to handle old om_time_zone, level_id, status
 				} while (item2 != null && !"user".equals(item2.getName()));
 				if (u.getRights().isEmpty()) {
@@ -1033,6 +1033,16 @@ public class BackupImport {
 					}
 					userEmailMap.put(u.getAddress().getEmail(), userEmailMap.size());
 				}
+				// check old stateId
+				if (!Strings.isEmpty(stateId)) {
+					String country = getCountry(stateId);
+					if (!Strings.isEmpty(country)) {
+						if (u.getAddress() == null) {
+							u.setAddress(new Address());
+						}
+						u.getAddress().setCountry(country);
+					}
+				}
 				list.add(u);
 				item = listNode.getNext();
 			}
@@ -1142,4 +1152,15 @@ public class BackupImport {
 		}
 		return newId;
 	}
+	
+	private static String getCountry(String countryId) {
+		if (countries.isEmpty()) {
+			try (InputStream is = BackupImport.class.getResourceAsStream("countries.properties")) {
+				countries.load(is);
+			} catch (IOException e) {
+				log.error("Unexpected exception during countries import", e);
+			}
+		}
+		return countries.getProperty(String.format("country.%s", countryId));
+	}
 }

Modified: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/java/org/apache/openmeetings/installation/ImportInitvalues.java Mon Apr  4 05:45:45 2016
@@ -61,7 +61,6 @@ import org.apache.openmeetings.db.dao.ro
 import org.apache.openmeetings.db.dao.room.SipDao;
 import org.apache.openmeetings.db.dao.server.OAuth2Dao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.basic.ErrorValue;
 import org.apache.openmeetings.db.entity.basic.Naviglobal;
@@ -90,8 +89,6 @@ public class ImportInitvalues {
 	@Autowired
 	private UserDao userDao;
 	@Autowired
-	private StateDao statemanagement;
-	@Autowired
 	private NavigationDao navimanagement;
 	@Autowired
 	private ErrorDao errorDao;
@@ -446,33 +443,6 @@ public class ImportInitvalues {
 		}
 	}
 
-	/**
-	 * import all language Names from the xml file
-	 * 
-	 * @param filePath
-	 * @throws Exception
-	 */
-	private void loadCountriesFiles() throws Exception {
-		SAXReader reader = new SAXReader();
-		Document document = reader.read(new File(
-				OmFileHelper.getLanguagesDir(),
-				OmFileHelper.nameOfCountriesFile));
-
-		Element root = document.getRootElement();
-
-		for (@SuppressWarnings("rawtypes")
-		Iterator it = root.elementIterator("country"); it.hasNext();) {
-			Element item = (Element) it.next();
-
-			statemanagement.add(item.attributeValue("name"),
-					item.attributeValue("short"),
-					Integer.parseInt(item.attributeValue("code")));
-		}
-		log.debug("Countries ADDED");
-	}
-
-	// ------------------------------------------------------------------------------
-
 	public void loadInitialOAuthServers() throws Exception {
 		// Yandex
 		OAuthServer yandexServer = new OAuthServer();
@@ -543,9 +513,6 @@ public class ImportInitvalues {
 		progress = 32;
 		loadErrorMappingsFromXML();
 		progress = 48;
-		loadCountriesFiles();
-		progress = 64;
-
 		loadConfiguration(cfg);
 		progress = 80;
 		loadInitialOAuthServers();

Added: openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties?rev=1737626&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-install/src/main/resources/org/apache/openmeetings/backup/countries.properties Mon Apr  4 05:45:45 2016
@@ -0,0 +1,254 @@
+################################################################################
+##
+##  Licensed to the Apache Software Foundation (ASF) under one or more
+##  contributor license agreements.  See the NOTICE file distributed with
+##  this work for additional information regarding copyright ownership.
+##  The ASF licenses this file to You under the Apache License, Version 2.0
+##  (the "License"); you may not use this file except in compliance with
+##  the License.  You may obtain a copy of the License at
+##
+##      http://www.apache.org/licenses/LICENSE-2.0
+##
+##  Unless required by applicable law or agreed to in writing, software
+##  distributed under the License is distributed on an "AS IS" BASIS,
+##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+##  See the License for the specific language governing permissions and
+##  limitations under the License.
+##
+################################################################################
+country.1=AF
+country.2=AX
+country.3=AL
+country.4=DZ
+country.5=AS
+country.6=AD
+country.7=AO
+country.8=AI
+country.9=AG
+country.10=AR
+country.11=AM
+country.12=AW
+country.13=AU
+country.14=AT
+country.15=AZ
+country.16=BS
+country.17=BH
+country.18=BD
+country.19=BB
+country.20=BY
+country.21=BE
+country.22=BZ
+country.23=BJ
+country.24=BM
+country.25=BT
+country.26=BO
+country.27=BA
+country.28=BW
+country.29=BR
+country.30=VG
+country.31=BN
+country.32=BG
+country.33=BF
+country.34=BI
+country.35=KH
+country.36=CM
+country.37=CA
+country.38=CV
+country.39=KY
+country.40=CF
+country.41=TD
+country.42=GB
+country.43=CL
+country.44=CN
+country.45=HK
+country.46=MO
+country.47=CO
+country.48=KM
+country.49=CG
+country.50=CK
+country.51=CR
+country.52=CI
+country.53=HR
+country.54=CU
+country.55=CY
+country.56=CZ
+country.57=KP
+country.58=CD
+country.59=DK
+country.60=DJ
+country.61=DM
+country.62=DO
+country.63=EC
+country.64=EG
+country.65=SV
+country.66=GQ
+country.67=ER
+country.68=EE
+country.69=ET
+country.70=FO
+country.71=FK
+country.72=FJ
+country.73=FI
+country.74=FR
+country.75=GF
+country.76=PF
+country.77=GA
+country.78=GM
+country.79=GE
+country.80=DE
+country.81=GH
+country.82=GI
+country.83=GR
+country.84=GL
+country.85=GD
+country.86=GP
+country.87=GU
+country.88=GT
+country.89=GG
+country.90=GN
+country.91=GW
+country.92=GY
+country.93=HT
+country.94=VA
+country.95=HN
+country.96=HU
+country.97=IS
+country.98=IN
+country.99=ID
+country.100=IR
+country.101=IQ
+country.102=IE
+country.103=IM
+country.104=IL
+country.105=IT
+country.106=JM
+country.107=JP
+country.108=JE
+country.109=JO
+country.110=KZ
+country.111=KE
+country.112=KI
+country.113=KW
+country.114=KG
+country.115=LA
+country.116=LV
+country.117=LB
+country.118=LS
+country.119=LR
+country.120=LY
+country.121=LI
+country.122=LT
+country.123=LU
+country.124=MG
+country.125=MW
+country.126=MY
+country.127=MV
+country.128=ML
+country.129=MT
+country.130=MH
+country.131=MQ
+country.132=MR
+country.133=MU
+country.134=YT
+country.135=MX
+country.136=FM
+country.137=MC
+country.138=MN
+country.139=ME
+country.140=MS
+country.141=MA
+country.142=MZ
+country.143=MM
+country.144=NA
+country.145=NR
+country.146=NP
+country.147=NL
+country.148=AN
+country.149=NC
+country.150=NZ
+country.151=NI
+country.152=NE
+country.153=NG
+country.154=NU
+country.155=NF
+country.156=MP
+country.157=NO
+country.158=PS
+country.159=OM
+country.160=PK
+country.161=PW
+country.162=PA
+country.163=PG
+country.164=PY
+country.165=PE
+country.166=PH
+country.167=PN
+country.168=PL
+country.169=PT
+country.170=PR
+country.171=QA
+country.172=KR
+country.173=MD
+country.174=RE
+country.175=RO
+country.176=RU
+country.177=RW
+country.178=SH
+country.179=KN
+country.180=LC
+country.181=PM
+country.182=VC
+country.183=WS
+country.184=SM
+country.185=ST
+country.186=SA
+country.187=SN
+country.188=RS
+country.189=SC
+country.190=SL
+country.191=SG
+country.192=SK
+country.193=SI
+country.194=SB
+country.195=SO
+country.196=ZA
+country.197=ES
+country.198=LK
+country.199=SD
+country.200=SR
+country.201=SJ
+country.202=SZ
+country.203=SE
+country.204=CH
+country.205=SY
+country.206=TW
+country.207=TJ
+country.208=TH
+country.209=MK
+country.210=TL
+country.211=TG
+country.212=TK
+country.213=TO
+country.214=TT
+country.215=TN
+country.216=TR
+country.217=TM
+country.218=TC
+country.219=TV
+country.220=UG
+country.221=UA
+country.222=AE
+country.223=GB
+country.224=TZ
+country.225=US
+country.226=VI
+country.227=UY
+country.228=UZ
+country.229=VU
+country.230=VE
+country.231=VN
+country.232=WF
+country.233=EH
+country.234=YE
+country.235=ZM
+country.236=ZW

Modified: openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-screenshare/src/main/java/org/apache/openmeetings/screen/webstart/ScreenV1Encoder.java Mon Apr  4 05:45:45 2016
@@ -70,7 +70,7 @@ public class ScreenV1Encoder extends Bas
 		zipBuf = new byte[3 * blockSize * blockSize];
 	}
 
-	private VideoData getData(byte[] data) {
+	private static VideoData getData(byte[] data) {
 		IoBuffer buf = IoBuffer.allocate(data.length);
 		buf.clear();
 		buf.put(data);
@@ -78,6 +78,7 @@ public class ScreenV1Encoder extends Bas
 		return new VideoData(buf);
 	}
 	
+	@Override
 	public void createUnalteredFrame() throws IOException {
 		if (last == null) {
 			return;
@@ -99,6 +100,7 @@ public class ScreenV1Encoder extends Bas
 		}
 	}
 	
+	@Override
 	public VideoData getUnalteredFrame() {
 		if (unalteredFrame != null && (frameCount % keyFrameIndex) != 0) {
 			frameCount++;
@@ -106,6 +108,7 @@ public class ScreenV1Encoder extends Bas
 		return unalteredFrame;
 	}
 	
+	@Override
 	public synchronized VideoData encode(int[][] img) throws IOException {
 		ba.reset();
 		Rectangle imgArea = new Rectangle(img.length, img[0].length);
@@ -125,6 +128,7 @@ public class ScreenV1Encoder extends Bas
 		return getData(ba.toByteArray());
 	}
 	
+	@Override
 	public void reset() {
 		last = null;
 		unalteredFrame = null;
@@ -180,7 +184,7 @@ public class ScreenV1Encoder extends Bas
 		return ((frame & 0x0F) << 4) + ((codec & 0x0F) << 0);
 	}
 	
-	private void writeShort(OutputStream os, final int n) throws IOException {
+	private static void writeShort(OutputStream os, final int n) throws IOException {
 		os.write((n >> 8) & 0xFF);
 		os.write((n >> 0) & 0xFF);
 	}

Modified: openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java Mon Apr  4 05:45:45 2016
@@ -48,16 +48,14 @@ import org.apache.openmeetings.db.dao.ba
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.dao.server.ISessionManager;
 import org.apache.openmeetings.db.dao.server.SessiondataDao;
-import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
+import org.apache.openmeetings.db.dao.user.IUserManager;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.dto.basic.SearchResult;
 import org.apache.openmeetings.db.entity.room.Client;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.Address;
 import org.apache.openmeetings.db.entity.user.GroupUser;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Type;
@@ -92,8 +90,6 @@ public class UserManager implements IUse
 	@Autowired
 	private ConfigurationDao cfgDao;
 	@Autowired
-	private StateDao stateDao;
-	@Autowired
 	private GroupDao groupDao;
 	@Autowired
 	private UserDao userDao;
@@ -287,9 +283,10 @@ public class UserManager implements IUse
 	 * @param sendConfirmation
 	 * @return
 	 */
+	@Override
 	public Long registerUser(String login, String Userpass, String lastname,
 			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, long stateId,
+			String additionalname, String fax, String zip, String country,
 			String town, long languageId, String phone, boolean sendSMS,
 			boolean generateSipUserData, String jNameTimeZone, Boolean sendConfirmation) {
 		try {
@@ -305,7 +302,7 @@ public class UserManager implements IUse
 
 				Long userId = registerUserInit(UserDao.getDefaultRights(), login,
 						Userpass, lastname, firstname, email, age, street,
-						additionalname, fax, zip, stateId, town, languageId,
+						additionalname, fax, zip, country, town, languageId,
 						true, Arrays.asList(cfgDao.getConfValue(CONFIG_DEFAULT_GROUP_ID, Long.class, null)), phone,
 						sendSMS, sendConfirmation, timezoneUtil.getTimeZone(jNameTimeZone), false, "", "", false, true, null);
 
@@ -354,9 +351,10 @@ public class UserManager implements IUse
 	 *         or mail is empty
 	 * @throws Exception
 	 */
+	@Override
 	public Long registerUserInit(Set<Right> rights, String login, String password, String lastname,
 			String firstname, String email, Date age, String street,
-			String additionalname, String fax, String zip, long stateId,
+			String additionalname, String fax, String zip, String country,
 			String town, long languageId, boolean sendWelcomeMessage,
 			List<Long> groups, String phone, boolean sendSMS, Boolean sendConfirmation,
 			TimeZone timezone, Boolean forceTimeZoneCheck,
@@ -384,7 +382,7 @@ public class UserManager implements IUse
 						return -19L;
 					}
 				}
-				Address adr =  userDao.getAddress(street, zip, town, stateId, additionalname, fax, phone, email);
+				Address adr =  userDao.getAddress(street, zip, town, country, additionalname, fax, phone, email);
 
 				// If this user needs first to click his E-Mail verification
 				// code then set the status to 0
@@ -426,6 +424,7 @@ public class UserManager implements IUse
 	 * @param room_id
 	 * @return
 	 */
+	@Override
 	public boolean kickUserByStreamId(String SID, Long room_id) {
 		try {
 			Long users_id = sessiondataDao.checkSession(SID);
@@ -458,6 +457,7 @@ public class UserManager implements IUse
 		return false;
 	}
 
+	@Override
 	public boolean kickUserByPublicSID(String SID, String publicSID) {
 		try {
 			Long userId = sessiondataDao.checkSession(SID);
@@ -490,6 +490,7 @@ public class UserManager implements IUse
 		return false;
 	}
 	
+	@Override
 	public Long getLanguage(Locale loc) {
 		if (loc != null) {
 			for (Map.Entry<Long, Locale> e : LabelDao.languages.entrySet()) {
@@ -501,19 +502,7 @@ public class UserManager implements IUse
 		return cfgDao.getConfValue(CONFIG_DEFAULT_LANG_KEY, Long.class, "1");
 	}
 
-	public State getCountry(Locale loc) {
-		List<State> states = stateDao.get();
-		if (loc != null) {
-			String code = loc.getISO3Country().toUpperCase();
-			for (State s : states) {
-				if (s.getShortName().toUpperCase().equals(code)) {
-					return s;
-				}
-			}
-		}
-		return states.get(0);
-	}
-
+	@Override
 	public User loginOAuth(Map<String, String> params, long serverId) throws IOException, NoSuchAlgorithmException {
 		String login = params.get("login");
 		String email = params.get("email");
@@ -562,7 +551,7 @@ public class UserManager implements IUse
 				Locale loc = Locale.forLanguageTag(locale);
 				if (loc != null) {
 					u.setLanguageId(getLanguage(loc));
-					u.getAddress().setState(getCountry(loc));
+					u.getAddress().setCountry(loc.getCountry());
 				}
 			}
 		}

Modified: openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/OmFileHelper.java Mon Apr  4 05:45:45 2016
@@ -62,7 +62,6 @@ public class OmFileHelper {
 	public static final String DB_PERSISTENCE_NAME = "classes/META-INF/%s_persistence.xml";
 	public static final String profilesPrefix = "profile_";
 	public static final String nameOfLanguageFile = "languages.xml";
-	public static final String nameOfCountriesFile = "countries.xml";
 	public static final String nameOfErrorFile = "errorvalues.xml";
 	public static final String libraryFileName = "library.xml";
 	public static final String defaultProfileImageName = "profile_pic.jpg";
@@ -333,17 +332,11 @@ public class OmFileHelper {
 	}
 	
 	public static void copyFile(File f1, OutputStream out) throws IOException {
-		InputStream in = null;
-		try {
-			in = new FileInputStream(f1);
+		try (InputStream in = new FileInputStream(f1)) {
 			FileHelper.copy(in, out);
 			log.debug("File copied.");
 		} catch (Exception e) {
 			log.error("[copyfile(File, File)]", e);
-		} finally {
-			if (in != null) {
-				in.close();
-			}
 		}
 	}
 }

Modified: openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-util/src/main/java/org/apache/openmeetings/util/mail/ByteArrayDataSource.java Mon Apr  4 05:45:45 2016
@@ -31,14 +31,13 @@ public class ByteArrayDataSource impleme
 	/* Create a DataSource from an input stream */
 	public ByteArrayDataSource(InputStream is, String type) {
 		this.type = type;
-		try {
-			ByteArrayOutputStream os = new ByteArrayOutputStream();
+		try (ByteArrayOutputStream os = new ByteArrayOutputStream()) {
 			int ch;
 
-			while ((ch = is.read()) != -1)
+			while ((ch = is.read()) != -1) {
 				os.write(ch);
+			}
 			data = os.toByteArray();
-			os.close();
 		} catch (IOException ioex) {
 		}
 	}
@@ -55,20 +54,24 @@ public class ByteArrayDataSource impleme
 		this.type = type;
 	}
 
+	@Override
 	public InputStream getInputStream() throws IOException {
 		if (data == null)
 			throw new IOException("no data");
 		return new ByteArrayInputStream(data);
 	}
 
+	@Override
 	public OutputStream getOutputStream() throws IOException {
 		throw new IOException("cannot do this");
 	}
 
+	@Override
 	public String getContentType() {
 		return type;
 	}
 
+	@Override
 	public String getName() {
 		return "dummy";
 	}

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/app/WebSession.java Mon Apr  4 05:45:45 2016
@@ -44,6 +44,8 @@ import java.util.Locale;
 import java.util.Set;
 import java.util.TimeZone;
 
+import org.apache.openmeetings.IWebSession;
+import org.apache.openmeetings.core.ldap.LdapLoginManagement;
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.label.LabelDao;
 import org.apache.openmeetings.db.dao.server.SOAPLoginDao;
@@ -53,13 +55,10 @@ import org.apache.openmeetings.db.dao.us
 import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
 import org.apache.openmeetings.db.entity.server.SOAPLogin;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.entity.user.User.Type;
 import org.apache.openmeetings.db.util.TimezoneUtil;
-import org.apache.openmeetings.IWebSession;
-import org.apache.openmeetings.core.ldap.LdapLoginManagement;
 import org.apache.openmeetings.util.OmException;
 import org.apache.openmeetings.web.pages.SwfPage;
 import org.apache.openmeetings.web.user.dashboard.MyRoomsWidget;
@@ -410,10 +409,6 @@ public class WebSession extends Abstract
 		return getBean(IUserManager.class).getLanguage(getBrowserLocale());
 	}
 
-	public State getCountryByBrowserLocale() {
-		return getBean(IUserManager.class).getCountry(getBrowserLocale());
-	}
-
 	public String getClientTZCode() {
 		TimeZone _zone = browserTz;
 		if (browserTz == null) {

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.html Mon Apr  4 05:45:45 2016
@@ -61,7 +61,7 @@
 			wicket:id="address.town" style="width: 214px;" />
 	</div>
 	<div class="formelement">
-		<label><wicket:message key="141" /></label><select wicket:id="address.state" />
+		<label><wicket:message key="141" /></label><select wicket:id="address.country" />
 	</div>
 	<div class="formelement">
 		<label><wicket:message key="142" /></label>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/GeneralUserForm.java Mon Apr  4 05:45:45 2016
@@ -30,16 +30,15 @@ import java.util.List;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.user.Group;
 import org.apache.openmeetings.db.entity.user.GroupUser;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Salutation;
 import org.apache.openmeetings.util.CalendarHelper;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
+import org.apache.openmeetings.web.util.CountryDropDown;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
 import org.apache.wicket.markup.head.IHeaderResponse;
@@ -121,7 +120,7 @@ public class GeneralUserForm extends For
 		add(new TextField<String>("address.additionalname"));
 		add(new TextField<String>("address.zip"));
 		add(new TextField<String>("address.town"));
-		add(new DropDownChoice<State>("address.state", getBean(StateDao.class).get(), new ChoiceRenderer<State>("name", "id")));
+		add(new CountryDropDown("address.country"));
 		add(new TextArea<String>("address.comment"));
 
 		final List<GroupUser> orgUsers;

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.html Mon Apr  4 05:45:45 2016
@@ -52,7 +52,7 @@
 			</tr>
 			<tr>
 				<td class="desc"><wicket:message key="120" /></td>
-				<td><select wicket:id="state"></select></td>
+				<td><select wicket:id="country"></select></td>
 			</tr>
 			<tr>
 				<td class="desc"><wicket:message key="111" /></td>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/pages/auth/RegisterDialog.java Mon Apr  4 05:45:45 2016
@@ -35,18 +35,16 @@ import java.util.TimeZone;
 
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.user.IUserManager;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.web.app.Application;
 import org.apache.openmeetings.web.app.WebSession;
 import org.apache.openmeetings.web.common.LanguageDropDown;
+import org.apache.openmeetings.web.util.CountryDropDown;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
 import org.apache.wicket.core.request.handler.IPartialPageRequestHandler;
 import org.apache.wicket.extensions.validation.validator.RfcCompliantEmailAddressValidator;
-import org.apache.wicket.markup.html.form.ChoiceRenderer;
 import org.apache.wicket.markup.html.form.DropDownChoice;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.markup.html.form.PasswordTextField;
@@ -83,7 +81,7 @@ public class RegisterDialog extends Abst
 	private String login;
 	private String password;
 	private String email;
-	private State state;
+	private String country;
 	private Long lang;
 
 	final MessageDialog confirmRegistration;
@@ -149,7 +147,7 @@ public class RegisterDialog extends Abst
 		form.confirmPassword.setModelObject(null);
 		email = null;
 		lang = WebSession.get().getLanguageByBrowserLocale();
-		state = WebSession.get().getCountryByBrowserLocale();
+		country = WebSession.get().getBrowserLocale().getCountry();
 	}
 
 	public void onOpen(AjaxRequestTarget target) {
@@ -198,7 +196,7 @@ public class RegisterDialog extends Abst
 		try {
 			getBean(IUserManager.class).registerUserInit(UserDao.getDefaultRights(), login, password, lastName
 					, firstName, email, null /* age/birthday */, "" /* street */
-					, "" /* additionalname */, "" /* fax */, "" /* zip */, state.getId()
+					, "" /* additionalname */, "" /* fax */, "" /* zip */, country
 					, "" /* town */, lang, true /* sendWelcomeMessage */
 					, Arrays.asList(getBean(ConfigurationDao.class).getConfValue(CONFIG_DEFAULT_GROUP_ID, Long.class, null)),
 					"" /* phone */, false, sendConfirmation, TimeZone.getTimeZone(tzModel.getObject()),
@@ -227,7 +225,7 @@ public class RegisterDialog extends Abst
 		private RequiredTextField<String> firstNameField;
 		private RequiredTextField<String> lastNameField;
 		private LanguageDropDown langField;
-		private DropDownChoice<State> stateField;
+		private CountryDropDown countryField;
 
 		public RegisterForm(String id) {
 			super(id);
@@ -256,9 +254,8 @@ public class RegisterDialog extends Abst
 			add(langField = new LanguageDropDown("lang", new PropertyModel<Long>(RegisterDialog.this, "lang")));
 			langField.setRequired(true).setLabel(Model.of(Application.getString(111)));
 			add(tzDropDown.setRequired(true).setLabel(Model.of(Application.getString(1143))));
-			add(stateField = new DropDownChoice<State>("state", new PropertyModel<State>(RegisterDialog.this, "state"),
-					getBean(StateDao.class).get(), new ChoiceRenderer<State>("name", "id")));
-			stateField.setRequired(true).setLabel(Model.of(Application.getString(120)));
+			add(countryField = new CountryDropDown("country", new PropertyModel<String>(RegisterDialog.this, "country")));
+			countryField.setRequired(true).setLabel(Model.of(Application.getString(120)));
 			add(new AjaxButton("submit") { // FAKE button so "submit-on-enter" works as expected
 				private static final long serialVersionUID = 1L;
 

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/rooms/RoomsPanel.java Mon Apr  4 05:45:45 2016
@@ -20,7 +20,6 @@ package org.apache.openmeetings.web.user
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
 
@@ -52,7 +51,7 @@ public class RoomsPanel extends UserPane
 	private IModel<String> roomName = Model.of((String)null);
 	private IModel<String> roomComment = Model.of((String)null);
 	private List<Client> clientsInRoom = null;
-	private long roomId = 0;
+	private Long roomId = 0L;
 
 	public RoomsPanel(String id, List<Room> rooms) {
 		super(id);
@@ -102,17 +101,10 @@ public class RoomsPanel extends UserPane
 							uri = Application.getBean(UserDao.class).get(userId > 0 ? userId : -userId).getPictureuri();
 						}
 						File img = OmFileHelper.getUserProfilePicture(userId, uri);
-						InputStream is = null;
-						try {
-							is = new FileInputStream(img);
+						try (InputStream is = new FileInputStream(img)) {
 							return IOUtils.toByteArray(is);
 						} catch (Exception e) {
-						} finally {
-							if (is != null) {
-								try {
-									is.close();
-								} catch (IOException e) {}
-							}
+							//no-op
 						}
 						return null;
 					}

Added: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java?rev=1737626&view=auto
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java (added)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/java/org/apache/openmeetings/web/util/CountryDropDown.java Mon Apr  4 05:45:45 2016
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") +  you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.web.util;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Locale;
+
+import org.apache.openmeetings.web.app.WebSession;
+import org.apache.wicket.markup.html.form.DropDownChoice;
+import org.apache.wicket.markup.html.form.IChoiceRenderer;
+import org.apache.wicket.model.IModel;
+
+public class CountryDropDown extends DropDownChoice<String>  {
+	private static final long serialVersionUID = 1L;
+
+	public CountryDropDown(String id) {
+		this(id, null);
+	}
+	
+	public CountryDropDown(String id, IModel<String> model) {
+		super(id, model, Arrays.asList(Locale.getISOCountries()));
+		setChoiceRenderer(new IChoiceRenderer<String>() {
+			private static final long serialVersionUID = 1L;
+
+			@Override
+			public String getIdValue(String code, int index) {
+				return code;
+			}
+			
+			public Object getDisplayValue(String code) {
+				return new Locale.Builder().setRegion(code).build().getDisplayCountry(WebSession.get().getLocale());
+			}
+
+			@Override
+			public String getObject(String id, IModel<? extends List<? extends String>> choices) {
+				for (String code : choices.getObject()) {
+					if (code.equals(id)) {
+						return code;
+					}
+				}
+				return null;
+			}
+		});
+	}
+}

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/db2_persistence.xml Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
 		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
 		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
 		<class>org.apache.openmeetings.db.entity.user.Address</class>
-		<class>org.apache.openmeetings.db.entity.user.State</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/derby_persistence.xml Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
 		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
 		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
 		<class>org.apache.openmeetings.db.entity.user.Address</class>
-		<class>org.apache.openmeetings.db.entity.user.State</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mssql_persistence.xml Mon Apr  4 05:45:45 2016
@@ -52,7 +52,6 @@
 		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
 		<class>org.apache.openmeetings.db.entity.room.RoomGroup</class>
 		<class>org.apache.openmeetings.db.entity.user.Address</class>
-		<class>org.apache.openmeetings.db.entity.user.State</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/mysql_persistence.xml Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
 		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
 		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
 		<class>org.apache.openmeetings.db.entity.user.Address</class>
-		<class>org.apache.openmeetings.db.entity.user.State</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/oracle_persistence.xml Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
 		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
 		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
 		<class>org.apache.openmeetings.db.entity.user.Address</class>
-		<class>org.apache.openmeetings.db.entity.user.State</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/META-INF/postgresql_persistence.xml Mon Apr  4 05:45:45 2016
@@ -53,7 +53,6 @@
 		<class>org.apache.openmeetings.db.entity.room.Whiteboard</class>
 		<class>org.apache.openmeetings.db.entity.room.WhiteboardItem</class>
 		<class>org.apache.openmeetings.db.entity.user.Address</class>
-		<class>org.apache.openmeetings.db.entity.user.State</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessage</class>
 		<class>org.apache.openmeetings.db.entity.user.PrivateMessageFolder</class>
 		<class>org.apache.openmeetings.db.entity.user.UserContact</class>

Modified: openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml Mon Apr  4 05:45:45 2016
@@ -215,7 +215,6 @@
 	<bean id="errorManagement" class="org.apache.openmeetings.db.dao.basic.ErrorDao" />
 	<bean id="navimanagement" class="org.apache.openmeetings.db.dao.basic.NavigationDao" />
 	<bean id="pollManagement" class="org.apache.openmeetings.db.dao.room.PollDao" />
-	<bean id="statemanagement" class="org.apache.openmeetings.db.dao.user.StateDao" />
 	<bean id="labelDao" class="org.apache.openmeetings.db.dao.label.LabelDao" />
 	<bean id="configurationDaoImpl" class="org.apache.openmeetings.db.dao.basic.ConfigurationDao" />
 	<bean id="appointmentDao" class="org.apache.openmeetings.db.dao.calendar.AppointmentDao" />

Modified: openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java (original)
+++ openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/UserWebService.java Mon Apr  4 05:45:45 2016
@@ -25,6 +25,7 @@ import static org.apache.openmeetings.we
 
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 
 import javax.jws.WebMethod;
 import javax.jws.WebParam;
@@ -54,7 +55,6 @@ import org.apache.openmeetings.db.dto.us
 import org.apache.openmeetings.db.entity.server.RemoteSessionObject;
 import org.apache.openmeetings.db.entity.server.Sessiondata;
 import org.apache.openmeetings.db.entity.user.Address;
-import org.apache.openmeetings.db.entity.user.State;
 import org.apache.openmeetings.db.entity.user.User;
 import org.apache.openmeetings.db.entity.user.User.Right;
 import org.apache.openmeetings.db.util.AuthLevelUtil;
@@ -171,16 +171,14 @@ public class UserWebService implements U
 				String jName_timeZone = cfgDao.getConfValue("default.timezone", String.class, "");
 				if (user.getAddress() == null) {
 					user.setAddress(new Address());
-					State s = new State();
-					s.setId(1L);
-					user.getAddress().setState(s);
+					user.getAddress().setCountry(Locale.getDefault().getCountry());
 				}
 				if (user.getLanguageId() == null) {
 					user.setLanguageId(1L);
 				}
 				Long userId = userManagement.registerUser(user.getLogin(), user.getPassword(),
 						user.getLastname(), user.getFirstname(), user.getAddress().getEmail(), new Date(), user.getAddress().getStreet(),
-						user.getAddress().getAdditionalname(), user.getAddress().getFax(), user.getAddress().getZip(), user.getAddress().getState().getId()
+						user.getAddress().getAdditionalname(), user.getAddress().getFax(), user.getAddress().getZip(), user.getAddress().getCountry()
 						, user.getAddress().getTown(), user.getLanguageId(),
 						"", false, true, // generate SIP Data if the config is enabled
 						jName_timeZone, confirm);

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/ldap/LdapLoginManagement.java Mon Apr  4 05:45:45 2016
@@ -51,7 +51,6 @@ import org.apache.directory.ldap.client.
 import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
 import org.apache.openmeetings.db.dao.server.LdapConfigDao;
 import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.StateDao;
 import org.apache.openmeetings.db.dao.user.UserDao;
 import org.apache.openmeetings.db.entity.server.LdapConfig;
 import org.apache.openmeetings.db.entity.user.Address;
@@ -127,8 +126,6 @@ public class LdapLoginManagement {
 	@Autowired
 	private ConfigurationDao cfgDao;
 	@Autowired
-	private StateDao stateDao;
-	@Autowired
 	private LdapConfigDao ldapConfigDao;
 	@Autowired
 	private UserDao userDao;
@@ -350,7 +347,7 @@ public class LdapLoginManagement {
 			u.getAddress().setAdditionalname(getAttr(config, entry, CONFIGKEY_LDAP_KEY_ADDITIONAL_NAME, LDAP_KEY_ADDITIONAL_NAME));
 			u.getAddress().setFax(getAttr(config, entry, CONFIGKEY_LDAP_KEY_FAX, LDAP_KEY_FAX));
 			u.getAddress().setZip(getAttr(config, entry, CONFIGKEY_LDAP_KEY_ZIP, LDAP_KEY_ZIP));
-			u.getAddress().setState(stateDao.get(getAttr(config, entry, CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY)));
+			u.getAddress().setCountry(getAttr(config, entry, CONFIGKEY_LDAP_KEY_COUNTRY, LDAP_KEY_COUNTRY));
 			u.getAddress().setTown(getAttr(config, entry, CONFIGKEY_LDAP_KEY_TOWN, LDAP_KEY_TOWN));
 			u.getAddress().setPhone(getAttr(config, entry, CONFIGKEY_LDAP_KEY_PHONE, LDAP_KEY_PHONE));
 			String tz = getAttr(config, entry, LdapOptions.CONFIGKEY_LDAP_TIMEZONE_NAME, LDAP_KEY_TIMEZONE);

Modified: openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java
URL: http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java?rev=1737626&r1=1737625&r2=1737626&view=diff
==============================================================================
--- openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java (original)
+++ openmeetings/application/trunk/openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/MainService.java Mon Apr  4 05:45:45 2016
@@ -23,6 +23,7 @@ import static org.apache.openmeetings.ut
 
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 import java.util.Set;
 
 import org.apache.openmeetings.core.remote.red5.ScopeApplicationAdapter;
@@ -340,7 +341,7 @@ public class MainService implements IPen
 						if (user == null) {
 							String iCalTz = configurationDao.getConfValue("default.timezone", String.class, "");
 
-							Address a = userDao.getAddress(null, null, null, 1L, null, null, null, userObject.getEmail());
+							Address a = userDao.getAddress(null, null, null, Locale.getDefault().getCountry(), null, null, null, userObject.getEmail());
 
 							Set<Right> rights = UserDao.getDefaultRights();
 							rights.remove(Right.Login);