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;


Reply via email to