/**
* Copyright (C) 2001-2005 France Telecom R&D
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.objectweb.speedo.runtime.query;
import java.util.Collection;
import java.util.Iterator;
import javax.jdo.PersistenceManager;
import javax.jdo.Query;
import org.objectweb.speedo.SpeedoTestHelper;
import org.objectweb.speedo.pobjects.ref.cursor.MesProduits;
import org.objectweb.util.monolog.api.BasicLevel;
/**
*
*
* @author Y.Bersihand
*/
public class TestCursor extends SpeedoTestHelper {
public TestCursor() {
super("TestCursor");
}
public TestCursor(String n) {
super(n);
}
protected String getLoggerName() {
return SpeedoTestHelper.LOG_NAME + ".TestCursor";
}
/**
* Test to check that database cursors
* are closed when closing the query and the pm.
*/
public void testCursorOpen() {
logger.log(BasicLevel.INFO, "testCursorOpen");
PersistenceManager pm = pmf.getPersistenceManager();
Query query=pm.newQuery(MesProduits.class);
query.setFilter("(catalogue.startsWith( param1))");
query.declareParameters("String param1");
Collection results = (Collection)query.execute("catalogue");
Iterator it=results.iterator() ;
MesProduits monProduit= null;
while (it.hasNext()){
monProduit = (MesProduits) it.next();
System.out.println("MesProduits catalogue* : "+monProduit.toString());
}
query.closeAll();
pm.close();
try {
logger.log(BasicLevel.DEBUG, "Wait for 10 seconds...");
Thread.sleep(10000);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
}