Package org.apache.ojb.broker

Examples of org.apache.ojb.broker.PersistenceBroker


    /**
     * Delete a Collection of objects.
     */
    public void deleteObjects(Collection objects)
    {
        PersistenceBroker broker = null;
        try
        {
            broker = getBroker();
            this.deleteObjects(broker, objects);
        }
        finally
        {
            if (broker != null) broker.close();
        }
    }
View Full Code Here


            mm.setDescriptor(dr);

            int k = 0;
            while (k < loops)
            {
                PersistenceBroker broker = null;
                try
                {
                    broker = PersistenceBrokerFactory.defaultPersistenceBroker();
                    cld = broker.getClassDescriptor(targetTestClass);
                    String name = cld.getFullTableName();
                    assertEquals(newTestObjectString, name);
                    assertTrue(MetadataManager.getInstance().isEnablePerThreadChanges());
                }
                finally
                {
                    if (broker != null) broker.close();
                }

                try
                {
                    broker = PersistenceBrokerFactory.defaultPersistenceBroker();
                    // check made changes
                    cld = broker.getClassDescriptor(targetTestClass);
                    String name = cld.getFullTableName();
                    assertEquals(newTestObjectString, name);
                    assertTrue(MetadataManager.getInstance().isEnablePerThreadChanges());

                    // query a test object
                    Query query = new QueryByCriteria(Person.class, null, true);
                    broker.getCollectionByQuery(query);
                    // store target object
                    /*
                    store some complex objects to check if references to
                    metadata classes are cached
                    */
                    Project project = new Project();
                    project.setTitle(title);

                    Person p1 = new Person();
                    p1.setFirstname(title);
                    List l1 = new ArrayList();
                    l1.add(project);
                    p1.setProjects(l1);

                    Person p2 = new Person();
                    p2.setFirstname(title);
                    List l2 = new ArrayList();
                    l2.add(project);
                    p2.setProjects(l2);

                    Role r1 = new Role();
                    r1.setPerson(p1);
                    r1.setRoleName(title);
                    r1.setProject(project);
                    List roles1 = new ArrayList();
                    roles1.add(r1);

                    Role r2 = new Role();
                    r2.setPerson(p2);
                    r2.setRoleName(title);
                    r2.setProject(project);
                    List roles2 = new ArrayList();
                    roles2.add(r2);

                    p1.setRoles(roles1);
                    p2.setRoles(roles2);

                    Object obj = ClassHelper.newInstance(targetTestClass);

                    broker.beginTransaction();
                    broker.store(obj);
                    broker.store(p1);
                    broker.store(p2);
                    broker.commitTransaction();
                    // delete target object
                    broker.beginTransaction();
                    broker.delete(obj);
                    //broker.delete(p1);
                    //broker.delete(p2);
                    broker.commitTransaction();
                }
                finally
                {
                    if (broker != null) broker.close();
                }

                k++;
                try
                {
View Full Code Here

            this.loops = loops;
        }

        public void runTestCase()
        {
            PersistenceBroker broker = null;
            int k = 0;
            try
            {
                while (k < loops)
                {
                    try
                    {
                        MetadataManager.getInstance().setDescriptor(defaultRepository);
                        broker = PersistenceBrokerFactory.defaultPersistenceBroker();
                        ClassDescriptor cld = broker.getClassDescriptor(targetTestClass);
                        assertTrue(MetadataManager.getInstance().isEnablePerThreadChanges());
                        String name = cld.getFullTableName();
                        // this PB instance use unchanged global metadata repository
                        assertEquals(getTestObjectString(), name);
                    }
                    finally
                    {
                        if (broker != null) broker.close();
                    }
                    try
                    {
                        broker = PersistenceBrokerFactory.defaultPersistenceBroker();
                        ClassDescriptor cld = broker.getClassDescriptor(targetTestClass);
                        assertTrue(MetadataManager.getInstance().isEnablePerThreadChanges());
                        String name = cld.getFullTableName();
                        // this PB instance use unchanged global metadata repository
                        assertEquals(getTestObjectString(), name);
                        // System.out.println("Default: found "+name);

                        // query a test object
                        Query query = new QueryByCriteria(Person.class, null, true);
                        broker.getCollectionByQuery(query);
                        // store target object
                        Object obj = ClassHelper.newInstance(targetTestClass);
                        broker.beginTransaction();
                        broker.store(obj);
                        broker.commitTransaction();
                        // delete target object
                        broker.beginTransaction();
                        broker.delete(obj);
                        broker.commitTransaction();
                    }
                    finally
                    {
                        if (broker != null) broker.close();
                    }

                    k++;
                    try
                    {
View Full Code Here

    public void testTransactionFlush() throws Exception
    {
        TransactionExt tx = (TransactionExt) odmg.newTransaction();

        tx.begin();
        PersistenceBroker broker = tx.getBroker();
        ODMGZoo obj = new ODMGZoo();
        tx.lock(obj, Transaction.WRITE);
        obj.setName("testTransactionFlush");

        tx.flush();

        Criteria crit = new Criteria();
        crit.addEqualTo("name", obj.getName());
        QueryByCriteria query = QueryFactory.newQuery(ODMGZoo.class, crit);
        // we flushed all objects, thus we should found object in DB/cache
        Iterator it = broker.getIteratorByQuery(query);
        assertTrue(it.hasNext());
        assertSame(obj, it.next());
        assertFalse(it.hasNext());
        // now we abort tx, so all flushed objects shouldn't be found
        // in further queries
        tx.abort();

        tx = (TransactionExt) odmg.newTransaction();
        tx.begin();
        broker = tx.getBroker();
        QueryByIdentity query2 = new QueryByIdentity(obj);
        Object result = broker.getObjectByQuery(query2);
        tx.commit();

        assertNull("We should not find objects from aborted tx", result);
    }
View Full Code Here

        storeObjects(tx, getNewODMGZoos("testResultsAfterTransactionWithClearedCache", 5));
        storeObjects(tx, getNewProjects("testResultsAfterTransactionWithClearedCache", 2));
        tx.commit();

        //###### hack we clear cache of PB ########
        PersistenceBroker tmp = PersistenceBrokerFactory.defaultPersistenceBroker();
        tmp.clearCache();
        tmp.close();

        int odmgZoosAfter = getDBObjectCountWithNewPB(ODMGZoo.class);
        int projectsAfter = getDBObjectCountWithNewPB(Project.class);
        int odmgZoosAfterOQL = getDBObjectCountViaOqlQueryUseNewTransaction(odmg, ODMGZoo.class);
        int projectsAfterOQL = getDBObjectCountViaOqlQueryUseNewTransaction(odmg, Project.class);

        assertEquals("Wrong number of odmgZoos found", (odmgZoosBefore + 10), odmgZoosAfter);
        assertEquals("Wrong number of projects found", (projectsBefore + 5), projectsAfter);
        assertEquals("Wrong number of odmgZoos found", (odmgZoosBefore + 10), odmgZoosAfterOQL);
        assertEquals("Wrong number of projects found", (projectsBefore + 5), projectsAfterOQL);


        //we do twice
        odmgZoosBefore = getDBObjectCountWithNewPB(ODMGZoo.class);
        projectsBefore = getDBObjectCountWithNewPB(Project.class);

        //tx should be reusable
        tx.begin();
        //store
        persistentStoreObjects(database, getNewODMGZoos("testResultsAfterTransactionWithClearedCache", 5));
        persistentStoreObjects(database, getNewProjects("testResultsAfterTransactionWithClearedCache", 3));
        //store more
        storeObjects(tx, getNewODMGZoos("testResultsAfterTransactionWithClearedCache", 5));
        storeObjects(tx, getNewProjects("testResultsAfterTransactionWithClearedCache", 2));
        tx.commit();

        //###### hack we clear cache of PB ########
        tmp = PersistenceBrokerFactory.defaultPersistenceBroker();
        tmp.clearCache();
        tmp.close();

        odmgZoosAfter = getDBObjectCountWithNewPB(ODMGZoo.class);
        projectsAfter = getDBObjectCountWithNewPB(Project.class);
        odmgZoosAfterOQL = getDBObjectCountViaOqlQueryUseNewTransaction(odmg, ODMGZoo.class);
        projectsAfterOQL = getDBObjectCountViaOqlQueryUseNewTransaction(odmg, Project.class);
View Full Code Here

        return odmgZoo;
    }

    protected int getDBObjectCountWithNewPB(Class target) throws Exception
    {
        PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();
        Criteria c = new Criteria();
        Query q = new QueryByCriteria(target, c);
        int count = broker.getCount(q);
        broker.close();
        return count;
    }
View Full Code Here

    /**
     * @ejb:interface-method
     */
    public Collection getPersons(String firstname, String lastname)
    {
        PersistenceBroker broker = getBroker();
        Criteria criteria = new Criteria();
        if (firstname != null) criteria.addEqualTo("firstname", firstname);
        if (lastname != null) criteria.addEqualTo("firstname", lastname);
        Query q = new QueryByCriteria(PersonVO.class, null);
        Collection result = broker.getCollectionByQuery(q);
        broker.close();
        return result;
    }
View Full Code Here

        }
    }

    protected int getCount(Class target)
    {
        PersistenceBroker broker = getBroker();
        int result = broker.getCount(new QueryByCriteria(target, null));
        broker.close();
        return result;
    }
View Full Code Here

     * @ejb:interface-method
     */
    public Collection getAllObjects(Class target)
    {
        if(log.isDebugEnabled()) log.debug("getAllObjects was called");
        PersistenceBroker broker = getBroker();
        Query q = new QueryByCriteria(target, null);
        Collection result = broker.getCollectionByQuery(q);
        broker.close();
        return result;
    }
View Full Code Here

     * @ejb:interface-method
     */
    public Iterator iterateAllObjects(Class target)
    {
        if(log.isDebugEnabled()) log.debug("getAllObjects was called");
        PersistenceBroker broker = getBroker();
        Query q = new QueryByCriteria(target, null);
        Iterator result = broker.getIteratorByQuery(q);
        broker.close();
        return result;
    }
View Full Code Here

TOP

Related Classes of org.apache.ojb.broker.PersistenceBroker

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.