Changeset 464

Show
Ignore:
Timestamp:
05/10/06 23:19:49
Author:
douglm
Message:

Move some caldav stuff out of the test suite into the client module

Schema changes:
Added ownerid column and index and publick to organizers

alter table organizers add column ownerid int
alter table organizers add column publick char(1)
CREATE INDEX bworganizers_user ON organizers (ownerid)

Added publick to alarms

alter table alarms add column publick char(1)

More dump/restore changes:
Use an owner key of account+kind rather than db id
Move some map classes out of globals into separate class files.
Restore more stuff associated with personal use

Still need to fix up attendees.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/calendar3/calCore/resources/hbms/Organizer.hbm.xml

    r2 r464  
    1717    <version name="seq" column="seq" type="integer" /> 
    1818 
     19    <many-to-one name="owner" 
     20                 class="org.bedework.calfacade.BwUser" 
     21                 unique="true" > 
     22      <column name="ownerid" not-null="true" index="bworganizers_user" /> 
     23    </many-to-one> 
     24 
     25    <property name="publick" type="true_false" > 
     26      <column name="publick" not-null="true" /> 
     27    </property> 
     28 
    1929    <property name="cn" type="text"/> 
    2030    <property name="dir" type="text"/> 
  • trunk/calendar3/calFacade/src/org/bedework/calfacade/BwCalendar.java

    r451 r464  
    7373 *  @version 1.0 
    7474 */ 
    75 public class BwCalendar extends BwShareableContainedDbentity implements Comparable
     75public class BwCalendar extends BwShareableContainedDbentity
    7676  /** The internal name of the calendar 
    7777   */ 
     
    437437   * ==================================================================== */ 
    438438 
    439   /** Compare this calendar and an object 
    440    * 
    441    * @param  o    object to compare. 
    442    * @return int -1, 0, 1 
     439  /* (non-Javadoc) 
     440   * @see org.bedework.calfacade.base.BwDbentity#compareTo(java.lang.Object) 
    443441   */ 
    444442  public int compareTo(Object o) { 
  • trunk/calendar3/calFacade/src/org/bedework/calfacade/BwEvent.java

    r463 r464  
    347347      attendeesHelper.setOwner(val); 
    348348    } 
     349 
     350    if (getOrganizer() != null) { 
     351      getOrganizer().setOwner(val); 
     352    } 
    349353  } 
    350354 
     
    356360    if (attendeesHelper != null) { 
    357361      attendeesHelper.setPublick(val); 
     362    } 
     363 
     364    if (getOrganizer() != null) { 
     365      getOrganizer().setPublick(val); 
    358366    } 
    359367  } 
  • trunk/calendar3/calFacade/src/org/bedework/calfacade/BwOrganizer.java

    r312 r464  
    5454package org.bedework.calfacade; 
    5555 
    56 import org.bedework.calfacade.base.BwDbentity; 
     56import org.bedework.calfacade.base.BwOwnedDbentity; 
    5757 
    5858import java.util.Set; 
     
    6262 *  @author Mike Douglass   douglm@rpi.edu 
    6363 */ 
    64 public class BwOrganizer extends BwDbentity { 
     64public class BwOrganizer extends BwOwnedDbentity { 
    6565  /* Params fields */ 
    6666 
     
    8686  /** Constructor 
    8787   * 
    88    * @param id 
     88   * @param owner 
     89   * @param publick 
    8990   * @param cn 
    9091   * @param dir 
     
    9394   * @param organizerUri 
    9495   */ 
    95   public BwOrganizer(int id, 
     96  public BwOrganizer(BwUser owner, 
     97                     boolean publick, 
    9698                     String cn, 
    9799                     String dir, 
     
    99101                     String sentBy, 
    100102                     String organizerUri) { 
    101     super(id); 
     103    super(owner, publick); 
    102104    this.cn = cn; 
    103105    this.dir = dir; 
     
    190192    return organizerUri; 
    191193  } 
    192  
    193   /* * Set the events - must be a set of EventVO 
    194    * 
    195    * @param val      Set of EventVO 
    196    * / 
    197   public void setEvents(Set val) { 
    198     events = val; 
    199   } 
    200  
    201   /* * Get the events 
    202    * 
    203    * @param Set      of EventVO 
    204    * / 
    205   public Set getEvents() { 
    206     return events; 
    207   } 
    208   */ 
    209194 
    210195  /* ==================================================================== 
     
    260245 
    261246  public Object clone() { 
    262     BwOrganizer nobj = new BwOrganizer(getId(), getCn(), 
     247    BwOrganizer nobj = new BwOrganizer((BwUser)getOwner().clone(), 
     248                                       getPublick(), 
     249                                       getCn(), 
    263250                                       getDir(), 
    264251                                       getLanguage(), 
  • trunk/calendar3/caldavClientApi/src/org/bedework/caldav/client/api/CaldavClientIo.java

    r460 r464  
    5353*/ 
    5454 
    55 package org.bedework.tests.caldav
     55package org.bedework.caldav.client.api
    5656 
    5757import org.bedework.calfacade.CalFacadeException; 
  • trunk/calendar3/caldavClientApi/src/org/bedework/caldav/client/api/CaldavResp.java

    r460 r464  
    5353*/ 
    5454 
    55 package org.bedework.tests.caldav
     55package org.bedework.caldav.client.api
    5656 
    5757import org.bedework.calfacade.CalFacadeException; 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/DumpOrganizers.java

    r49 r464  
    6868    tagStart(objectOrganizer); 
    6969 
    70     taggedEntityId(o); 
     70    ownedEntityTags(o); 
    7171    taggedVal("cn", o.getCn()); 
    7272    taggedVal("dir", o.getDir()); 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/dump/dumpling/Dumpling.java

    r463 r464  
    166166 
    167167  protected void ownerKey(BwPrincipal val) throws Throwable { 
    168     taggedVal("owner-account", val.getAccount()); 
    169     taggedVal("owner-kind", val.getKind()); 
     168    tagStart("owner-key"); 
     169    taggedVal("account", val.getAccount()); 
     170    taggedVal("kind", val.getKind()); 
     171    tagEnd("owner-key"); 
    170172  } 
    171173 
     
    212214    taggedEntityId(entity); 
    213215 
    214     taggedEntityId("owner", entity.getOwner()); 
     216    //taggedEntityId("owner", entity.getOwner()); 
     217    ownerKey(entity.getOwner()); 
    215218    taggedVal("public", entity.getPublick()); 
    216219  } 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/RestoreGlobals.java

    r463 r464  
    8989 */ 
    9090public class RestoreGlobals { 
     91  /** This is not the way to use the digester. We could possibly build the xml 
     92   * rules directly from the hibernate schema or from java annotations. 
     93   * 
     94   * For the moment I just need to get this going. 
     95   */ 
     96  public boolean inOwnerKey; 
     97 
    9198  /** Set false at start of entity, set true on entity error 
    9299   */ 
     
    213220  /** Users we preserve */ 
    214221  public HashMap onlyUsersMap = new HashMap(); 
    215  
    216   /** counter */ 
    217   public static class SubscriptionsMap extends HashMap { 
    218     /** For 2.3.2 conversion 
    219      * 
    220      * @param owner 
    221      * @param calid 
    222      */ 
    223     public void put(BwUser owner, int calid) { 
    224       Integer key = new Integer(owner.getId()); 
    225  
    226       ArrayList al = (ArrayList)get(key); 
    227       if (al == null) { 
    228         al = new ArrayList(); 
    229         put(key, al); 
    230       } 
    231  
    232       al.add(new Integer(calid)); 
    233     } 
    234  
    235     /** 
    236      * @param owner 
    237      * @param sub 
    238      */ 
    239     public void put(BwUser owner, BwSubscription sub) { 
    240       Integer key = new Integer(owner.getId()); 
    241  
    242       ArrayList al = (ArrayList)get(key); 
    243       if (al == null) { 
    244         al = new ArrayList(); 
    245         put(key, al); 
    246       } 
    247  
    248       al.add(sub); 
    249     } 
    250  
    251     /** 2.3.2 
    252      * 
    253      * @param owner 
    254      * @return Collection 
    255      */ 
    256     public Collection getCalendarids(BwUser owner) { 
    257       return (Collection)get(new Integer(owner.getId())); 
    258     } 
    259  
    260     /** 
    261      * @param owner 
    262      * @return Collection 
    263      */ 
    264     public Collection getSubs(BwUser owner) { 
    265       return (Collection)get(new Integer(owner.getId())); 
    266     } 
    267  
    268     /** 
    269      * @param owner 
    270      * @param subid 
    271      * @return BwSubscription 
    272      */ 
    273     public BwSubscription getSub(BwUser owner, int subid) { 
    274       Collection subs = getSubs(owner); 
    275  
    276       if (subs == null) { 
    277         return null; 
    278       } 
    279  
    280       Iterator it = subs.iterator(); 
    281       while (it.hasNext()) { 
    282         BwSubscription sub = (BwSubscription)it.next(); 
    283         if (sub.getId() == subid) { 
    284           return sub; 
    285         } 
    286       } 
    287  
    288       return null; 
    289     } 
    290  
    291     /** 
    292      * @param owner 
    293      * @param name 
    294      * @return BwSubscription 
    295      */ 
    296     public BwSubscription getSub(BwUser owner, String name) { 
    297       Collection subs = getSubs(owner); 
    298  
    299       if (subs == null) { 
    300         return null; 
    301       } 
    302  
    303       Iterator it = subs.iterator(); 
    304       while (it.hasNext()) { 
    305         BwSubscription sub = (BwSubscription)it.next(); 
    306         if (sub.getName().equals(name)) { 
    307           return sub; 
    308         } 
    309       } 
    310  
    311       return null; 
    312     } 
    313   } 
    314222 
    315223  /** 
     
    561469  /** */ 
    562470  public AliasMap aliasTbl = new AliasMap(); 
    563   /** */ 
     471 
     472  /** < 3.1? */ 
    564473  public UserMap usersTbl = new UserMap(); 
     474 
     475  /** */ 
     476  public OwnerMap ownersTbl = new OwnerMap(); 
    565477  /** */ 
    566478  public FilterMap filtersTbl = new FilterMap(); 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/AttendeeRule.java

    r463 r464  
    7272  public void end(String ns, String name) throws Exception { 
    7373    BwAttendee entity = (BwAttendee)pop(); 
    74     globals.attendees++; 
     74    //globals.attendees++; 
    7575 
    7676    globals.attendeesTbl.put(entity); 
    7777 
     78    /* I think these just cascade when we add an event or alarm. 
    7879    try { 
    7980      if (globals.rintf != null) { 
     
    8283    } catch (Throwable t) { 
    8384      throw new Exception(t); 
    84     } 
     85    } */ 
    8586  } 
    8687} 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/EntityFieldRule.java

    r463 r464  
    212212 
    213213    if (name.equals("owner")) { 
     214      // < 3.1 
    214215      entity.setOwner(userFld()); 
     216      return true; 
     217    } 
     218 
     219    if (name.equals("owner-key")) { 
     220      // Done already by OwnerRule.end 
    215221      return true; 
    216222    } 
     
    253259 
    254260  public void end(String ns, String name) throws Exception { 
     261    if (globals.inOwnerKey) { 
     262      /* Skip any owner-key tags here */ 
     263      return; 
     264    } 
     265 
    255266    field(name); 
    256267  } 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/EventFieldRule.java

    r463 r464  
    5454package org.bedework.dumprestore.restore.rules; 
    5555 
     56import org.bedework.calfacade.BwAttendee; 
    5657import org.bedework.calfacade.BwCalendar; 
    5758import org.bedework.calfacade.BwCategory; 
     
    5960import org.bedework.calfacade.BwEventAnnotation; 
    6061import org.bedework.calfacade.BwEventObj; 
     62import org.bedework.calfacade.CalFacadeDefs; 
    6163import org.bedework.dumprestore.restore.RestoreGlobals; 
    6264 
     
    196198        // Nothing to do. 
    197199      } else if (name.equals("attendee")) { 
    198         throw new Exception("Unimplemented - attendee"); 
    199  
     200        BwAttendee att = globals.attendeesTbl.get(intFld()); 
     201 
     202        if (att == null) { 
     203          error("Missing attendee - id=" + intFld()); 
     204          globals.entityError = true; 
     205        } else { 
     206          e.addAttendee(att); 
     207          att.setId(CalFacadeDefs.unsavedItemKey); // Mark unsaved 
     208 
     209          // Count it here 
     210          globals.attendees++; 
     211        } 
    200212      } else if (name.equals("recurring")) { 
    201213        e.setRecurring(booleanFld()); 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/OrganizerFieldRule.java

    r50 r464  
    6969    BwOrganizer ent = (BwOrganizer)top(); 
    7070 
    71     if (taggedEntityId(ent, name)) { 
     71    if (ownedEntityTags(ent, name)) { 
    7272      return; 
    7373    } 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/RestoreRuleSet.java

    r463 r464  
    7676 
    7777  public void addRuleInstances(Digester d) { 
     78    d.addRule("caldata/*/owner-key", new OwnerRule(globals)); 
     79    d.addRule("caldata/*/owner-key/*", new OwnerFieldRule(globals)); 
     80 
    7881    d.addRule("caldata/syspars/system", new SysparsRule(globals)); 
    7982    d.addRule("caldata/syspars/system/*", new SysparsFieldRule(globals)); 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/UserFieldRule.java

    r59 r464  
    5555 
    5656import org.bedework.calfacade.BwUser; 
     57import org.bedework.dumprestore.restore.OwnerInfo; 
    5758import org.bedework.dumprestore.restore.RestoreGlobals; 
    5859 
     
    8081    } else if (name.equals("calendarid")) {      // XXX 2.3.2 
    8182      // Fix it later 
    82       globals.subscriptionsTbl.put(u, intFld()); 
     83      globals.subscriptionsTbl.put(OwnerInfo.makeOwnerInfo(u), intFld()); 
    8384    } else { 
    8485      unknownTag(name); 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/UserPrefsFieldRule.java

    r463 r464  
    5858import org.bedework.calfacade.svc.BwSubscription; 
    5959import org.bedework.calfacade.svc.BwView; 
     60import org.bedework.dumprestore.restore.OwnerInfo; 
    6061import org.bedework.dumprestore.restore.RestoreGlobals; 
    6162 
     
    162163    } else if (name.equals("view-sub-id")) { 
    163164      // pre 3.1 
    164       BwSubscription sub = globals.subscriptionsTbl.getSub(p.getOwner(), intFld()); 
     165      BwSubscription sub = globals.subscriptionsTbl.getSub( 
     166                           OwnerInfo.makeOwnerInfo(p.getOwner()), intFld()); 
    165167 
    166168      if (sub == null) { 
     
    171173      } 
    172174    } else if (name.equals("view-sub-name")) { 
    173       BwSubscription sub = globals.subscriptionsTbl.getSub(p.getOwner(), stringFld()); 
     175      BwSubscription sub = globals.subscriptionsTbl.getSub( 
     176                             OwnerInfo.makeOwnerInfo(p.getOwner()), stringFld()); 
    174177 
    175178      if (sub == null) { 
  • trunk/calendar3/dumprestore/src/org/bedework/dumprestore/restore/rules/UserRule.java

    r463 r464  
    8282 
    8383    globals.usersTbl.put(entity); 
     84    globals.ownersTbl.put(entity); 
    8485 
    8586    try { 
  • trunk/calendar3/icalendar/src/org/bedework/icalendar/IcalUtil.java

    r2 r464  
    111111    BwOrganizer org = new BwOrganizer(); 
    112112 
     113    org.setOwner(ev.getOwner()); 
     114    org.setPublick(ev.getPublick()); 
     115 
    113116    org.setOrganizerUri(orgProp.getValue()); 
    114117 
  • trunk/calendar3/test/src/org/bedework/tests/caldav/TestCalDav.java

    r423 r464  
    7171*/ 
    7272 
     73import org.bedework.caldav.client.api.CaldavClientIo; 
     74import org.bedework.caldav.client.api.CaldavResp; 
     75 
    7376import java.io.ByteArrayOutputStream; 
    7477import java.io.File; 
     
    109112  private static String fileName; 
    110113 
    111   private static CaldavClientIo cio; 
     114  private static CaldavClientIo cio; 
    112115 
    113116  private static class TestFilter implements FileFilter { 
  • trunk/calendar3/test/src/org/bedework/tests/calsvc/CalSvcEventsTest.java

    r2 r464  
    5858import org.bedework.calfacade.BwEventObj; 
    5959import org.bedework.calfacade.BwOrganizer; 
    60 import org.bedework.calfacade.CalFacadeDefs
     60import org.bedework.calfacade.BwUser
    6161import org.bedework.calfacade.svc.UserAuth; 
    6262 
     
    130130      } 
    131131 
    132       ev.setOrganizer(makeOrganizer(orguri1)); 
     132      ev.setOrganizer(makeOrganizer(orguri1, ev.getOwner())); 
    133133      svciUtil.getSvci(privateUser1).updateEvent(ev); 
    134134      svciUtil.close(privateUser1); 
     
    192192   * ==================================================================== */ 
    193193 
    194   private BwOrganizer makeOrganizer(String uri) { 
    195     BwOrganizer org = new BwOrganizer(CalFacadeDefs.unsavedItemKey
     194  private BwOrganizer makeOrganizer(String uri, BwUser owner) { 
     195    BwOrganizer org = new BwOrganizer(owner, false
    196196                                      null, // cn 
    197197                                      null, // dir 
  • trunk/calendar3/test/unittests/build.xml

    r2 r464  
    5454      <pathelement location="${org.bedework.calenv.jar}"/> 
    5555      <pathelement location="${org.bedework.calfacadeshared.jar}"/> 
     56      <pathelement location="${org.bedework.caldavClientApi.jar}"/> 
    5657      <pathelement location="${org.bedework.calsvci.jar}"/> 
    5758      <pathelement location="${org.bedework.calsvc.jar}"/>