[jboss-svn-commits] JBL Code SVN: r9964 - 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
Mon Mar 5 05:03:17 EST 2007


Author: michael.neale at jboss.com
Date: 2007-03-05 05:03:17 -0500 (Mon, 05 Mar 2007)
New Revision: 9964

Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
Log:
JBRULES-721 and JBRULES-639

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2007-03-05 10:02:37 UTC (rev 9963)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2007-03-05 10:03:17 UTC (rev 9964)
@@ -44,10 +44,6 @@
      */
     public static final String RULE_PACKAGE_TYPE_NAME           = "drools:rulepackageNodeType";
 
-    /**
-     * The folder where functions are kept
-     */
-    public static final String FUNCTION_FOLDER_NAME             = "functions";
     
     public static final String HEADER_PROPERTY_NAME             = "drools:header";
     public static final String EXTERNAL_URI_PROPERTY_NAME             = "drools:externalURI";

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java	2007-03-05 10:02:37 UTC (rev 9963)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java	2007-03-05 10:03:17 UTC (rev 9964)
@@ -122,10 +122,8 @@
             // Setup the rule repository node
             Node repositoryNode = RulesRepository.addNodeIfNew(root, RulesRepository.RULES_REPOSITORY_NAME, "nt:folder");
                     
-            // Setup the Rule area
-            RulesRepository.addNodeIfNew(repositoryNode, RulesRepository.RULE_AREA, "nt:folder");
+
             
-            
             // Setup the RulePackageItem area        
             RulesRepository.addNodeIfNew(repositoryNode, RulesRepository.RULE_PACKAGE_AREA, "nt:folder");
             

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2007-03-05 10:02:37 UTC (rev 9963)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2007-03-05 10:03:17 UTC (rev 9964)
@@ -17,6 +17,8 @@
 import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.Value;
+import javax.jcr.query.Query;
+import javax.jcr.query.QueryResult;
 import javax.jcr.version.Version;
 
 import org.apache.log4j.Logger;
@@ -79,12 +81,7 @@
      */
     public final static String PACKAGE_SNAPSHOT_AREA = "drools:packagesnapshot_area";    
     
-    /**
-     * The name of the rule area of the repository
-     */
-    public final static String RULE_AREA = "drools:rule_area";
     
-    
     /**
      * The name of the tag area of the repository
      */
@@ -617,9 +614,7 @@
             Node rulePackageNode = folderNode.addNode(name, PackageItem.RULE_PACKAGE_TYPE_NAME);
             
             rulePackageNode.addNode( PackageItem.ASSET_FOLDER_NAME, "drools:versionableAssetFolder" );
-            rulePackageNode.addNode( PackageItem.FUNCTION_FOLDER_NAME, "drools:versionableAssetFolder" );
-            
-            
+
             rulePackageNode.setProperty(PackageItem.TITLE_PROPERTY_NAME, name);
             
                         
@@ -859,8 +854,31 @@
         }
     }
 
+    
+    /** 
+     * This will search assets, looking for matches against the name.
+     */
+    public AssetItemIterator findAssetsByName(String name) {
+        try {
+            
 
+            String sql = "SELECT drools:title, drools:description FROM " + AssetItem.RULE_NODE_TYPE_NAME;
+            sql += " WHERE drools:title LIKE '" + name + "'"; 
+            sql += " AND jcr:path LIKE '/" + RULES_REPOSITORY_NAME + "/" + RULE_PACKAGE_AREA + "/%'";
+            
+            System.out.println(sql);
+            
+            Query q = this.session.getWorkspace().getQueryManager().createQuery( sql, Query.SQL );
+            
+            QueryResult res = q.execute();            
+            return new AssetItemIterator(res.getNodes(), this);        
+        } catch ( RepositoryException e ) {
+            throw new RulesRepositoryException(e);
+        }
+        
+    }
 
+
     /**
      * @return A list of statii in the system. 
      */

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java	2007-03-05 10:02:37 UTC (rev 9963)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java	2007-03-05 10:03:17 UTC (rev 9964)
@@ -73,7 +73,44 @@
         
         
     }
+    
+    public void testFindRulesByName() throws Exception {
+        RulesRepository repo = RepositorySessionUtil.getRepository();
+        
 
+        
+        repo.loadDefaultPackage().addAsset( "findRulesByName1", "X" );
+        repo.loadDefaultPackage().addAsset( "findRulesByName2", "X" );
+        repo.save();
+        
+        
+        List list = iteratorToList(repo.findAssetsByName( "findRulesByName1" ));        
+        assertEquals(1, list.size());
+
+        list = iteratorToList(repo.findAssetsByName( "findRulesByName2" ));        
+        assertEquals(1, list.size());
+        
+
+        list = iteratorToList( repo.findAssetsByName( "findRulesByName%" ) );
+        assertEquals(2, list.size());
+        
+        
+        repo.createPackageSnapshot( "default", "testFindRulesByName" );
+        repo.save();
+
+        list = iteratorToList(repo.findAssetsByName( "findRulesByName2" ));   
+        AssetItem item = (AssetItem)list.get( 0 );
+        assertEquals("findRulesByName2", item.getName());
+        assertEquals("X", item.getDescription());
+        assertEquals(1, list.size());
+        
+
+        list = iteratorToList( repo.findAssetsByName( "findRulesByName%" ) );
+        assertEquals(2, list.size());
+
+        
+    }
+
     
     public void testLoadRuleByUUIDWithConcurrentSessions() throws Exception {
         RulesRepository repo = RepositorySessionUtil.getRepository();




More information about the jboss-svn-commits mailing list