Changeset 50
- Timestamp:
- 01/30/06 22:49:17
- Files:
-
- trunk/calendar3/calFacade/src/org/bedework/calfacade/svc/BwSubscription.java (modified) (1 diff)
- trunk/calendar3/docs/todo.txt (modified) (1 diff)
- trunk/calendar3/dumprestore/build.xml (modified) (2 diffs)
- trunk/calendar3/dumprestore/properties/dumprestore.properties (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/Defs.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/HibDump.java (modified) (5 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpAdminGroups.java (modified) (3 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpAlarms.java (modified) (2 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpAll.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpCalendars.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpUserPrefs.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpUsers.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/Dumpling.java (modified) (4 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/HibRestore.java (modified) (9 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/Restore.java (modified) (5 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/RestoreGlobals.java (modified) (12 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/RestoreIntf.java (modified) (3 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/AdminGroupFieldRule.java (modified) (2 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/AlarmFieldRule.java (added)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/AlarmRule.java (added)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/CalendarFieldRule.java (added)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/CalendarRule.java (added)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/CategoryFieldRule.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/EntityFieldRule.java (modified) (6 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/EventFieldRule.java (modified) (4 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/EventRule.java (modified) (2 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/FilterRule.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/FiltersRule.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/LocationFieldRule.java (modified) (2 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/OrganizerFieldRule.java (modified) (2 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/RestoreRuleSet.java (modified) (2 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/SponsorFieldRule.java (modified) (2 diffs)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/SysparsFieldRule.java (added)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/SysparsRule.java (added)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/TimeZoneFieldRule.java (added)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/TimeZoneRule.java (added)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/UserFieldRule.java (modified) (1 diff)
- trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/UserPrefsFieldRule.java (modified) (2 diffs)
- trunk/calendar3/icalendar/src/org/bedework/icalendar/IcalCallback.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/calendar3/calFacade/src/org/bedework/calfacade/svc/BwSubscription.java
r2 r50 360 360 361 361 toStringSegment(sb); 362 sb.append(" name=");362 sb.append(", name="); 363 363 sb.append(String.valueOf(getName())); 364 sb.append(" uri=");364 sb.append(", uri="); 365 365 sb.append(String.valueOf(getUri())); 366 366 sb.append(")"); trunk/calendar3/docs/todo.txt
r48 r50 2 2 3 3 -------------------------------------------------------------------------------- 4 Web-client - ensure no unexpeected data modifications. 4 5 -------------------------------------------------------------------------------- 5 6 maxDescriptionLength out of BwEvent - into syspars? trunk/calendar3/dumprestore/build.xml
r48 r50 148 148 149 149 <echo file="${dumprestore.run.base}/resources/hibernate.properties"> 150 hibernate.query.substitutions true 'T', false 'F', yes 'Y', no 'N' 150 151 hibernate.dialect=${org.bedework.dump.arg.hibernate.dialect} 151 152 hibernate.connection.driver_class=${org.bedework.dump.arg.jdbcdriver} … … 209 210 210 211 <echo file="${dumprestore.run.base}/resources/hibernate.properties"> 212 hibernate.query.substitutions true 'T', false 'F', yes 'Y', no 'N' 211 213 hibernate.dialect=${org.bedework.restore.arg.hibernate.dialect} 212 214 hibernate.connection.driver_class=${org.bedework.restore.arg.jdbcdriver} trunk/calendar3/dumprestore/properties/dumprestore.properties
r48 r50 55 55 org.bedework.restore.arg.jdbcpw= 56 56 57 org.bedework.restore.arg.timezones= 58 57 59 # -------------------- System parameters ---------------------------- 58 60 org.bedework.restore.arg.sysname=bedework trunk/calendar3/dumprestore/src/org/bedework/dumprestore/Defs.java
r48 r50 165 165 public static final String objectAttendee = "attendee"; 166 166 /** */ 167 public static final String objectAlarm = "alarm"; 167 public static final String objectEventAlarm = "event-alarm"; 168 /** */ 169 public static final String objectTodoAlarm = "todo-alarm"; 168 170 /** */ 169 171 public static final String objectKeyword = "keyword"; // v2.3.2 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/HibDump.java
r48 r50 30 30 31 31 import org.bedework.calcore.hibernate.HibSession; 32 import org.bedework.calfacade.BwGroup; 32 33 import org.bedework.calfacade.BwSystem; 34 import org.bedework.calfacade.CalFacadeException; 35 import org.bedework.calfacade.svc.BwAdminGroup; 33 36 34 37 import org.apache.log4j.Logger; … … 80 83 81 84 public Iterator getAdminGroups() throws Throwable { 82 return getObjects("org.bedework.calfacade.svc.BwAdminGroup"); 85 sess.createQuery("from " + BwAdminGroup.class.getName()); 86 87 Collection c = sess.getList(); 88 89 Iterator it = c.iterator(); 90 while (it.hasNext()) { 91 getMembers((BwGroup)it.next()); 92 } 93 94 return c.iterator(); 83 95 } 84 96 … … 99 111 100 112 sess.createQuery("from org.bedework.calfacade.BwCalendar cal where " + 101 "cal.path=:path1 or cal.path=:path 1");113 "cal.path=:path1 or cal.path=:path2"); 102 114 sess.setString("path1", "/" + syspars.getPublicCalendarRoot()); 103 115 sess.setString("path2", "/" + syspars.getUserCalendarRoot()); … … 160 172 public Iterator getDbLastmods() throws Throwable { 161 173 return getObjects("org.bedework.calfacade.BwDbLastmod"); 174 } 175 176 /** Start a (possibly long-running) transaction. In the web environment 177 * this might do nothing. The endTransaction method should in some way 178 * check version numbers to detect concurrent updates and fail with an 179 * exception. 180 * 181 * @throws Throwable 182 */ 183 public void beginTransaction() throws Throwable { 184 sess.beginTransaction(); 185 } 186 187 /** End a (possibly long-running) transaction. In the web environment 188 * this should in some way check version numbers to detect concurrent updates 189 * and fail with an exception. 190 * 191 * @throws Throwable 192 */ 193 public void endTransaction() throws Throwable { 194 /* Just commit */ 195 sess.commit(); 162 196 } 163 197 … … 204 238 } 205 239 206 /** Start a (possibly long-running) transaction. In the web environment 207 * this might do nothing. The endTransaction method should in some way 208 * check version numbers to detect concurrent updates and fail with an 209 * exception. 210 * 211 * @throws Throwable 212 */ 213 public void beginTransaction() throws Throwable { 214 sess.beginTransaction(); 215 } 216 217 /** End a (possibly long-running) transaction. In the web environment 218 * this should in some way check version numbers to detect concurrent updates 219 * and fail with an exception. 220 * 221 * @throws Throwable 222 */ 223 public void endTransaction() throws Throwable { 224 /* Just commit */ 225 sess.commit(); 240 private void getMembers(BwGroup group) throws CalFacadeException { 241 sess.namedQuery("getGroupUserMembers"); 242 sess.setEntity("gr", group); 243 244 Collection ms = sess.getList(); 245 246 sess.namedQuery("getGroupGroupMembers"); 247 sess.setEntity("gr", group); 248 249 ms.addAll(sess.getList()); 250 251 group.setGroupMembers(ms); 226 252 } 227 253 } 228 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpAdminGroups.java
r49 r50 33 33 import org.bedework.dumprestore.dump.DumpGlobals; 34 34 35 36 37 import java.util.Collection;38 35 import java.util.Iterator; 39 36 … … 70 67 tagStart(objectAdminGroup); 71 68 72 taggedVal("groupname", ag.getAccount());73 69 taggedVal("description", ag.getDescription()); 74 70 … … 85 81 } 86 82 87 tagStart("groupMembers");83 groupTags(ag); 88 84 89 Collection mbrs = ag.getGroupMembers();90 Iterator mbrsi = mbrs.iterator();91 92 while (mbrsi.hasNext()) {93 u = (BwUser)mbrsi.next();94 95 taggedVal("groupMemberId", u.getId());96 }97 98 tagEnd("groupMembers");99 85 tagEnd(objectAdminGroup); 100 86 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpAlarms.java
r49 r50 68 68 69 69 private void dumpAlarm(BwAlarm a) throws Throwable { 70 tagStart(objectAlarm); 70 boolean eventAlarm = a instanceof BwEventAlarm; 71 72 if (eventAlarm) { 73 tagStart(objectEventAlarm); 74 } else { 75 tagStart(objectTodoAlarm); 76 } 71 77 72 78 ownedEntityTags(a); … … 84 90 taggedVal("expired", a.getExpired()); 85 91 86 if ( a instanceof BwEventAlarm) {92 if (eventAlarm) { 87 93 taggedEntityId("event", ((BwEventAlarm)a).getEvent()); 94 95 tagEnd(objectEventAlarm); 96 } else { 97 taggedEntityId("todo", ((BwTodoAlarm)a).getTodo()); 98 99 tagEnd(objectTodoAlarm); 88 100 } 89 90 if (a instanceof BwTodoAlarm) {91 taggedEntityId("todo", ((BwTodoAlarm)a).getTodo());92 }93 94 tagEnd(objectAlarm);95 101 96 102 globals.valarms++; trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpAll.java
r49 r50 138 138 di.close(); 139 139 140 /* 140 141 info("Dumping lastmods."); 141 142 di.open(); 142 143 new DumpDbLastmods(globals).dumpSection(di.getDbLastmods()); 143 144 di.close(); 145 */ 144 146 145 147 tagEnd(dumpTag); trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpCalendars.java
r49 r50 81 81 taggedVal("calendarCollection", val.getCalendarCollection()); 82 82 83 BwCalendar p = val.getCalendar();84 85 if (p != null) {86 taggedVal("parent", p.getId());87 }88 89 83 tagEnd(objectCalendar); 90 84 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpUserPrefs.java
r49 r50 69 69 tagStart(objectUserPrefs); 70 70 71 taggedVal("id", p.getId()); 72 taggedVal("owner", p.getOwner()); 71 ownedEntityTags(p); 73 72 74 73 Collection s = p.getSubscriptions(); trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpUsers.java
r49 r50 73 73 } 74 74 } 75 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/Dumpling.java
r49 r50 55 55 56 56 import org.bedework.calfacade.BwDateTime; 57 import org.bedework.calfacade.BwGroup; 57 58 import org.bedework.calfacade.BwPrincipal; 59 import org.bedework.calfacade.BwUser; 58 60 import org.bedework.calfacade.base.BwDbentity; 59 61 import org.bedework.calfacade.base.BwOwnedDbentity; … … 64 66 65 67 import java.io.Writer; 68 import java.util.Collection; 66 69 import java.util.Iterator; 67 70 … … 161 164 } 162 165 166 protected void groupTags(BwGroup val) throws Throwable { 167 principalTags(val); 168 tagStart("groupMembers"); 169 170 Collection mbrs = val.getGroupMembers(); 171 Iterator mbrsi = mbrs.iterator(); 172 173 while (mbrsi.hasNext()) { 174 BwPrincipal pr = (BwPrincipal)mbrsi.next(); 175 176 if (pr instanceof BwUser) { 177 taggedVal("groupMemberId", pr.getId()); 178 } else { 179 taggedVal("groupMemberGroupId", pr.getId()); 180 } 181 } 182 183 tagEnd("groupMembers"); 184 } 185 163 186 protected void shareableEntityTags(BwShareableDbentity entity) throws Throwable { 164 187 ownedEntityTags(entity); … … 173 196 174 197 taggedEntityId("calendar", entity.getCalendar()); 175 taggedVal("access", entity.getAccess());176 198 } 177 199 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/HibRestore.java
r48 r50 56 56 57 57 import org.bedework.calcore.hibernate.HibSession; 58 import org.bedework.calfacade.BwAlarm; 58 59 import org.bedework.calfacade.BwCalendar; 59 60 import org.bedework.calfacade.BwCategory; … … 67 68 import org.bedework.calfacade.BwUser; 68 69 import org.bedework.calfacade.BwUserInfo; 70 import org.bedework.calfacade.CalFacadeDefs; 69 71 import org.bedework.calfacade.filter.BwFilter; 70 72 import org.bedework.calfacade.svc.BwAdminGroup; … … 72 74 import org.bedework.calfacade.svc.BwAuthUser; 73 75 import org.bedework.calfacade.svc.BwPreferences; 76 import org.bedework.calfacade.svc.BwSubscription; 77 import org.bedework.calfacade.svc.BwView; 74 78 import org.bedework.dumprestore.BwDbLastmod; 75 79 … … 286 290 ps.close(); 287 291 288 if (!globals.from2p3px) {292 /* 289 293 ps = conn.prepareStatement("delete from lastmods"); 290 294 ps.executeUpdate(); 291 295 ps.close(); 292 }296 */ 293 297 294 298 ps = conn.prepareStatement("SET REFERENTIAL_INTEGRITY TRUE"); … … 325 329 */ 326 330 public void restoreUser(BwUser o) throws Throwable { 327 openSess(); 328 329 sess.save(o, new Integer(o.getId())); 330 331 closeSess(); 331 try { 332 openSess(); 333 334 sess.save(o, new Integer(o.getId())); 335 336 closeSess(); 337 } catch (Throwable t) { 338 log.error("Exception restoring user " + o); 339 throw t; 340 } 332 341 } 333 342 … … 504 513 505 514 public void restoreUserPrefs(BwPreferences o) throws Throwable { 515 openSess(); 516 517 /* Unset the subscription id - hibernate cascades cause an error 518 * We'll just have to go with a new id 519 */ 520 Iterator it = o.iterateSubscriptions(); 521 while (it.hasNext()) { 522 BwSubscription sub = (BwSubscription)it.next(); 523 sub.setId(CalFacadeDefs.unsavedItemKey); 524 525 globals.subscriptions++; 526 } 527 528 /* Same for views */ 529 it = o.iterateViews(); 530 while (it.hasNext()) { 531 BwView view = (BwView)it.next(); 532 view.setId(CalFacadeDefs.unsavedItemKey); 533 534 globals.views++; 535 } 536 537 sess.save(o, new Integer(o.getId())); 538 539 closeSess(); 540 } 541 542 public void restoreAlarm(BwAlarm o) throws Throwable { 506 543 openSess(); 507 544 … … 573 610 } 574 611 612 /* We cannot use hibernate to set the db id here as the save will cascade 613 * down all the children. 614 * 615 * <p>We save a skeleton copy of the calendar structure using direct jdbc 616 * calls then update the structure with hibernate. 617 */ 618 public void restoreCalendar(BwCalendar o) throws Throwable { 619 openSess(); 620 621 restoreCalendar(o, sess.connection()); 622 623 closeSess(); 624 } 625 575 626 /* ==================================================================== 576 627 * Private methods … … 578 629 579 630 private void restoreCalendars(BwCalendar val, Connection conn) throws Throwable { 631 restoreCalendar(val, conn); 632 633 Collection cals = val.getChildren(); 634 if (cals == null) { 635 return; 636 } 637 638 Iterator it = cals.iterator(); 639 640 while (it.hasNext()) { 641 BwCalendar cal = (BwCalendar)it.next(); 642 643 restoreCalendars(cal, conn); 644 } 645 } 646 647 /* Restore a single calendar. Don't restore children 648 */ 649 private void restoreCalendar(BwCalendar val, Connection conn) throws Throwable { 580 650 PreparedStatement ps = null; 581 651 … … 619 689 ps.close(); 620 690 } 621 }622 623 Collection cals = val.getChildren();624 if (cals == null) {625 return;626 }627 628 Iterator it = cals.iterator();629 630 while (it.hasNext()) {631 BwCalendar cal = (BwCalendar)it.next();632 633 restoreCalendars(cal, conn);634 691 } 635 692 } trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/Restore.java
r48 r50 54 54 package org.bedework.dumprestore.restore; 55 55 56 import org.bedework.appcommon.TimeZonesParser;57 56 import org.bedework.calfacade.BwCalendar; 58 57 import org.bedework.calfacade.BwUser; … … 64 63 import org.bedework.dumprestore.restore.rules.RestoreRuleSet; 65 64 66 import java.io.FileInputStream;67 65 import java.io.FileReader; 68 66 import java.util.Collection; … … 128 126 } 129 127 130 globals.timezones = new TimezonesImpl(globals.debug,131 globals.getPublicUser(),132 globals.rintf);133 globals.timezones.setDefaultTimeZoneId(globals.syspars.getTzid());134 135 128 if (globals.from2p3px) { 136 129 // System prefs are set up by run time pars 137 130 138 131 globals.rintf.restoreSyspars(globals.syspars); 139 }140 141 if (globals.timezonesFilename != null) {142 TimeZonesParser tzp = new TimeZonesParser(143 new FileInputStream(globals.timezonesFilename),144 globals.debug);145 146 Collection tzis = tzp.getTimeZones();147 148 Iterator it = tzis.iterator();149 while (it.hasNext()) {150 TimeZonesParser.TimeZoneInfo tzi = (TimeZonesParser.TimeZoneInfo)it.next();151 152 globals.timezones.saveTimeZone(tzi.tzid, tzi.timezone);153 }154 132 } 155 133 } … … 285 263 286 264 for (int i = 0; i < args.length; i++) { 287 if (args[i].equals("-debug")) { 265 if (args[i].equals("")) { 266 // null arg generated by ant 267 } else if (args[i].equals("-debug")) { 288 268 globals.debug = true; 289 269 } else if (args[i].equals("-ndebug")) { … … 386 366 globals.syspars.setUsergroupsClass(args[i]); 387 367 } else { 388 error("Illegal argument: " + args[i]);368 error("Illegal argument: '" + args[i] + "'"); 389 369 usage(); 390 370 return false; trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/RestoreGlobals.java
r48 r50 54 54 package org.bedework.dumprestore.restore; 55 55 56 import org.bedework.appcommon.TimeZonesParser; 56 57 import org.bedework.calfacade.BwAttendee; 58 import org.bedework.calfacade.BwEvent; 59 import org.bedework.calfacade.BwEventAlarm; 57 60 import org.bedework.calfacade.BwEventAnnotation; 61 import org.bedework.calfacade.BwEventObj; 58 62 import org.bedework.calfacade.BwGroup; 59 63 import org.bedework.calfacade.BwCalendar; … … 63 67 import org.bedework.calfacade.BwSponsor; 64 68 import org.bedework.calfacade.BwSystem; 69 import org.bedework.calfacade.BwTimeZone; 70 import org.bedework.calfacade.BwTodoAlarm; 65 71 import org.bedework.calfacade.BwUser; 66 72 import org.bedework.calfacade.BwUserInfo; 73 import org.bedework.calfacade.filter.BwAndFilter; 74 import org.bedework.calfacade.filter.BwCategoryFilter; 75 import org.bedework.calfacade.filter.BwCreatorFilter; 67 76 import org.bedework.calfacade.filter.BwFilter; 77 import org.bedework.calfacade.filter.BwLocationFilter; 78 import org.bedework.calfacade.filter.BwNotFilter; 79 import org.bedework.calfacade.filter.BwOrFilter; 80 import org.bedework.calfacade.filter.BwSponsorFilter; 68 81 import org.bedework.calfacade.ifs.CalTimezones; 69 82 import org.bedework.calfacade.svc.BwAdminGroup; 83 import org.bedework.calfacade.svc.BwAuthUser; 84 import org.bedework.calfacade.svc.BwPreferences; 70 85 import org.bedework.calfacade.svc.BwSubscription; 71 86 import org.bedework.calfacade.svc.BwView; 87 import org.bedework.dumprestore.BwDbLastmod; 72 88 73 89 import edu.rpi.cct.uwcal.access.Access; … … 75 91 import edu.rpi.cct.uwcal.access.Acl; 76 92 93 import java.io.FileInputStream; 77 94 import java.util.Collection; 78 95 import java.util.HashMap; … … 116 133 */ 117 134 118 /* **/119 p ublic CalTimezones timezones;135 /* Used when processing timezones */ 136 private CalTimezones tzcache; 120 137 121 138 /** True if we doing the conversion from 2.3.2 to V3 */ … … 164 181 165 182 /** For each of these we update events to have the appropriate calendar id. 166 * Any event which already has a calendar id turned up in t owcalendars.183 * Any event which already has a calendar id turned up in two calendars. 167 184 */ 168 185 public Vector calLeaves = new Vector(); … … 181 198 /** counter */ 182 199 public int filters; 200 183 201 /** counter */ 184 202 public int users; 185 203 186 204 /** counter */ 205 public int timezones; 206 207 /** counter */ 187 208 public int subscribedUsers; 188 209 189 210 /** counter */ 211 public int calendars; 212 213 /** counter */ 190 214 public int subscriptions; 191 215 192 216 /** counter */ 217 public int views; 218 219 /** counter */ 193 220 public int locations; 194 221 … … 218 245 /** counter */ 219 246 public int adminGroups; 247 220 248 /** counter */ 221 249 public int userPrefs; 250 251 /** counter */ 252 public int alarms; 222 253 223 254 /** counter */ … … 532 563 533 564 /** */ 534 public HashMap calendars = new HashMap();565 public HashMap calendarsTbl = new HashMap(); 535 566 536 567 /** Subscription we are currently restoring */ … … 540 571 public BwView curView; 541 572 542 /** Link tag-name to calendar class543 */544 public static final HashMap classes = new HashMap();545 546 573 /** Classes to stand in for 2.3.2 classes */ 547 574 public static class AliasFilter extends BwFilter { 548 575 } 549 576 577 /** Link tag-name to calendar class. For every entity tag generated by the dump 578 * there should be an entry in this table. 579 */ 580 public static final HashMap classes = new HashMap(); 581 550 582 static { 551 classes.put("aliasFilter", "org.bedework.dumprestore.restore.RestoreGlobals$AliasFilter"); 552 classes.put("andFilter", "org.bedework.calfacade.filter.BwAndFilter"); 553 classes.put("creatorFilter", "org.bedework.calfacade.filter.BwCreatorFilter"); 554 classes.put("keyFilter", "org.bedework.calfacade.filter.BwCategoryFilter"); 555 classes.put("locationFilter", "org.bedework.calfacade.filter.BwLocationFilter"); 556 classes.put("notFilter", "org.bedework.calfacade.filter.BwNotFilter"); 557 classes.put("orFilter", "org.bedework.calfacade.filter.BwOrFilter"); 558 classes.put("sponsorFilter", "org.bedework.calfacade.filter.BwSponsorFilter"); 559 560 classes.put("user", "org.bedework.calfacade.BwUser"); 561 classes.put("location", "org.bedework.calfacade.BwLocation"); 562 classes.put("sponsor", "org.bedework.calfacade.BwSponsor"); 563 classes.put("organizer", "org.bedework.calfacade.BwOrganizer"); 564 classes.put("attendee", "org.bedework.calfacade.BwAttendee"); 565 classes.put("alarm", "org.bedework.calfacade.BwAlarm"); 566 classes.put("keyword", "org.bedework.calfacade.BwCategory"); 567 classes.put("category", "org.bedework.calfacade.BwCategory"); 568 classes.put("authuser", "org.bedework.calfacade.svc.BwAuthUser"); 569 classes.put("event", "org.bedework.calfacade.BwEventObj"); 570 classes.put("adminGroup", "org.bedework.calfacade.svc.BwAdminGroup"); 571 classes.put("user-prefs", "org.bedework.calfacade.svc.BwPreferences"); 572 classes.put("dblastmod", "org.bedework.dumprestore.BwDbLastmod"); 583 classes.put("aliasFilter", AliasFilter.class.getName()); 584 classes.put("andFilter", BwAndFilter.class.getName()); 585 classes.put("creatorFilter", BwCreatorFilter.class.getName()); 586 classes.put("keyFilter", BwCategoryFilter.class.getName()); 587 classes.put("locationFilter", BwLocationFilter.class.getName()); 588 classes.put("notFilter", BwNotFilter.class.getName()); 589 classes.put("orFilter", BwOrFilter.class.getName()); 590 classes.put("sponsorFilter", BwSponsorFilter.class.getName()); 591 592 classes.put("system", BwSystem.class.getName()); 593 classes.put("user", BwUser.class.getName()); 594 classes.put("timezone", BwTimeZone.class.getName()); 595 classes.put("calendar", BwCalendar.class.getName()); 596 classes.put("location", BwLocation.class.getName()); 597 classes.put("sponsor", BwSponsor.class.getName()); 598 classes.put("organizer", BwOrganizer.class.getName()); 599 classes.put("attendee", BwAttendee.class.getName()); 600 classes.put("event-alarm", BwEventAlarm.class.getName()); 601 classes.put("todo-alarm", BwTodoAlarm.class.getName()); 602 classes.put("keyword", BwCategory.class.getName()); 603 classes.put("category", BwCategory.class.getName()); 604 classes.put("authuser", BwAuthUser.class.getName()); 605 classes.put("event", BwEventObj.class.getName()); 606 classes.put("adminGroup", BwAdminGroup.class.getName()); 607 classes.put("user-prefs", BwPreferences.class.getName()); 608 classes.put("dblastmod", BwDbLastmod.class.getName()); 573 609 574 610 /* 2.3.2 */ 575 classes.put("eventRef", "org.bedework.calfacade.BwEvent");611 classes.put("eventRef", BwEvent.class.getName()); 576 612 } 577 613 … … 580 616 581 617 RestoreGlobals() { 618 } 619 620 /** This must be called after syspars has been initialised. 621 * 622 * @return CalTimezones object 623 * @throws Throwable 624 */ 625 public CalTimezones getTzcache() throws Throwable { 626 if (tzcache != null) { 627 return tzcache; 628 } 629 630 if (syspars.getTzid() == null) { 631 throw new Exception("syspars.tzid not initialised"); 632 } 633 634 tzcache = new TimezonesImpl(debug, getPublicUser(), rintf); 635 tzcache.setDefaultTimeZoneId(syspars.getTzid()); 636 637 if (timezonesFilename != null) { 638 TimeZonesParser tzp = new TimeZonesParser( 639 new FileInputStream(timezonesFilename), 640 debug); 641 642 Collection tzis = tzp.getTimeZones(); 643 644 Iterator it = tzis.iterator(); 645 while (it.hasNext()) { 646 TimeZonesParser.TimeZoneInfo tzi = (TimeZonesParser.TimeZoneInfo)it.next(); 647 648 tzcache.saveTimeZone(tzi.tzid, tzi.timezone); 649 } 650 } 651 652 return tzcache; 582 653 } 583 654 … … 739 810 public void stats() { 740 811 System.out.println(" users: " + users); 812 System.out.println(" timezones: " + timezones); 741 813 System.out.println(" subscribedUsers: " + subscribedUsers); 814 System.out.println(" calendars: " + calendars); 742 815 System.out.println(" subscriptions: " + subscriptions); 816 System.out.println(" views: " + views); 743 817 System.out.println(" locations: " + locations); 744 818 System.out.println(" sponsors: " + sponsors); … … 753 827 System.out.println(" adminGroups: " + adminGroups); 754 828 System.out.println(" userPrefs: " + userPrefs); 829 System.out.println(" alarms: " + alarms); 755 830 System.out.println(" "); 756 831 System.out.println(" Fixed end times: " + fixedNoEndTime); trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/RestoreIntf.java
r48 r50 54 54 package org.bedework.dumprestore.restore; 55 55 56 import org.bedework.calfacade.BwAlarm; 56 57 import org.bedework.calfacade.BwCalendar; 57 58 import org.bedework.calfacade.BwCategory; … … 213 214 public void restoreUserPrefs(BwPreferences o) throws Throwable; 214 215 216 /** Restore alarm 217 * 218 * @param o Object to restore with id set 219 * @throws Throwable 220 */ 221 public void restoreAlarm(BwAlarm o) throws Throwable; 222 215 223 /** Update user. 216 224 * … … 240 248 */ 241 249 public void restoreCalendars(BwCalendar val) throws Throwable; 250 251 /** Restore a single calendar 252 * 253 * @param val 254 * @throws Throwable 255 */ 256 public void restoreCalendar(BwCalendar val) throws Throwable; 242 257 } 243 258 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/AdminGroupFieldRule.java
r49 r50 69 69 BwAdminGroup ag = (BwAdminGroup)top(); 70 70 71 if (name.equals("groupname")) { 71 if (groupTags(ag, name)) { 72 return; 73 } 74 75 if (name.equals("groupname")) { // 2.3.2 72 76 ag.setAccount(stringFld()); 73 77 } else if (name.equals("description")) { … … 77 81 } else if (name.equals("ownerid")) { 78 82 ag.setOwner(userFld()); 79 } else if (name.equals("groupMemberId")) { 80 ag.addGroupMember(userFld()); 81 } else if (name.equals("groupMemberGroupId")) { 82 ag.addGroupMember(groupFld()); 83 } else if (name.equals("groupMembers")) { 84 } else { 85 unknownTag(name); 83 86 } 84 87 } trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/CategoryFieldRule.java
r49 r50 66 66 } 67 67 68 public void field(String name) throws java.lang.Exception{68 public void field(String name) throws Exception { 69 69 BwCategory cat = (BwCategory)top(); 70 70 71 if (name.equals("id")) { 72 cat.setId(intFld()); 73 } else if (name.equals("creator")) { 74 cat.setCreator(userFld()); 75 } else if (name.equals("owner")) { 76 cat.setOwner(userFld()); 77 } else if (name.equals("access")) { 78 cat.setAccess(stringFld()); 79 } else if (name.equals("public")) { 80 cat.setPublick(booleanFld()); 81 } else if (name.equals("word")) { 71 if (shareableEntityTags(cat, name)) { 72 return; 73 } 74 75 if (name.equals("word")) { 82 76 cat.setWord(stringFld()); 83 77 } else if (name.equals("description")) { 84 78 cat.setDescription(stringFld()); 79 } else { 80 unknownTag(name); 85 81 } 86 82 } 87 83 } 88 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/EntityFieldRule.java
r49 r50 60 60 import org.bedework.calfacade.BwLocation; 61 61 import org.bedework.calfacade.BwOrganizer; 62 import org.bedework.calfacade.BwPrincipal; 62 63 import org.bedework.calfacade.BwSponsor; 63 64 import org.bedework.calfacade.BwUser; 65 import org.bedework.calfacade.base.BwDbentity; 66 import org.bedework.calfacade.base.BwOwnedDbentity; 67 import org.bedework.calfacade.base.BwShareableContainedDbentity; 68 import org.bedework.calfacade.base.BwShareableDbentity; 64 69 import org.bedework.calfacade.filter.BwFilter; 65 70 import org.bedework.dumprestore.restore.RestoreGlobals; … … 85 90 public abstract void field(String name) throws Exception; 86 91 92 protected void unknownTag(String name) throws Exception { 93 throw new Exception("Unknown tag " + name); 94 } 95 96 protected boolean principalTags(BwPrincipal entity, 97 String name) throws Exception { 98 if (taggedEntityId(entity, name)) { 99 return true; 100 } 101 102 if (name.equals("account")) { 103 entity.setAccount(stringFld()); 104 return true; 105 } 106 107 if (name.equals("created")) { 108 entity.setCreated(timestampFld()); 109 return true; 110 } 111 112 if (name.equals("logon")) { 113 entity.setLogon(timestampFld()); 114 return true; 115 } 116 117 if (name.equals("lastAccess")) { 118 entity.setLastAccess(timestampFld()); 119 return true; 120 } 121 122 if (name.equals("lastModify")) { 123 entity.setLastModify(timestampFld()); 124 return true; 125 } 126 127 if (name.equals("category-access")) { 128 entity.setCategoryAccess(stringFld()); 129 return true; 130 } 131 132 if (name.equals("location-access")) { 133 entity.setLocationAccess(stringFld()); 134 return true; 135 } 136 137 if (name.equals("sponsor-access")) { 138 entity.setSponsorAccess(stringFld()); 139 return true; 140 } 141 142 return false; 143 } 144 145 protected boolean groupTags(BwGroup entity, 146 String name) throws Exception { 147 if (principalTags(entity, name)) { 148 return true; 149 } 150 151 if (name.equals("groupMemberId")) { 152 entity.addGroupMember(userFld()); 153 return true; 154 } 155 156 if (name.equals("groupMemberGroupId")) { 157 entity.addGroupMember(groupFld()); 158 return true; 159 } 160 161 162 return false; 163 } 164 165 protected boolean shareableContainedEntityTags(BwShareableContainedDbentity entity, 166 String name) throws Exception { 167 if (shareableEntityTags(entity, name)) { 168 return true; 169 } 170 171 if (name.equals("calendar")) { 172 entity.setCalendar(calendarFld()); 173 return true; 174 } 175 176 return false; 177 } 178 179 protected boolean shareableEntityTags(BwShareableDbentity entity, 180 String name) throws Exception { 181 if (ownedEntityTags(entity, name)) { 182 return true; 183 } 184 185 if (name.equals("creator")) { 186 entity.setCreator(userFld()); 187 return true; 188 } 189 190 if (name.equals("access")) { 191 entity.setAccess(stringFld()); 192 return true; 193 } 194 195 return false; 196 } 197 198 protected boolean ownedEntityTags(BwOwnedDbentity entity, 199 String name) throws Exception { 200 if (taggedEntityId(entity, name)) { 201 return true; 202 } 203 204 if (name.equals("owner")) { 205 entity.setOwner(userFld()); 206 return true; 207 } 208 209 if (name.equals("public")) { 210 entity.setPublick(booleanFld()); 211 return true; 212 } 213 214 return false; 215 } 216 217 protected boolean taggedEntityId(BwDbentity entity, 218 String name) throws Exception { 219 if (name.equals("id")) { 220 entity.setId(intFld()); 221 return true; 222 } 223 224 if (name.equals("seq")) { 225 entity.setSeq(intFld()); 226 return true; 227 } 228 229 return false; 230 } 231 87 232 public void body(String namespace, String name, String text) 88 throws java.lang.Exception{233 throws Exception { 89 234 /* 90 235 if (globals.debug) { … … 107 252 } 108 253 109 /** Date should be of form yyyy-MM-dd, convert to yyyyMMdd 110 */ 111 112 if ((fldval.length() != 10) || 113 (fldval.charAt(4) != '-') || 114 (fldval.charAt(7) != '-')) { 115 throw new Exception("Bad value " + fldval + " for " + tagName); 116 } 117 118 String dtval = fldval.substring(0, 4) + fldval.substring(5, 7) + 119 fldval.substring(8, 10); 120 121 BwDateTime dtim = new BwDateTime(); 122 dtim.init(true, dtval, null, globals.timezones); 123 124 return dtim; 254 try { 255 /** Date should be of form yyyy-MM-dd, convert to yyyyMMdd 256 */ 257 258 if ((fldval.length() != 10) || 259 (fldval.charAt(4) != '-') || 260 (fldval.charAt(7) != '-')) { 261 throw new Exception("Bad value " + fldval + " for " + tagName); 262 } 263 264 String dtval = fldval.substring(0, 4) + fldval.substring(5, 7) + 265 fldval.substring(8, 10); 266 267 BwDateTime dtim = new BwDateTime(); 268 dtim.init(true, dtval, null, globals.getTzcache()); 269 270 return dtim; 271 } catch (Throwable t) { 272 throw new Exception(t); 273 } 125 274 } 126 275 … … 131 280 } 132 281 133 if (val == null) { 134 throw new Exception("No date for " + tagName); 135 } 136 137 /** Time should be of form hh:mm:ss, convert to Thhmmss 138 */ 139 140 if ((fldval.length() != 8) || 141 (fldval.charAt(2) != ':') || 142 (fldval.charAt(5) != ':')) { 143 throw new Exception("Bad value " + fldval + " for " + tagName); 144 } 145 146 String tmval = "T" + fldval.substring(0, 2) + fldval.substring(3, 5) + 147 fldval.substring(6, 8); 148 149 /* XXX We need to handle timezones here as well */ 150 val.init(false, val.getDtval() + tmval, 151 globals.syspars.getTzid(), globals.timezones); 282 try { 283 if (val == null) { 284 throw new Exception("No date for " + tagName); 285 } 286 287 /** Time should be of form hh:mm:ss, convert to Thhmmss 288 */ 289 290 if ((fldval.length() != 8) || 291 (fldval.charAt(2) != ':') || 292 (fldval.charAt(5) != ':')) { 293 throw new Exception("Bad value " + fldval + " for " + tagName); 294 } 295 296 String tmval = "T" + fldval.substring(0, 2) + fldval.substring(3, 5) + 297 fldval.substring(6, 8); 298 299 /* XXX We need to handle timezones here as well */ 300 val.init(false, val.getDtval() + tmval, 301 globals.syspars.getTzid(), globals.getTzcache()); 302 } catch (Throwable t) { 303 throw new Exception(t); 304 } 152 305 } 153 306 … … 184 337 } 185 338 186 BwDateTime dtim = new BwDateTime(); 187 dtim.init(false, fldval, null, globals.timezones); 188 189 return dtim; 339 try { 340 BwDateTime dtim = new BwDateTime(); 341 dtim.init(false, fldval, null, globals.getTzcache()); 342 343 return dtim; 344 } catch (Throwable t) { 345 throw new Exception(t); 346 } 190 347 } 191 348 … … 216 373 int id = Integer.parseInt(fldval); 217 374 218 return (BwCalendar)globals.calendars .get(new Integer(id));375 return (BwCalendar)globals.calendarsTbl.get(new Integer(id)); 219 376 } 220 377 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/EventFieldRule.java
r49 r50 73 73 BwEvent e = (BwEvent)top(); 74 74 75 if (name.equals("id")) { 76 e.setId(intFld()); 75 if (shareableContainedEntityTags(e, name)) { 76 return; 77 } 77 78 78 79 /* pre-hibernate fields */ 79 } elseif (name.equals("lastmod")) { // pre-hibernate80 if (name.equals("lastmod")) { // pre-hibernate 80 81 e.setLastmod(isoDateTimeFld()); 81 82 } else if (name.equals("created")) { // pre-hibernate … … 117 118 } else if (name.equals("cost")) { 118 119 e.setCost(stringFld()); 119 } else if (name.equals("creator")) {120 e.setCreator(userFld());121 120 } else if (name.equals("create-date")) { 122 121 e.setCreated(stringFld()); … … 151 150 } else if (name.equals("organizer")) { 152 151 e.setOrganizer(organizerFld()); 153 } else if (name.equals("public")) {154 e.setPublick(booleanFld());155 } else if (name.equals("seq")) {156 e.setSeq(intFld());157 152 } else if (name.equals("sequence")) { 158 153 e.setSequence(intFld()); … … 181 176 // Nothing to do. 182 177 } else { 183 warn("Unknown event field " +name);178 unknownTag(name); 184 179 } 185 180 } trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/EventRule.java
r49 r50 154 154 155 155 /* Increment the end by one day to take account of current practice */ 156 end = end.getNextDay(globals. timezones);156 end = end.getNextDay(globals.getTzcache()); 157 157 entity.setDtend(end); 158 158 } else if (!end.getDateType()) { … … 179 179 " end = " + end); 180 180 181 end.init(start.getDateType(), start.getDtval(), null, globals.timezones); 181 end.init(start.getDateType(), start.getDtval(), null, 182 globals.getTzcache()); 182 183 } 183 184 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/FilterRule.java
r49 r50 146 146 globals.nextCalKey++; 147 147 148 globals.calendars .put(new Integer(cal.getId()), cal);148 globals.calendarsTbl.put(new Integer(cal.getId()), cal); 149 149 150 150 if (entity.getParent() != null) { trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/FiltersRule.java
r49 r50 145 145 ucal.addChild(cal); 146 146 147 globals.calendars .put(new Integer(cal.getId()), cal);147 globals.calendarsTbl.put(new Integer(cal.getId()), cal); 148 148 149 149 globals.defaultCalendars.put(new Integer(u.getId()), cal); trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/LocationFieldRule.java
r49 r50 69 69 BwLocation l = (BwLocation)top(); 70 70 71 if (name.equals("id")) { 72 l.setId(intFld()); 73 } else if (name.equals("creator")) { 74 l.setCreator(userFld()); 75 } else if (name.equals("owner")) { 76 l.setOwner(userFld()); 77 } else if (name.equals("access")) { 78 l.setAccess(stringFld()); 79 } else if (name.equals("public")) { 80 l.setPublick(booleanFld()); 81 } else if (name.equals("address")) { 71 if (shareableEntityTags(l, name)) { 72 return; 73 } 74 75 if (name.equals("address")) { 82 76 l.setAddress(stringFld()); 83 77 } else if (name.equals("subaddress")) { … … 85 79 } else if (name.equals("link")) { 86 80 l.setLink(stringFld()); 81 } else { 82 unknownTag(name); 87 83 } 88 84 } trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/OrganizerFieldRule.java
r49 r50 69 69 BwOrganizer ent = (BwOrganizer)top(); 70 70 71 if (name.equals("orgid")) { 72 ent.setId(intFld()); 73 } else if (name.equals("cn")) { 71 if (taggedEntityId(ent, name)) { 72 return; 73 } 74 75 if (name.equals("cn")) { 74 76 ent.setCn(stringFld()); 75 77 } else if (name.equals("dir")) { … … 83 85 } else if (name.equals("orgseq")) { 84 86 ent.setSeq(intFld()); 87 } else { 88 unknownTag(name); 85 89 } 86 90 } trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/RestoreRuleSet.java
r49 r50 76 76 77 77 public void addRuleInstances(Digester d) { 78 d.addRule("caldata/syspars/system", new SysparsRule(globals)); 79 d.addRule("caldata/syspars/system/*", new SysparsFieldRule(globals)); 80 78 81 UserFieldRule ufr = new UserFieldRule(globals); 79 82 d.addRule("caldata/users/user", new UserRule(globals)); 80 83 d.addRule("caldata/users/user/*", ufr); 84 85 d.addRule("caldata/timezones/timezone", new TimeZoneRule(globals)); 86 d.addRule("caldata/timezones/timezone/*", new TimeZoneFieldRule(globals)); 87 88 d.addRule("caldata/calendars/calendar", new CalendarRule(globals)); 89 d.addRule("caldata/calendars/calendar/*", new CalendarFieldRule(globals)); 81 90 82 91 d.addRule("caldata/locations/location", new LocationRule(globals)); … … 122 131 d.addRule("caldata/events/event/*", efr); 123 132 133 AlarmRule alr = new AlarmRule(globals); 134 AlarmFieldRule alfr = new AlarmFieldRule(globals); 135 d.addRule("caldata/alarms/event-alarm", alr); 136 d.addRule("caldata/alarms/event-alarm/*", alfr); 137 d.addRule("caldata/alarms/todo-alarm", alr); 138 d.addRule("caldata/alarms/todo-alarm/*", alfr); 139 124 140 FilterRule fr = new FilterRule(globals); 125 141 d.addRule("caldata/filters/aliasFilter", fr); trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/SponsorFieldRule.java
r49 r50 69 69 BwSponsor s = (BwSponsor)top(); 70 70 71 if (name.equals("id")) { 72 s.setId(intFld()); 73 } else if (name.equals("creator")) { 74 s.setCreator(userFld()); 75 } else if (name.equals("owner")) { 76 s.setOwner(userFld()); 77 } else if (name.equals("access")) { 78 s.setAccess(stringFld()); 79 } else if (name.equals("public")) { 80 s.setPublick(booleanFld()); 81 } else if (name.equals("name")) { 71 if (shareableEntityTags(s, name)) { 72 return; 73 } 74 75 if (name.equals("name")) { 82 76 s.setName(stringFld()); 83 77 } else if (name.equals("phone")) { … … 87 81 } else if (name.equals("link")) { 88 82 s.setLink(stringFld()); 83 } else { 84 unknownTag(name); 89 85 } 90 86 } trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/UserFieldRule.java
r49 r50 69 69 BwUser u = (BwUser)top(); 70 70 71 if (name.equals("id")) { 72 u.setId(intFld()); 73 } else if (name.equals("account")) { 74 u.setAccount(stringFld()); 75 } else if (name.equals("created")) { 76 u.setCreated(timestampFld()); 77 } else if (name.equals("logon")) { 78 u.setLogon(timestampFld()); 79 } else if (name.equals("lastAccess")) { 80 u.setLastAccess(timestampFld()); 81 } else if (name.equals("lastModify")) { 82 u.setLastModify(timestampFld()); 83 } else if (name.equals("category-access")) { 84 u.setCategoryAccess(stringFld()); 85 } else if (name.equals("location-access")) { 86 u.setLocationAccess(stringFld()); 87 } else if (name.equals("sponsor-access")) { 88 u.setSponsorAccess(stringFld()); 71 if (principalTags(u, name)) { 72 return; 73 } 89 74 90 } elseif (name.equals("calendarid")) { // 2.3.275 if (name.equals("calendarid")) { // 2.3.2 91 76 // Fix it later 92 77 globals.subscriptionsTbl.put(u, intFld()); 78 } else { 79 unknownTag(name); 93 80 } 94 81 } 95 82 } 96 trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/UserPrefsFieldRule.java
r49 r50 71 71 BwPreferences p = (BwPreferences)top(); 72 72 73 if ( name.equals("id")) {74 p.setId(intFld());75 } else if (name.equals("owner")) {76 p.setOwner(userFld()); 77 } elseif (name.equals("email")) {73 if (ownedEntityTags(p, name)) { 74 return; 75 } 76 77 if (name.equals("email")) { 78 78 p.setEmail(stringFld()); 79 79 } else if (name.equals("default-calendar")) { … … 108 108 globals.curSub.setName(stringFld()); 109 109 } else if (name.equals("sub-owner")) { 110 if (p.get Id() != intFld()) {110 if (p.getOwner().getId() != intFld()) { 111 111 error("Subscription owners don't match for " + globals.curSub); 112 112 error(" Found owner id " + intFld() + " expected " + p); trunk/calendar3/icalendar/src/org/bedework/icalendar/IcalCallback.java
r2 r50 127 127 public URIgen getURIgen() throws CalFacadeException; 128 128 129 /** Get the t imezonescache object129 /** Get the tzproc cache object 130 130 * 131 131 * @return CalTimezones object
