Changeset 794:ff94810e0e84


Ignore:
Timestamp:
01/19/12 18:12:11 (4 months ago)
Author:
delmitz@delmitz-PC.office.nchovy.net
Branch:
default
Message:

increase adds, updates, removes speed.
modified removeOrgUnit default value.

Location:
kraken-dom/src/main/java/org/krakenapps/dom/api/impl
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • kraken-dom/src/main/java/org/krakenapps/dom/api/impl/ConfigManagerImpl.java

    r784 r794  
    1717import org.krakenapps.confdb.Config; 
    1818import org.krakenapps.confdb.ConfigDatabase; 
     19import org.krakenapps.confdb.ConfigIterator; 
    1920import org.krakenapps.confdb.ConfigService; 
    2021import org.krakenapps.confdb.ConfigTransaction; 
     
    100101 
    101102                ConfigDatabase db = getDatabase(domain); 
     103 
     104                Predicate pred = Predicates.or(preds.toArray(new Predicate[0])); 
     105                if (db.findOne(cls, pred) != null) 
     106                        throw new DOMException(alreadyExistMessage); 
     107 
    102108                ConfigTransaction xact = db.beginTransaction(); 
    103  
    104                 Iterator<Predicate> predIterator = preds.iterator(); 
    105109                Iterator<T> docIterator = docs.iterator(); 
    106110                try { 
    107                         while (docIterator.hasNext()) { 
    108                                 Predicate pred = predIterator.next(); 
    109                                 T doc = docIterator.next(); 
    110  
    111                                 if (db.findOne(cls, pred) != null) 
    112                                         throw new DOMException(alreadyExistMessage); 
    113  
    114                                 db.add(xact, doc); 
    115                         } 
    116  
     111                        while (docIterator.hasNext()) 
     112                                db.add(xact, docIterator.next()); 
    117113                        xact.commit(COMMITER, "added " + docs.size() + " " + cls.getSimpleName() + "(s)"); 
    118114                } catch (Throwable e) { 
    119115                        xact.rollback(); 
    120                         if (e instanceof DOMException) 
    121                                 throw (DOMException) e; 
    122116                        throw new RuntimeException(e); 
    123117                } 
     
    162156 
    163157                ConfigDatabase db = getDatabase(domain); 
     158 
     159                Predicate pred = Predicates.or(preds.toArray(new Predicate[0])); 
     160                if (db.findOne(cls, pred) == null) 
     161                        throw new DOMException(notFoundMessage); 
     162 
    164163                ConfigTransaction xact = db.beginTransaction(); 
    165  
    166                 Iterator<Predicate> predIterator = preds.iterator(); 
    167164                Iterator<T> docIterator = docs.iterator(); 
    168165                try { 
    169166                        while (docIterator.hasNext()) { 
    170                                 Predicate pred = predIterator.next(); 
    171                                 T doc = docIterator.next(); 
    172  
    173167                                Config c = db.findOne(cls, pred); 
    174                                 if (c == null) 
    175                                         throw new DOMException(notFoundMessage); 
    176  
    177                                 db.update(xact, c, doc, CHECK_CONFLICT); 
     168                                db.update(xact, c, docIterator.next(), CHECK_CONFLICT); 
    178169                        } 
    179170 
     
    221212 
    222213                ConfigDatabase db = getDatabase(domain); 
     214 
     215                Predicate pred = Predicates.or(preds.toArray(new Predicate[0])); 
     216                if (db.findOne(cls, pred) == null) 
     217                        throw new DOMException(notFoundMessage); 
     218 
    223219                ConfigTransaction xact = db.beginTransaction(); 
    224  
    225                 Iterator<Predicate> predIterator = preds.iterator(); 
    226220                Collection<T> docs = new ArrayList<T>(); 
    227221                try { 
    228                         while (predIterator.hasNext()) { 
    229                                 Predicate pred = predIterator.next(); 
    230  
    231                                 Config c = db.findOne(cls, pred); 
    232                                 if (c == null) 
    233                                         throw new DOMException(notFoundMessage); 
    234  
     222                        ConfigIterator it = db.find(cls, pred); 
     223                        while (it.hasNext()) { 
     224                                Config c = it.next(); 
    235225                                T doc = c.getDocument(cls, getCallback(domain)); 
    236226                                if (provider != null) 
  • kraken-dom/src/main/java/org/krakenapps/dom/api/impl/OrganizationUnitApiImpl.java

    r750 r794  
    142142 
    143143        @Override 
    144         public void removeOrganizationUnits(String domain, Collection<String> guids, boolean removeUser) { 
     144        public void removeOrganizationUnits(String domain, Collection<String> guids, boolean moveUser) { 
    145145                Set<String> orgUnitGuids = new HashSet<String>(); 
    146146                List<Predicate> preds = new ArrayList<Predicate>(); 
     
    155155                } 
    156156 
    157                 cfg.removes(domain, cls, preds, NOT_FOUND, this, removeUser, null); 
     157                cfg.removes(domain, cls, preds, NOT_FOUND, this, moveUser, null); 
    158158        } 
    159159 
    160160        @Override 
    161         public void removeOrganizationUnit(String domain, String guid, boolean removeUser) { 
     161        public void removeOrganizationUnit(String domain, String guid, boolean moveUser) { 
    162162                List<OrganizationUnit> orgUnits = getOrganizationUnitTree(getOrganizationUnit(domain, guid)); 
    163                 cfg.removes(domain, cls, getPreds(orgUnits), NOT_FOUND, this, removeUser, null); 
     163                cfg.removes(domain, cls, getPreds(orgUnits), NOT_FOUND, this, moveUser, null); 
    164164        } 
    165165 
  • kraken-dom/src/main/java/org/krakenapps/dom/api/impl/UserApiImpl.java

    r750 r794  
    3030import org.apache.felix.ipojo.annotations.Validate; 
    3131import org.krakenapps.confdb.Config; 
     32import org.krakenapps.confdb.ConfigIterator; 
    3233import org.krakenapps.confdb.ConfigTransaction; 
    3334import org.krakenapps.confdb.Predicate; 
     
    264265        @Override 
    265266        public void entityRemoving(String domain, OrganizationUnit orgUnit, ConfigTransaction xact, Object state) { 
    266                 boolean remove = (state != null) && (state instanceof Boolean) && ((Boolean) state); 
    267  
    268                 for (User user : getUsers(domain, orgUnit.getGuid(), false)) { 
    269                         Config c = xact.getDatabase().findOne(cls, getPred(user.getLoginName())); 
    270  
    271                         if (remove) { 
    272                                 xact.getDatabase().remove(xact, c, true); 
    273                         } else { 
     267                boolean move = (state != null) && (state instanceof Boolean) && ((Boolean) state); 
     268 
     269                List<Predicate> preds = new ArrayList<Predicate>(); 
     270                for (User user : getUsers(domain, orgUnit.getGuid(), false)) 
     271                        preds.add(getPred(user.getLoginName())); 
     272 
     273                ConfigIterator it = xact.getDatabase().find(cls, Predicates.or(preds.toArray(new Predicate[0]))); 
     274                while (it.hasNext()) { 
     275                        Config c = it.next(); 
     276                        User user = c.getDocument(User.class); 
     277 
     278                        if (move) { 
    274279                                user.setOrgUnit(null); 
    275280                                xact.getDatabase().update(xact, c, user, true); 
     281                        } else { 
     282                                xact.getDatabase().remove(xact, c, true); 
    276283                        } 
    277284                } 
Note: See TracChangeset for help on using the changeset viewer.