[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