[jboss-svn-commits] JBL Code SVN: r29146 - in labs/jbossrules/trunk/drools-repository/src: test/java/org/drools/repository and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 2 03:44:50 EDT 2009


Author: michael.neale at jboss.com
Date: 2009-09-02 03:44:50 -0400 (Wed, 02 Sep 2009)
New Revision: 29146

Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/UserInfo.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/UserInfoTest.java
Log:
GUVNOR-447 Inbox feature

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/UserInfo.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/UserInfo.java	2009-09-02 07:44:09 UTC (rev 29145)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/UserInfo.java	2009-09-02 07:44:50 UTC (rev 29146)
@@ -8,6 +8,13 @@
 import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.jcr.NodeIterator;
+import javax.jcr.InvalidItemStateException;
+import javax.jcr.AccessDeniedException;
+import javax.jcr.ItemExistsException;
+import javax.jcr.version.VersionException;
+import javax.jcr.nodetype.ConstraintViolationException;
+import javax.jcr.nodetype.NoSuchNodeTypeException;
+import javax.jcr.lock.LockException;
 
 /**
  * Manage access to misc. user info that we might want to store. 
@@ -15,13 +22,13 @@
  */
 public class UserInfo {
     Node userInfoNode;
-    //private RulesRepository repository;
-    //String userName;
-
+    
     public UserInfo(RulesRepository repo) throws RepositoryException {
         init(repo, repo.getSession().getUserID());
     }
 
+    UserInfo() {}
+
     void init(RulesRepository repo, String userName) throws RepositoryException {
         this.userInfoNode = getUserInfoNode(userName, repo);
     }
@@ -69,4 +76,12 @@
         public void process(Node userNode) throws RepositoryException;
     }
 
+
+    /**
+     * Persists the change (if not in a transaction of course, if in a transaction, it will wait until the boundary is hit,
+     * as per JCR standard.
+     * @throws RepositoryException
+     */
+    public void save() throws RepositoryException { userInfoNode.getParent().save(); }
+
 }

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/UserInfoTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/UserInfoTest.java	2009-09-02 07:44:09 UTC (rev 29145)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/UserInfoTest.java	2009-09-02 07:44:50 UTC (rev 29146)
@@ -29,6 +29,9 @@
 
         UserInfo info = new UserInfo(repo);
         info.setProperty("inbox", "something", new UserInfo.Val("boo"));
+        info.save();
+        info.setProperty("inbox", "something", new UserInfo.Val("boo"));
+        info.save();
 
         assertEquals("boo", info.getProperty("inbox", "something").value);
         info.setProperty("inbox", "something", new UserInfo.Val("boo2"));
@@ -74,8 +77,24 @@
         assertEquals("boo", info.getProperty("inbox", "another").value);
 
 
+        info = new UserInfo();
 
+        //check we can deal with 2 different users ! (SANITY CHECK !)
+        info.init(repo, "MrX");
+        info.setProperty("inbox", "hi", new UserInfo.Val("42"));
+        assertEquals("42", info.getProperty("inbox", "hi").value);
 
+        info.init(repo, "MrsX");
+        info.setProperty("inbox", "hi", new UserInfo.Val("43"));
+        assertEquals("43", info.getProperty("inbox", "hi").value);
+
+
+        info.init(repo, "MrX");
+        info.setProperty("inbox", "hi", new UserInfo.Val("42"));
+        assertEquals("42", info.getProperty("inbox", "hi").value);
+
+
+
     }
 
     public void testIterateOverUsers() throws Exception {



More information about the jboss-svn-commits mailing list