[jboss-svn-commits] JBL Code SVN: r13940 - 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 Aug 1 16:41:11 EDT 2007


Author: fmeyer
Date: 2007-08-01 16:41:11 -0400 (Wed, 01 Aug 2007)
New Revision: 13940

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/RulesRepository.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ArchiveItemTest.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
Log:
JBRULES-995 - JBRULES-996 Added support for query repository checking for archived assets

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-08-01 20:05:30 UTC (rev 13939)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2007-08-01 20:41:11 UTC (rev 13940)
@@ -383,9 +383,13 @@
 
             String sql = "SELECT * FROM " + AssetItem.RULE_NODE_TYPE_NAME;
             sql += " WHERE jcr:path LIKE '" + getVersionContentNode().getPath() + "/" + ASSET_FOLDER_NAME + "[%]/%'";
-            sql += " and " + fieldPredicates;
+            if ( fieldPredicates.length() > 0 ) { 
+                sql += " and " + fieldPredicates;
+            }
             
-            if ( seekArchived == false ) sql += " AND " + AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG + " = 'false'";
+            if ( seekArchived == false ) {
+                sql += " AND " + AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG + " = 'false'";
+            }
             
             Query q = node.getSession().getWorkspace().getQueryManager().createQuery( sql, Query.SQL );
             QueryResult res = q.execute();            
@@ -398,6 +402,12 @@
     public AssetItemIterator queryAssets(String fieldPredicates){
         return queryAssets( fieldPredicates, false );
     }
+    
+    
+    public AssetItemIterator listArchivedAssets () {
+        return queryAssets( AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG + " = 'true'" , true );
+    }
+    
     /**
      * This will load an iterator for assets of the given format type.
      */

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-08-01 20:05:30 UTC (rev 13939)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java	2007-08-01 20:41:11 UTC (rev 13940)
@@ -903,7 +903,28 @@
             throw new RulesRepositoryException( e );
         }
     }
+    
+    public AssetItemIterator findArchivedAssets() {
+        try {
 
+            String sql = "SELECT " + AssetItem.TITLE_PROPERTY_NAME + ", " + AssetItem.DESCRIPTION_PROPERTY_NAME + ", " + AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG + " FROM " + AssetItem.RULE_NODE_TYPE_NAME;
+            sql += " WHERE ";
+            sql += " jcr:path LIKE '/" + RULES_REPOSITORY_NAME + "/" + RULE_PACKAGE_AREA + "/%'";
+            sql += " AND " + AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG + " = 'true'";
+
+            Query q = this.session.getWorkspace().getQueryManager().createQuery( sql, Query.SQL );
+
+            QueryResult res = q.execute();
+
+            return new AssetItemIterator( res.getNodes(),
+                                          this );
+        } catch ( RepositoryException e ) {
+            System.out.println( e.getMessage() );
+            throw new RulesRepositoryException( e );
+        }
+    }
+    
+
     /**
      * This will search assets, looking for matches against the name.
      */
@@ -914,7 +935,9 @@
             sql += " WHERE " + AssetItem.TITLE_PROPERTY_NAME + " LIKE '" + name + "'";
             sql += " AND jcr:path LIKE '/" + RULES_REPOSITORY_NAME + "/" + RULE_PACKAGE_AREA + "/%'";
 
-            if ( seekArchived == false ) sql += " AND " + AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG + " = 'false'";
+            if ( seekArchived == false ) { 
+                sql += " AND " + AssetItem.CONTENT_PROPERTY_ARCHIVE_FLAG + " = 'false'";
+            }
 
             Query q = this.session.getWorkspace().getQueryManager().createQuery( sql, Query.SQL );
 
@@ -926,7 +949,6 @@
             System.out.println( e.getMessage() );
             throw new RulesRepositoryException( e );
         }
