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 2013/08/13 13:14:00 UTC

svn commit: r1513441 - in /openmeetings/trunk/singlewebapp: WebContent/ WebContent/WEB-INF/ WebContent/src/base/components/upload/ src/org/apache/openmeetings/remote/red5/ src/org/apache/openmeetings/utils/

Author: solomax
Date: Tue Aug 13 11:14:00 2013
New Revision: 1513441

URL: http://svn.apache.org/r1513441
Log:
[OPENMEETINGS-750] backup import works as expected (tested on 1.9.1 backup file)

Modified:
    openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
    openmeetings/trunk/singlewebapp/WebContent/project.xsd
    openmeetings/trunk/singlewebapp/WebContent/src/base/components/upload/library.lzx
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/BackupImport.java
    openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/TimezoneUtil.java

Modified: openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml?rev=1513441&r1=1513440&r2=1513441&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml (original)
+++ openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml Tue Aug 13 11:14:00 2013
@@ -296,6 +296,8 @@
 	<bean id="ldapLoginManagement" class="org.apache.openmeetings.ldap.LdapLoginManagement" />
 	<bean id="timezoneUtil" class="org.apache.openmeetings.utils.TimezoneUtil" />
 	<bean id="whiteboardManagement" class="org.apache.openmeetings.data.whiteboard.WhiteboardManager" />
+	<bean id="backupExport" class="org.apache.openmeetings.utils.BackupExport" />
+	<bean id="backupImport" class="org.apache.openmeetings.utils.BackupImport" />
 
 	<!-- Templates -->
 	<bean id="registerUserTemplate" class="org.apache.openmeetings.templates.RegisterUserTemplate" />
@@ -319,6 +321,4 @@
 	<bean id="calendarWebService" class="org.apache.openmeetings.axis.services.CalendarWebService" />
 	<bean id="jabberWebService" class="org.apache.openmeetings.axis.services.JabberWebService" />
 	<bean id="serverWebService" class="org.apache.openmeetings.axis.services.ServerWebService" />
-	<!-- Servlet Facade Beans -->
-	<bean id="backupExport" class="org.apache.openmeetings.utils.BackupExport" />
 </beans>

Modified: openmeetings/trunk/singlewebapp/WebContent/project.xsd
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/project.xsd?rev=1513441&r1=1513440&r2=1513441&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/project.xsd (original)
+++ openmeetings/trunk/singlewebapp/WebContent/project.xsd Tue Aug 13 11:14:00 2013
@@ -3122,22 +3122,6 @@ This is used in the conference.
   </xs:extension>
   </xs:complexContent>
   </xs:complexType>
-<xs:element name="importWindow" type="project:importWindow" >
-</xs:element>
-  <xs:complexType name="importWindow" mixed="true">
-  <xs:complexContent>
-  <xs:extension base="project:labelExplorerBox">
-      <xs:attribute name="winobj" type="xs:string" default="null" >
-</xs:attribute>
-      <xs:attribute name="uploadmodule" type="xs:string" default="users" >
-</xs:attribute>
-      <xs:attribute name="sessionid" type="xs:string" default="" >
-</xs:attribute>
-      <xs:attribute name="secondid" type="lzx:number" default="0" >
-</xs:attribute>
-  </xs:extension>
-  </xs:complexContent>
-  </xs:complexType>
 <xs:element name="recordValueList" type="project:recordValueList" >
 </xs:element>
   <xs:complexType name="recordValueList" mixed="true">
@@ -7551,22 +7535,6 @@ This is used in the conference.
   </xs:extension>
   </xs:complexContent>
   </xs:complexType>
