[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