Package org.apache.openjpa.kernel

Examples of org.apache.openjpa.kernel.OpenJPAStateManager


        startTx(pm);
        RuntimeTest1 rt1 = getObject(pm);

        Date d = rt1.getDateField();

        OpenJPAStateManager sm = getStateManager(rt1, pm);
        FieldMetaData fmd = sm.getMetaData().getField("dateField");
        assertEquals(d, sm.fetchInitialField(fmd.getIndex()));

        // == should pass here since we haven't made any modifications.
        assertTrue("mutable object fails == test; should not",
            d == sm.fetchInitialField(fmd.getIndex()));

        Date d2 = new Date();
        rt1.setDateField(d2);
        assertEquals(d, sm.fetchInitialField(fmd.getIndex()));
        endTx(pm);
        assertEquals(d2, sm.fetchInitialField(fmd.getIndex()));
        assertTrue("mutable object passes == test; should not",
            d2 != sm.fetchInitialField(fmd.getIndex()));
        endEm(pm);
    }
View Full Code Here


    public void testInitialValueExceptions() {
        OpenJPAEntityManager pm = getPM();
        pm.setRestoreState(RestoreStateType.NONE);
        startTx(pm);
        RuntimeTest1 rt1 = getObject(pm);
        OpenJPAStateManager sm = getStateManager(rt1, pm);
        FieldMetaData fmd = sm.getMetaData().getField("stringField");
        try {
            sm.fetchInitialField(fmd.getIndex());
            fail("exception should be thrown by KodoSM.fetchInitialField");
        } catch (org.apache.openjpa.util.UserException e) {
            // expected case
        }
        endTx(pm);
View Full Code Here

        ModRuntimeTest1 pc = new ModRuntimeTest1();

        OpenJPAEntityManager pm = getPM(false, false);
        startTx(pm);
        pm.persist(pc);
        OpenJPAStateManager sm = getStateManager(pc, pm);
        setUpMetaData(sm.getMetaData());
        try {
            // test instance level
            Object inst = new Object();
            assertNull(sm.getImplData());
            assertNull(sm.setImplData(inst, true));
            assertEquals(inst, sm.getImplData());
            assertTrue(sm.isImplDataCacheable());
            assertEquals(inst, sm.setImplData(null, false));
            assertNull(sm.getImplData());
            assertFalse(sm.isImplDataCacheable());
            sm.setImplData(inst, false);
            assertFalse(sm.isImplDataCacheable());

            // test field level
            Object f1 = new Object();
            Object f3 = new Object();

            assertNull(sm.getImplData(1));
            assertFalse(sm.isImplDataCacheable(1));
            assertNull(sm.setImplData(1, f1));
            assertEquals(f1, sm.getImplData(1));
            assertTrue(!sm.isImplDataCacheable(1));
            assertEquals(f1, sm.setImplData(1, null));
            assertNull(sm.getImplData(1));
            assertFalse(sm.isImplDataCacheable(1));
            sm.setImplData(1, f1);

            assertNull(sm.setImplData(3, f3));
            assertEquals(f3, sm.getImplData(3));
            assertTrue(sm.isImplDataCacheable(3));
            assertEquals(f1, sm.getImplData(1));

            // this should clear field data
            endTx(pm);

            assertEquals(inst, sm.getImplData());
            assertNull(sm.getImplData(1));
            assertNull(sm.getImplData(3));

            endEm(pm);
        } finally {
            tearDownMetaData();
        }
View Full Code Here

        OpenJPAEntityManager pm = getPM(optimistic, true);
        startTx(pm);
        pm.persist(pc);
        Object oid = pm.getObjectId(pc);

        OpenJPAStateManager sm = getStateManager(pc, pm);
        assertNotNull(sm);
        setUpMetaData(sm.getMetaData());
        try {
            // set impl data
            sm.setImplData(key, value);
            assertEquals(value, sm.getImplData(key));
            endTx(pm);

            // test in nontransactional setting
            assertEquals(value, sm.getImplData(key));

            // test in next transaction
            startTx(pm);
            pc = (ModRuntimeTest1) pm.find(ModRuntimeTest1.class, oid);
            sm = getStateManager(pc, pm);
            assertNotNull(sm);
            if (pm.getOptimistic())
                assertEquals(value, sm.getImplData(key));
            else
                assertNull(sm.getImplData(key));
            endTx(pm);
            endEm(pm);
        } finally {
            tearDownMetaData();
        }

        // test in another pm for good measure
        pm = getPM(optimistic, true);
        pc = (ModRuntimeTest1) pm.find(ModRuntimeTest1.class, oid);
        sm = getStateManager(pc, pm);
        assertNotNull(sm);
        setUpMetaData(sm.getMetaData());
        try {
            sm.setImplData(key, value);
            assertEquals(value, sm.getImplData(key));

            // test in transaction; re-lookup pc to be sure it enters the trans
            startTx(pm);
            pc = (ModRuntimeTest1) pm.find(ModRuntimeTest1.class, oid);
            if (pm.getOptimistic())
                assertEquals(value, sm.getImplData(key));
            else {
                assertNull(sm.getImplData(key));
                sm.setImplData(key, value);
            }
            endTx(pm);

            // test outside of transaction
            assertEquals(value, sm.getImplData(key));
            endEm(pm);
        } finally {
            tearDownMetaData();
        }
    }
