Package org.apache.ojb.broker

Examples of org.apache.ojb.broker.PersistenceBroker


     *
     * @param products The products to store
     */
    public static void storeProducts(Product[] products)
    {
        PersistenceBroker broker = null;

        try
        {
            broker = PersistenceBrokerFactory.defaultPersistenceBroker();

            broker.beginTransaction();
            for (int idx = 0; idx < products.length; idx++)
            {
                broker.store(products[idx]);
            }
            broker.commitTransaction();
        }
        catch (PersistenceBrokerException ex)
        {
            if (broker != null)
            {
                broker.abortTransaction();
            }
            ex.printStackTrace();
        }
        finally
        {
            if (broker != null)
            {
                broker.close();
            }
        }
    }
View Full Code Here


     * @param template The product whose equal shall be found
     * @return The found product if any
     */
    public static Product findByTemplate(Product template)
    {
        PersistenceBroker broker = null;
        Product           result = null;

        try
        {
            broker = PersistenceBrokerFactory.defaultPersistenceBroker();

            QueryByCriteria query = new QueryByCriteria(template);

            result = (Product)broker.getObjectByQuery(query);
        }
        finally
        {
            if (broker != null)
            {
                broker.close();
            }
        }
        return result;
    }
View Full Code Here

     *
     * @return The products if products were found
     */
    public static Collection getExpensiveLowStockProducts()
    {
        PersistenceBroker broker  = null;
        Collection        results = null;

        try
        {
            broker = PersistenceBrokerFactory.defaultPersistenceBroker();

            Criteria criteria = new Criteria();

            criteria.addLessOrEqualThan("stock", new Integer(20));
            criteria.addGreaterOrEqualThan("price", new Double(100000.0));

            QueryByCriteria query = new QueryByCriteria(Product.class, criteria);

            results = broker.getCollectionByQuery(query);
        }
        catch (PersistenceBrokerException ex)
        {
            ex.printStackTrace();
        }
        finally
        {
            if (broker != null)
            {
                broker.close();
            }
        }
        return results;
    }
View Full Code Here

     * @param template The product to sell
     * @return Whether the product was sold
     */
    public static boolean sellOneProduct(Product template)
    {
        PersistenceBroker broker = null;
        boolean           isSold = false;

        try
        {
            broker = PersistenceBrokerFactory.defaultPersistenceBroker();

            QueryByCriteria query  = new QueryByCriteria(template);
            Product         result = (Product)broker.getObjectByQuery(query);

            if (result != null)
            {
                broker.beginTransaction();
                result.setStock(result.getStock() - 1);

                broker.store(result);
                // alternative, more performant:
                // broker.store(result, ObjectModificationDefaultImpl.UPDATE);

                broker.commitTransaction();
                isSold = true;
            }
        }
        catch (PersistenceBrokerException ex)
        {
            if (broker != null)
            {
                broker.abortTransaction();
            }
            ex.printStackTrace();
        }
        finally
        {
            if (broker != null)
            {
                broker.close();
            }
        }
        return isSold;
    }
View Full Code Here

     * @param template The product whose equal shall be deleted from the database
     * @return Whether the product was deleted
     */
    public static boolean findAndDeleteProduct(Product template)
    {
        PersistenceBroker broker    = null;
        boolean           isDeleted = false;

        try
        {
            broker = PersistenceBrokerFactory.defaultPersistenceBroker();

            QueryByCriteria query  = new QueryByCriteria(template);
            Product         result = (Product)broker.getObjectByQuery(query);

            if (result != null)
            {
                broker.beginTransaction();
                broker.delete(result);
                broker.commitTransaction();
                isDeleted = true;
            }
        }
        catch (PersistenceBrokerException ex)
        {
            if (broker != null)
            {
                broker.abortTransaction();
            }
            ex.printStackTrace();
        }
        finally
        {
            if (broker != null)
            {
                broker.close();
            }
        }
        return isDeleted;
    }
View Full Code Here

     *
     * @param product The product to delete
     */
    public static void deleteProduct(Product product)
    {
        PersistenceBroker broker = null;

        try
        {
            broker = PersistenceBrokerFactory.defaultPersistenceBroker();

            broker.beginTransaction();
            broker.delete(product);
            broker.commitTransaction();
        }
        catch (PersistenceBrokerException ex)
        {
            if (broker != null)
            {
                broker.abortTransaction();
            }
            ex.printStackTrace();
        }
        finally
        {
            if (broker != null)
            {
                broker.close();
            }
        }
    }
View Full Code Here

    /* 1. Get the PersistenceManager */
    PersistenceManager persistenceManager = pmf.getPersistenceManager();
   
    Employee e = new Employee();
    e.setId(bean.getId());
    PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();
    Identity oid = new Identity(e, broker);
   
    Employee b = new Employee();
    //  2. start transaction
    persistenceManager.currentTransaction().begin();