-
     }
 
     public AssetItemIterator findAssetsByName(String name) {

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ArchiveItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ArchiveItemTest.java	2007-08-01 20:05:30 UTC (rev 13939)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/ArchiveItemTest.java	2007-08-01 20:41:11 UTC (rev 13940)
@@ -15,7 +15,48 @@
     private PackageItem getDefaultPackage() {
         return getRepo().loadDefaultPackage();
     }
+    
+    public void testFindArchivedAssets() throws Exception {
+        RulesRepository repo = RepositorySessionUtil.getRepository();
 
+        repo.loadDefaultPackage().addAsset( "testFindArchivedAssets1",
+                                            "X" );
+        repo.loadDefaultPackage().addAsset( "testFindArchivedAssets2",
+                                            "X" );
+        repo.loadDefaultPackage().addAsset( "testFindArchivedAssets3",
+                                            "X" );
+        repo.loadDefaultPackage().addAsset( "testFindArchivedAssets4",
+                                            "X" );
+        
+        AssetItem item = RepositorySessionUtil.getRepository().loadDefaultPackage().loadAsset( "testFindArchivedAssets1" );
+        assertFalse( item.isArchived() );
+        item.archiveItem( true );
+        item.checkin( "archiving item 1" );
+        item = RepositorySessionUtil.getRepository().loadDefaultPackage().loadAsset( "testFindArchivedAssets1" );
+        assertTrue( item.isArchived() );
+        
+        item = RepositorySessionUtil.getRepository().loadDefaultPackage().loadAsset( "testFindArchivedAssets2" );
+        assertFalse( item.isArchived() );
+        item.archiveItem( true );
+        item.checkin( "archiving item 1" );
+        item = RepositorySessionUtil.getRepository().loadDefaultPackage().loadAsset( "testFindArchivedAssets2" );
+        assertTrue( item.isArchived() );
+
+        item = RepositorySessionUtil.getRepository().loadDefaultPackage().loadAsset( "testFindArchivedAssets3" );
+        assertFalse( item.isArchived() );
+        item.archiveItem( true );
+        item.checkin( "archiving item 1" );
+        item = RepositorySessionUtil.getRepository().loadDefaultPackage().loadAsset( "testFindArchivedAssets3" );
+        assertTrue( item.isArchived() );
+        
+        
+        AssetItemIterator it =  repo.findArchivedAssets(); 
+        
+        List list = iteratorToList( it );
+        assertEquals(3, list.size());
+        
+    }
+
     public void testArchiveBooleanFlag() throws Exception {
         AssetItem item = RepositorySessionUtil.getRepository().loadDefaultPackage().addAsset( "testArchiveBooleanFlag",
                                                                                               "yeah" );

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java	2007-08-01 20:05:30 UTC (rev 13939)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java	2007-08-01 20:41:11 UTC (rev 13940)
@@ -532,6 +532,46 @@
         
     }
     
+    public void testListArchivedAssets() throws Exception {
+        PackageItem pkg = getRepo().createPackage( "org.drools.archivedtest", "" );
+        getRepo().save();
+        
+        
+        AssetItem item = pkg.addAsset( "archivedItem1", "" );
+        item.archiveItem( true );
+        item.checkin( "la" );
+
+        item = pkg.addAsset( "archivedItem2", "wee" );
+        item.archiveItem( true );
+        item.checkin( "la" );
+        
+        item = pkg.addAsset( "archivedItem3", "wee" );
+        item.archiveItem( true );
+        item.checkin( "la" );
+        
+        item = pkg.addAsset( "NOTarchivedItem", "wee" );
+        item.checkin( "la" );
+        
+        
+        Thread.sleep( 150 );
+        
+        AssetItemIterator it = pkg.listArchivedAssets(); 
+        
+        List list = iteratorToList( it );
+        assertEquals(3, list.size());
+        assertTrue(list.get( 0 ) instanceof AssetItem);
+        assertTrue(list.get( 1 ) instanceof AssetItem);
+        assertTrue(list.get( 2 ) instanceof AssetItem);
+        
+        
+        it = pkg.queryAssets( "", true ); 
+        
+        list = iteratorToList( it );
+        assertEquals(4, list.size());
+ 
+        
+    }    
+    
     public void testSortHistoryByVersionNumber() {
         PackageItem item = new PackageItem();
         List l = new ArrayList();




More information about the jboss-svn-commits mailing list