-<xs:element name="backupImportWindow" type="project:backupImportWindow" >
-</xs:element>
-  <xs:complexType name="backupImportWindow" mixed="true">
-  <xs:complexContent>
-  <xs:extension base="project:labelExplorerBox">
-      <xs:attribute name="winobj" type="xs:string" default="null" >
-</xs:attribute>
-      <xs:attribute name="uploadmodule" type="xs:string" default="users" >
-</xs:attribute>
-      <xs:attribute name="sessionid" type="xs:string" default="" >
-</xs:attribute>
-      <xs:attribute name="secondid" type="lzx:number" default="0" >
-</xs:attribute>
-  </xs:extension>
-  </xs:complexContent>
-  </xs:complexType>
 <xs:element name="syncWin" type="project:syncWin" >
 </xs:element>
   <xs:complexType name="syncWin" mixed="true">
@@ -8380,40 +8348,6 @@ This is used in the conference.
   </xs:extension>
   </xs:complexContent>
   </xs:complexType>
-<xs:element name="uploadWindow" type="project:uploadWindow" >
-</xs:element>
-  <xs:complexType name="uploadWindow" mixed="true">
-  <xs:complexContent>
-  <xs:extension base="project:labelExplorerBox">
-      <xs:attribute name="winobj" type="xs:string" default="null" >
-</xs:attribute>
-      <xs:attribute name="usersid" type="xs:string" default="" >
-</xs:attribute>
-      <xs:attribute name="uploadmodule" type="xs:string" default="videoconf1" >
-</xs:attribute>
-      <xs:attribute name="singleslidesmodule_id" type="xs:string" default="" >
-</xs:attribute>
-      <xs:attribute name="sessionid" type="xs:string" default="" >
-</xs:attribute>
-      <xs:attribute name="servletName" type="xs:string" default="UploadHandler" >
-</xs:attribute>
-      <xs:attribute name="returnObj" type="lzx:boolean" default="true" >
-</xs:attribute>
-      <xs:attribute name="parentFolderId" type="lzx:number" default="0" >
-</xs:attribute>
-      <xs:attribute name="isdefaultreturn" type="lzx:boolean" default="true" >
-</xs:attribute>
-      <xs:attribute name="isOnlyXml" type="lzx:boolean" default="false" >
-</xs:attribute>
-      <xs:attribute name="isOnlyProfile" type="lzx:boolean" default="false" >
-</xs:attribute>
-      <xs:attribute name="isOnlyPpt" type="lzx:boolean" default="false" >
-</xs:attribute>
-      <xs:attribute name="isOnlyImage" type="lzx:boolean" default="false" >
-</xs:attribute>
-  </xs:extension>
-  </xs:complexContent>
-  </xs:complexType>
 <xs:element name="updatecheckbox" type="project:updatecheckbox" >
 </xs:element>
   <xs:complexType name="updatecheckbox" mixed="true">

Modified: openmeetings/trunk/singlewebapp/WebContent/src/base/components/upload/library.lzx
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/WebContent/src/base/components/upload/library.lzx?rev=1513441&r1=1513440&r2=1513441&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/WebContent/src/base/components/upload/library.lzx (original)
+++ openmeetings/trunk/singlewebapp/WebContent/src/base/components/upload/library.lzx Tue Aug 13 11:14:00 2013
@@ -20,14 +20,7 @@
 -->
 <library>
 
-
 	<include href="fileUpload.lzx" />
 	<include href="uploadWindowExplorer.lzx" />
 	
-	<!--
-	<include href="backupImportWindow.lzx" />
-	<include href="importWindow.lzx" />
-	<include href="uploadWindow.lzx" />
-	 -->
-
 </library>

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java?rev=1513441&r1=1513440&r2=1513441&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/remote/red5/ScopeApplicationAdapter.java Tue Aug 13 11:14:00 2013
@@ -59,6 +59,7 @@ import org.apache.openmeetings.remote.Wh
 import org.apache.openmeetings.remote.util.SessionVariablesUtil;
 import org.apache.openmeetings.session.ISessionManager;
 import org.apache.openmeetings.utils.OmFileHelper;
+import org.apache.openmeetings.utils.TimezoneUtil;
 import org.apache.openmeetings.utils.math.CalendarPatterns;
 import org.red5.logging.Red5LoggerFactory;
 import org.red5.server.adapter.ApplicationAdapter;