View Full Code Here

    /* 1. Get the PersistenceManager */
    PersistenceManager persistenceManager = pmf.getPersistenceManager();
   
    Employee e = new Employee();
    e.setId(bean.getId());
    PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();
    Identity oid = new Identity(e, broker);
   
    Employee b = new Employee();
    //  2. start transaction
    persistenceManager.currentTransaction().begin();
View Full Code Here

      /* 1. Get the PersistenceManager */
      PersistenceManager persistenceManager = pmf.getPersistenceManager();
   
      Employee e = new Employee();
      e.setId(bean.getId());
      PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();
      Identity oid = new Identity(e, broker);
   
      Employee b = new Employee();
      //  2. start transaction
      persistenceManager.currentTransaction().begin();
View Full Code Here

        int threads = 8;
        // need min 80% free memory after test campared with
        // beginning, else test fails
        int minimalFreeMemAfterTest = 80;

        PersistenceBroker broker = null;
        try
        {
            MetadataManager mm = MetadataManager.getInstance();
            // enable the per thread changes of metadata
            mm.setEnablePerThreadChanges(true);
            defaultRepository = mm.copyOfGlobalRepository();
            mm.setDescriptor(defaultRepository);

            ClassDescriptor cld;
            long memoryUseBeforeTest;
            long memoryUseAfterTest;
            try
            {
                // prepare for test
                long period = System.currentTimeMillis();
                broker = PersistenceBrokerFactory.defaultPersistenceBroker();
                cld = broker.getClassDescriptor(targetTestClass);

                // we manipulate the schema name of the class
                // thus we note the original value
                oldTestObjectString = cld.getFullTableName();
                broker.close();

                // cleanup JVM
                Runtime.getRuntime().gc();
                Thread.sleep(200);
                Runtime.getRuntime().gc();

                // start test
                long memory = Runtime.getRuntime().freeMemory();
                long totalMemory = getTotalMemory();

                int count = 0;
                for (int k = 0; k < loops; k++)
                {
                    TestCaseRunnable tct [] = new TestCaseRunnable[threads];
                    for (int i = 0; i < threads; i++)
                    {
                        if (i % 2 == 0)
                            tct[i] = new ThreadedUsingBroker(loops);
                        else
                            tct[i] = new GlobalUsingBroker(loops);
                    }
                    // run test classes
                    runTestCaseRunnables(tct);
                    ++count;
                    System.out.println("Free/total Memory after loop " + count + ":          "
                            + convertToMB(Runtime.getRuntime().freeMemory())
                            + "/" + convertToMB(getTotalMemory()) + "MB");
                }
                period = System.currentTimeMillis() - period;
                System.out.println(ClassUtils.getShortClassName(MetadataMultithreadedTest.class) + " take: "
                        + period + " ms for " + loops + " loops, creating each with " + threads + " threads");
                System.out.println("Free/total Memory before test:          "
                        + convertToMB(memory) + "/" + convertToMB(totalMemory) + "MB");
                Runtime.getRuntime().gc();
                Thread.sleep(200);
                Runtime.getRuntime().gc();
                Runtime.getRuntime().gc();

                memoryUseBeforeTest = convertToMB(memory);
                memoryUseAfterTest = convertToMB(Runtime.getRuntime().freeMemory());
                System.out.println("Free/total Memory after test and gc:   "
                        + memoryUseAfterTest
                        + "/" + convertToMB(getTotalMemory()) + "MB");
                System.out.println("Do cleanup now ...");
            }
            finally
            {
                MetadataManager.getInstance().setEnablePerThreadChanges(false);
            }
            // get new PB instance
            broker = PersistenceBrokerFactory.defaultPersistenceBroker();
            cld = broker.getClassDescriptor(targetTestClass);
            String name = cld.getFullTableName();
            assertEquals(oldTestObjectString, name);
            assertFalse(MetadataManager.getInstance().isEnablePerThreadChanges());
            double d = ((double) memoryUseAfterTest) / ((double) memoryUseBeforeTest);
            int result = (int) (d * 100);
            if (result < minimalFreeMemAfterTest)
            {
                fail("** When using a offical version of OJB, ignore this failure! **" +
                        " Memory usage after this test differs more than "+(100 - minimalFreeMemAfterTest)
                        +"% from beginning, this may indicate" +
                        " a memory leak (GC can't free unused metadata objects), but this could also be a result" +
                        " of your JVM settings. Please re-run test.");
            }
        }
        finally
        {
            if (broker != null) broker.close();
        }
    }
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.