You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ar...@apache.org on 2003/06/03 16:54:44 UTC
cvs commit: db-ojb/src/ejb/org/apache/ojb/ejb PBBaseBeanImpl.java CommonTestClient.java ArticleManagerPBBean.java ArticleManagerODMGBean.java
arminw 2003/06/03 07:54:44
Modified: src/ejb/org/apache/ojb/ejb PBBaseBeanImpl.java
CommonTestClient.java ArticleManagerPBBean.java
ArticleManagerODMGBean.java
Log:
add new test using odmg-api
and reference collection
Revision Changes Path
1.6 +23 -10 db-ojb/src/ejb/org/apache/ojb/ejb/PBBaseBeanImpl.java
Index: PBBaseBeanImpl.java
===================================================================
RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/PBBaseBeanImpl.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PBBaseBeanImpl.java 26 Apr 2003 23:18:26 -0000 1.5
+++ PBBaseBeanImpl.java 3 Jun 2003 14:54:43 -0000 1.6
@@ -57,10 +57,10 @@
import org.apache.ojb.broker.PBKey;
import org.apache.ojb.broker.PersistenceBroker;
import org.apache.ojb.broker.PersistenceBrokerException;
-import org.apache.ojb.broker.query.Query;
-import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.core.PBFactoryIF;
import org.apache.ojb.broker.core.PersistenceBrokerFactoryIF;
+import org.apache.ojb.broker.query.Query;
+import org.apache.ojb.broker.query.QueryByCriteria;
import org.apache.ojb.broker.util.logging.Logger;
import org.apache.ojb.broker.util.logging.LoggerFactory;
@@ -160,8 +160,15 @@
public int getCount(Class target)
{
PersistenceBroker broker = getBroker();
- int result = broker.getCount(new QueryByCriteria(target, null));
- broker.close();
+ int result;
+ try
+ {
+ result = broker.getCount(new QueryByCriteria(target, null));
+ }
+ finally
+ {
+ if (broker != null) broker.close();
+ }
return result;
}
@@ -171,9 +178,16 @@
public Collection getAllObjects(Class target)
{
PersistenceBroker broker = getBroker();
- Query q = new QueryByCriteria(target, null);
- Collection result = broker.getCollectionByQuery(q);
- broker.close();
+ Collection result;
+ try
+ {
+ Query q = new QueryByCriteria(target, null);
+ result = broker.getCollectionByQuery(q);
+ }
+ finally
+ {
+ if (broker != null) broker.close();
+ }
return result;
}
@@ -182,10 +196,9 @@
*/
public Object storeObject(Object object)
{
- PersistenceBroker broker = null;
+ PersistenceBroker broker = getBroker();
try
{
- broker = getBroker();
broker.store(object);
}
finally
1.2 +47 -9 db-ojb/src/ejb/org/apache/ojb/ejb/CommonTestClient.java
Index: CommonTestClient.java
===================================================================
RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/CommonTestClient.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CommonTestClient.java 3 Jun 2003 00:05:37 -0000 1.1
+++ CommonTestClient.java 3 Jun 2003 14:54:43 -0000 1.2
@@ -69,7 +69,8 @@
*/
public class CommonTestClient extends TestCase
{
- ArticleManagerPBRemote articleBean;
+ ArticleManagerPBRemote pbArticleBean;
+ ArticleManagerODMGRemote odmgArticleBean;
public CommonTestClient(String s)
{
@@ -87,13 +88,13 @@
junit.textui.TestRunner.main(arr);
}
- public void testCollectionRetrieve() throws Exception
+ public void testPBCollectionRetrieve() throws Exception
{
long timestamp = System.currentTimeMillis();
String name = "collection_test_" + timestamp;
CategoryVO cat = VOHelper.createNewCategory("category_" + timestamp);
// store new category
- cat = articleBean.storeCategory(cat);
+ cat = pbArticleBean.storeCategory(cat);
ArrayList articles = new ArrayList();
for (int i = 0; i < 5; i++)
{
@@ -101,18 +102,52 @@
// set category
art.setCategory(cat);
// store article
- art = articleBean.storeArticle(art);
+ art = pbArticleBean.storeArticle(art);
articles.add(art);
}
// set article collection
cat.setAssignedArticles(articles);
// persist updated category
- cat = articleBean.storeCategory(cat);
+ cat = pbArticleBean.storeCategory(cat);
assertNotNull(cat.getObjId());
assertNotNull(cat.getAssignedArticles());
assertEquals("Wrong number of referenced articles found", 5, cat.getAssignedArticles().size());
- Collection result = articleBean.getCategoryByName("category_" + timestamp);
+ Collection result = pbArticleBean.getCategoryByName("category_" + timestamp);
+ assertNotNull(result);
+ assertEquals(1, result.size());
+ cat = (CategoryVO) result.iterator().next();
+ Collection articlesCol = cat.getAssignedArticles();
+ assertNotNull(articlesCol);
+ assertEquals("Wrong number of referenced articles found", 5, articlesCol.size());
+ }
+
+ public void testODMGCollectionRetrieve() throws Exception
+ {
+ long timestamp = System.currentTimeMillis();
+ String name = "collection_test_" + timestamp;
+ CategoryVO cat = VOHelper.createNewCategory("category_" + timestamp);
+ // store new category
+ cat = odmgArticleBean.storeCategory(cat);
+ ArrayList articles = new ArrayList();
+ for (int i = 0; i < 5; i++)
+ {
+ ArticleVO art = VOHelper.createNewArticle(name, 1);
+ // set category
+ art.setCategory(cat);
+ // store article
+ art = odmgArticleBean.storeArticle(art);
+ articles.add(art);
+ }
+ // set article collection
+ cat.setAssignedArticles(articles);
+ // persist updated category
+ cat = odmgArticleBean.storeCategory(cat);
+ assertNotNull(cat.getObjId());
+ assertNotNull(cat.getAssignedArticles());
+ assertEquals("Wrong number of referenced articles found", 5, cat.getAssignedArticles().size());
+
+ Collection result = odmgArticleBean.getCategoryByName("category_" + timestamp);
assertNotNull(result);
assertEquals(1, result.size());
cat = (CategoryVO) result.iterator().next();
@@ -133,8 +168,11 @@
{
Object object = PortableRemoteObject.narrow(
ContextHelper.getContext().lookup(ArticleManagerPBHome.JNDI_NAME), EJBHome.class);
- articleBean = (ArticleManagerPBRemote) ((ArticleManagerPBHome) object).create();
- System.out.println("Bean found: " + articleBean);
+ pbArticleBean = (ArticleManagerPBRemote) ((ArticleManagerPBHome) object).create();
+
+ object = PortableRemoteObject.narrow(
+ ContextHelper.getContext().lookup(ArticleManagerODMGHome.JNDI_NAME), EJBHome.class);
+ odmgArticleBean = (ArticleManagerODMGRemote) ((ArticleManagerODMGHome) object).create();
}
catch (Exception e)
{
1.7 +29 -14 db-ojb/src/ejb/org/apache/ojb/ejb/ArticleManagerPBBean.java
Index: ArticleManagerPBBean.java
===================================================================
RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/ArticleManagerPBBean.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ArticleManagerPBBean.java 3 Jun 2003 00:05:37 -0000 1.6
+++ ArticleManagerPBBean.java 3 Jun 2003 14:54:43 -0000 1.7
@@ -109,14 +109,6 @@
/**
* @ejb:interface-method
*/
- public CategoryVO storeCategory(CategoryVO category)
- {
- return (CategoryVO) this.storeObject(category);
- }
-
- /**
- * @ejb:interface-method
- */
public Collection storeArticles(Collection articles)
{
return this.storeObjects(articles);
@@ -172,12 +164,35 @@
public Collection getArticles(String articleName)
{
PersistenceBroker broker = getBroker();
- Criteria criteria = new Criteria();
- if (articleName != null) criteria.addEqualTo("articleName", articleName);
- Query q = new QueryByCriteria(ArticleVO.class, criteria);
- Collection result = broker.getCollectionByQuery(q);
- broker.close();
+ Collection result;
+ try
+ {
+ Criteria criteria = new Criteria();
+ if (articleName != null) criteria.addEqualTo("articleName", articleName);
+ Query q = new QueryByCriteria(ArticleVO.class, criteria);
+ result = broker.getCollectionByQuery(q);
+ }
+ finally
+ {
+ if (broker != null) broker.close();
+ }
return result;
+ }
+
+ /**
+ * @ejb:interface-method
+ */
+ public CategoryVO storeCategory(CategoryVO category)
+ {
+ return (CategoryVO) this.storeObject(category);
+ }
+
+ /**
+ * @ejb:interface-method
+ */
+ public void deleteCategory(CategoryVO category)
+ {
+ this.deleteObject(category);
}
/**
1.6 +47 -3 db-ojb/src/ejb/org/apache/ojb/ejb/ArticleManagerODMGBean.java
Index: ArticleManagerODMGBean.java
===================================================================
RCS file: /home/cvs/db-ojb/src/ejb/org/apache/ojb/ejb/ArticleManagerODMGBean.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ArticleManagerODMGBean.java 10 Jan 2003 16:52:22 -0000 1.5
+++ ArticleManagerODMGBean.java 3 Jun 2003 14:54:43 -0000 1.6
@@ -168,9 +168,53 @@
try
{
StringBuffer buf = new StringBuffer("select allObjects from " + ArticleVO.class.getName());
- buf.append(" where articleId not null");
- if (articleName != null) buf.append(" and articleName = " + articleName);
+ // buf.append(" where articleId not null");
+ if (articleName != null)
+ buf.append(" where articleName = $1");
+ else
+ buf.append(" where articleName is null");
query.create(buf.toString());
+ if (articleName != null) query.bind(articleName);
+ return (Collection) query.execute();
+ }
+ catch (Exception e)
+ {
+ log.error("OQLQuery failed", e);
+ throw new OJBRuntimeException("OQLQuery failed", e);
+ }
+ }
+
+ /**
+ * @ejb:interface-method
+ */
+ public CategoryVO storeCategory(CategoryVO category)
+ {
+ return (CategoryVO) this.storeObject(category);
+ }
+
+ /**
+ * @ejb:interface-method
+ */
+ public void deleteCategory(CategoryVO category)
+ {
+ this.deleteObject(category);
+ }
+
+ /**
+ * @ejb:interface-method
+ */
+ public Collection getCategoryByName(String categoryName)
+ {
+ OQLQuery query = getImplementation().newOQLQuery();
+ try
+ {
+ StringBuffer buf = new StringBuffer("select allObjects from " + CategoryVO.class.getName());
+ if (categoryName != null)
+ buf.append(" where categoryName = $1");
+ else
+ buf.append(" where categoryName is null");
+ query.create(buf.toString());
+ if (categoryName != null) query.bind(categoryName);
return (Collection) query.execute();
}
catch (Exception e)