Index: trunk/fmgVen/src/com/fmguler/ven/Ven.java
===================================================================
--- trunk/fmgVen/src/com/fmguler/ven/Ven.java	(revision 28)
+++ trunk/fmgVen/src/com/fmguler/ven/Ven.java	(revision 29)
@@ -45,12 +45,20 @@
     }
 
-    public List list(Class objectClass) {
-        return null;
-    }
-
     public int count() {
         return 0;
     }
 
+    /**
+     * Get the object with the specified id, of the specified objectClass type.
+     * <p>
+     * By default none of the associations will be retrieved.
+     * To include the object associations (retrieve the object graph) joins should be specified, e.g.
+     * <code>SomeObject.anotherObject</code>
+     * 
+     * @param id the id of the object to be retrieved
+     * @param objectClass the class of the object to be retrieved
+     * @param joins the set of object graphs to be included with the object
+     * @return the retrieved object including specified associations
+     */
     public Object get(int id, Class objectClass, Set joins) {
         String query = generator.generateSelectQuery(objectClass, joins);
@@ -65,4 +73,25 @@
         if (result.size() > 1) System.out.println("Ven - WARNING >> get(id) returns more than one row");
         return result.get(0);
+    }
+
+    /**
+     * List the objects of the specified objectClass type.
+     * <p>
+     * By default none of the associations will be retrieved.
+     * To include the object associations (retrieve the object graph) joins should be specified, e.g.
+     * <code>SomeObject.anotherObject</code>
+     * 
+     * @param objectClass the class of the objects to be retrieved
+     * @param joins the set of object graphs to be included with objects
+     * @return the list of objects including specified associations
+     */
+    public List list(Class objectClass, Set joins) {
+        String query = generator.generateSelectQuery(objectClass, joins);
+
+        Map paramMap = new HashMap();
+        if (debug) System.out.println("Ven - SQL: " + query);
+
+        List result = mapper.list(query, paramMap, objectClass);
+        return result;
     }
 
@@ -124,4 +153,7 @@
     //--------------------------------------------------------------------------
     //SETTERS
+    /**
+     * Set the DataSource to be used to access to the database
+     */
     public void setDataSource(DataSource dataSource) {
         if (dataSource == null) throw new RuntimeException("fmgVen - DataSource cannot be null");
@@ -130,4 +162,11 @@
     }
 
+    /**
+     * Add the domain packages that have corresponding database tables.
+     * <p>
+     * The objects in these packages are considered persistable.
+     * @param domainPackage the package of the entity classes.
+     * @return this instance to allow chaining.
+     */
     public Ven addDomainPackage(String domainPackage) {
         generator.addDomainPackage(domainPackage);
Index: trunk/fmgVen/test/com/fmguler/ven/sample/Sample.java
===================================================================
--- trunk/fmgVen/test/com/fmguler/ven/sample/Sample.java	(revision 28)
+++ trunk/fmgVen/test/com/fmguler/ven/sample/Sample.java	(revision 29)
@@ -24,4 +24,5 @@
 import java.util.Date;
 import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
@@ -40,4 +41,6 @@
         //get an object
         testGet();
+        //list the objects
+        testList();
         //delete an object
         testDelete();
@@ -51,4 +54,5 @@
      */
     public static void testSave() {
+        System.out.println("******SAVE******");
         Ven ven = getVen();
 
@@ -71,4 +75,5 @@
      */
     public static void testDelete() {
+        System.out.println("******DELETE******");
         Ven ven = getVen();
         ven.delete(2, SomeDomainObject.class);
@@ -79,4 +84,5 @@
      */
     public static void testGet() {
+        System.out.println("******GET******");
         Ven ven = getVen();
 
@@ -98,7 +104,18 @@
      */
     public static void testList() {
+        System.out.println("******LIST******");
         Ven ven = getVen();
-        List objList = ven.list(SomeDomainObject.class);
-        System.out.println(objList);
+
+        //list with includes
+        Set joins = new HashSet();
+        joins.add("SomeDomainObject.anotherDomainObjects");
+        joins.add("SomeDomainObject.anotherDomainObject");
+        List objList = ven.list(SomeDomainObject.class, joins);
+        
+        Iterator it = objList.iterator();
+        while (it.hasNext()) {
+            SomeDomainObject someDomainObject = (SomeDomainObject)it.next();
+            System.out.println(someDomainObject);
+        }
     }
 
@@ -108,6 +125,6 @@
     public static void testListByCriteria() {
         Ven ven = getVen();
-        List objList = ven.list(SomeDomainObject.class/*, criteria */);
-        System.out.println(objList);
+        //List objList = ven.list(SomeDomainObject.class/*, criteria */);
+        //System.out.println(objList);
     }
 
Index: trunk/fmgVen/test/com/fmguler/ven/sample/domain/AnotherDomainObject.java
===================================================================
--- trunk/fmgVen/test/com/fmguler/ven/sample/domain/AnotherDomainObject.java	(revision 28)
+++ trunk/fmgVen/test/com/fmguler/ven/sample/domain/AnotherDomainObject.java	(revision 29)
@@ -102,5 +102,5 @@
 
     public String toString() {
-        return id + " " + name + " " + description + " some domain object: {" + someDomainObject + "}";
+        return "{" + id + ", " + name + ", " + description + ", some domain object: " + someDomainObject + "}";
     }
 }
Index: trunk/fmgVen/test/com/fmguler/ven/sample/domain/SomeDomainObject.java
===================================================================
--- trunk/fmgVen/test/com/fmguler/ven/sample/domain/SomeDomainObject.java	(revision 28)
+++ trunk/fmgVen/test/com/fmguler/ven/sample/domain/SomeDomainObject.java	(revision 29)
@@ -112,5 +112,5 @@
 
     public String toString() {
-        return id + " " + name + " " + description + " another domain object: {" + anotherDomainObject + "} another domain objects:\n" + anotherDomainObjects;
+        return "{" + id + ", " + name + ", " + description + ", another domain object: " + anotherDomainObject + ", another domain objects: " + anotherDomainObjects + "} ";
     }
 }