View Full Code Here

            em.createQuery("select o from UnenhancedPropertyAccess o")
                .getSingleResult();
        em.getTransaction().begin();
        try {
            Broker b = JPAFacadeHelper.toBroker(em);
            OpenJPAStateManager sm = b.getStateManager(o);
            assertEquals(PCState.PNONTRANS, sm.getPCState());
            o.setLazyField("foo");
            assertEquals(PCState.PDIRTY, sm.getPCState());
        } finally {
                em.getTransaction().rollback();
        }
    }
View Full Code Here

        // note: important the o1 is *not* in pm's cache at this point, so that
        // we know it takes another datastore trip to get o1

        // load o2 and retrieve its state manager
        OpenJPAStateManager sm = getStateManager(getO2(pm), pm);
        assertNotNull("SM is NULL", sm);

        // 'g' is the name of a 1-1 relation field to o1 in configured
        // fetch group 'g2'; make sure it is loaded
        int field = sm.getMetaData().getField("g").getIndex();
        try {
            assertTrue(sm.getLoaded().get(field));
            assertEquals(oid1,
                ((FetchGroupTestObject) sm.fetchObjectField(field)).getId());
        } catch (junit.framework.AssertionFailedError afe) {
            bug(623, afe, "One to one mappings do not work with custom "
                + "fetch groups");
        }
    }
View Full Code Here

    }

    protected void checkObject(OpenJPAEntityManager pm,
        FetchGroupTestObject o, boolean a, boolean b,
        boolean c, boolean d, boolean e, boolean f) {
        OpenJPAStateManager sm = getStateManager(o, pm);
        BitSet loaded = sm.getLoaded();

        FieldMetaData[] fmds = sm.getMetaData().getFields();
        int i = 0;
        for (; i < fmds.length; i++) {
            if (fmds[i].getName().equals("a"))
                assertEquals(a, loaded.get(i));
            else if (fmds[i].getName().equals("b"))
View Full Code Here

        FetchGroupTestObjectChild o, boolean a, boolean b,
        boolean c, boolean d, boolean e, boolean f, boolean childA,
        boolean childB, boolean childC, boolean childD) {
        checkObject(pm, o, a, b, c, d, e, f);

        OpenJPAStateManager sm = getStateManager(o, pm);
        BitSet loaded = sm.getLoaded();

        FieldMetaData[] fmds = sm.getMetaData().getFields();
        int i = 0;
        for (; i < fmds.length; i++) {
            if (fmds[i].getName().equals("childA"))
                assertEquals(childA, loaded.get(i));
            else if (fmds[i].getName().equals("childB"))
View Full Code Here

       
        DFGTest a = (DFGTest) pm.getObjectId(oid);
       
        // check the non-dfg fields
       
        OpenJPAStateManager sm = getStateManager(a,pm);
        FieldMetaData fmd = sm.getMetaData().getField("nonDFGField");
        assertTrue("nonDFGField should not be loaded",
                !sm.getLoaded().get(fmd.getIndex()));
       
        fmd = sm.getMetaData().getField("dfgField");
        assertTrue("dfgField should be loaded",
                sm.getLoaded().get(fmd.getIndex()));
       
        int val = a.getNonDFGField();
        assertTrue("nonDFGField should be loaded",
                sm.getLoaded().get(fmd.getIndex()));
        assertEquals(2, val);
       
        pm.close();
    }
View Full Code Here

    public void insert(OpenJPAStateManager sm, JDBCStore store, RowManager rm)
        throws SQLException {
        if (field.getMappedBy() != null)
            return;

        OpenJPAStateManager rel = RelationStrategies.getStateManager
            (sm.fetchObjectField(field.getIndex()), store.getContext());
        if (field.getJoinDirection() == field.JOIN_INVERSE)
            updateInverse(sm, rel, store, rm);
        else {
            Row row = field.getRow(sm, store, rm, Row.ACTION_INSERT);
View Full Code Here

TOP

Related Classes of org.apache.openjpa.kernel.OpenJPAStateManager

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.