@@ -129,6 +130,7 @@ public class ScopeApplicationAdapter ext
 	public synchronized boolean appStart(IScope scope) {
 		try {
 			OmFileHelper.setOmHome(scope.getResource("/").getFile());
+			TimezoneUtil.initTimeZones();
 
 			log.debug("webAppPath : " + OmFileHelper.getOmHome());
 

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/BackupImport.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/BackupImport.java?rev=1513441&r1=1513440&r2=1513441&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/BackupImport.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/BackupImport.java Tue Aug 13 11:14:00 2013
@@ -699,24 +699,29 @@ public class BackupImport {
 		if (listNodeName.equals(listNode.getName())) {
 			InputNode item = listNode.getNext();
 			InputNode item1 = listNode1.getNext(); //HACK to handle Address inside user
-			InputNode item2 = listNode1.getNext(); //HACK to handle old om_time_zone
+			InputNode item2 = listNode2.getNext(); //HACK to handle old om_time_zone
 			while (item != null) {
 				User u = ser.read(User.class, item, false);
 				
+				boolean needToSkip1 = true;
 				//HACK to handle Address inside user
 				if (u.getAdresses() == null) {
 					Address a = ser.read(Address.class, item1, false);
 					u.setAdresses(a);
+					needToSkip1 = false;
+				}
+				if (needToSkip1) {
+					do {
+						item1 = listNode1.getNext(); //HACK to handle Address inside user
+					} while (item1 != null && !"user".equals(item1.getName()));
 				}
-				do {
-					item1 = listNode1.getNext(); //HACK to handle Address inside user
-				} while (item != null && !"user".equals(item1.getName()));
 				do {
 					if (u.getTimeZoneId() == null && "omTimeZone".equals(item2.getName())) {
-						u.setTimeZoneId(tzUtil.getTimezoneByInternalJName(item2.getValue()).getID());
+						String jName = item2.getValue();
+						u.setTimeZoneId(jName == null ? null : tzUtil.getTimezoneByInternalJName(jName).getID());
 					}
 					item2 = listNode2.getNext(); //HACK to handle old om_time_zone
-				} while (item != null && !"user".equals(item2.getName()));
+				} while (item2 != null && !"user".equals(item2.getName()));
 				list.add(u);
 				item = listNode.getNext();
 			}

Modified: openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/TimezoneUtil.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/TimezoneUtil.java?rev=1513441&r1=1513440&r2=1513441&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/TimezoneUtil.java (original)
+++ openmeetings/trunk/singlewebapp/src/org/apache/openmeetings/utils/TimezoneUtil.java Tue Aug 13 11:14:00 2013
@@ -45,10 +45,13 @@ public class TimezoneUtil {
 	private static final Logger log = Red5LoggerFactory.getLogger(TimezoneUtil.class, webAppRootKey);
 	private static final Map<String, String> ICAL_TZ_MAP = new Hashtable<String, String>();
 	private static final Map<Long, String> ID_TZ_MAP = new Hashtable<Long, String>();
-	static {
+	
+	public static void initTimeZones() {
 		SAXReader reader = new SAXReader();
 		Document document;
 		try {
+			ICAL_TZ_MAP.clear();
+			ID_TZ_MAP.clear();
 			document = reader.read(new File(getLanguagesDir(), nameOfTimeZoneFile));
 
 			Element root = document.getRootElement();
@@ -108,9 +111,7 @@ public class TimezoneUtil {
 		
 		String defaultTzName = configurationDao.getConfValue("default.timezone", String.class, "Europe/Berlin");
 
-		String omTimeZoneDefault = ICAL_TZ_MAP.get(defaultTzName);
-
-		TimeZone timeZoneByOmTimeZone = TimeZone.getTimeZone(omTimeZoneDefault);
+		TimeZone timeZoneByOmTimeZone = TimeZone.getTimeZone(defaultTzName);
 
 		if (timeZoneByOmTimeZone != null) {
 			return timeZoneByOmTimeZone;