[jboss-svn-commits] JBL Code SVN: r9467 - 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
Tue Feb 13 02:43:33 EST 2007
Author: michael.neale at jboss.com
Date: 2007-02-13 02:43:33 -0500 (Tue, 13 Feb 2007)
New Revision: 9467
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/AssetItemTest.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySessionUtil.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java
Log:
JBRULES-655 Status listing, some refactoring to make state creation explicit
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-02-13 06:36:38 UTC (rev 9466)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/PackageItem.java 2007-02-13 07:43:33 UTC (rev 9467)
@@ -139,7 +139,7 @@
ruleNode.setProperty( AssetItem.PACKAGE_NAME_PROPERTY, this.getName() );
AssetItem rule = new AssetItem( this.rulesRepository, ruleNode );
-
+
rule.updateState( StateItem.DRAFT_STATE_NAME );
if (initialCategory != null) {
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-02-13 06:36:38 UTC (rev 9466)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositoryConfigurator.java 2007-02-13 07:43:33 UTC (rev 9467)
@@ -140,6 +140,9 @@
//Setup the State area
RulesRepository.addNodeIfNew(repositoryNode, RulesRepository.STATE_AREA, "nt:folder");
+ //and we need the "Draft" state
+ RulesRepository.addNodeIfNew( repositoryNode.getNode( RulesRepository.STATE_AREA ), StateItem.DRAFT_STATE_NAME, StateItem.STATE_NODE_TYPE_NAME );
+
session.save();
}
catch(Exception e) {
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-02-13 06:36:38 UTC (rev 9466)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2007-02-13 07:43:33 UTC (rev 9467)
@@ -588,14 +588,32 @@
public StateItem getState(String name) throws RulesRepositoryException {
try {
Node folderNode = this.getAreaNode(STATE_AREA);
- Node stateNode = RulesRepository.addNodeIfNew(folderNode, name, StateItem.STATE_NODE_TYPE_NAME);
+ if (!folderNode.hasNode( name )) {
+ throw new RulesRepositoryException("The state called [" + name + "] does not exist.");
+ }
+ Node stateNode = folderNode.getNode( name );//RulesRepository.addNodeIfNew(folderNode, name, StateItem.STATE_NODE_TYPE_NAME);
return new StateItem(this, stateNode);
}
catch(Exception e) {
- log.error("Caught Exception: " + e);
+ log.error(e);
throw new RulesRepositoryException(e);
}
}
+
+ /**
+ * Create a status node of the given name.
+ */
+ public StateItem createState(String name) {
+ try {
+ Node folderNode = this.getAreaNode(STATE_AREA);
+ Node stateNode = RulesRepository.addNodeIfNew(folderNode, name, StateItem.STATE_NODE_TYPE_NAME);
+ return new StateItem(this, stateNode);
+ }
+ catch(Exception e) {
+ log.error(e);
+ throw new RulesRepositoryException(e);
+ }
+ }
/**
* This will return a category for the given category path.
@@ -766,9 +784,31 @@
+ /**
+ * @return A list of statii in the system.
+ */
+ public StateItem[] listStates() {
+
+ List states = new ArrayList();
+ NodeIterator it;
+ try {
+ it = this.getAreaNode( STATE_AREA ).getNodes();
+ while(it.hasNext()) {
+ states.add( new StateItem(this, it.nextNode()) );
+ }
+ } catch ( RepositoryException e ) {
+ log.error( e );
+ throw new RulesRepositoryException(e);
+ }
+ return (StateItem[]) states.toArray( new StateItem[states.size()] );
+ }
+
+
+
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java 2007-02-13 06:36:38 UTC (rev 9466)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/AssetItemTest.java 2007-02-13 07:43:33 UTC (rev 9467)
@@ -228,19 +228,20 @@
public void testSetStateString() {
AssetItem ruleItem1 = getDefaultPackage().addAsset("testSetStateString", "test content");
+ getRepo().createState( "TestState1" );
+
ruleItem1.updateState("TestState1");
assertNotNull(ruleItem1.getState());
assertEquals("TestState1", ruleItem1.getState().getName());
+ getRepo().createState( "TestState2" );
ruleItem1.updateState("TestState2");
assertNotNull(ruleItem1.getState());
assertEquals("TestState2", ruleItem1.getState().getName());
- }
+ ruleItem1 = getDefaultPackage().addAsset("foobar", "test description");
+
- public void testSetStateStateItem() {
- AssetItem ruleItem1 = getDefaultPackage().addAsset("foobar", "test description");
-
StateItem stateItem1 = getRepo().getState("TestState1");
ruleItem1.updateState(stateItem1);
assertNotNull(ruleItem1.getState());
@@ -253,6 +254,7 @@
}
+
public void testStatusStuff() {
AssetItem ruleItem1 = getDefaultPackage().addAsset("testGetState", "test content");
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-02-13 06:36:38 UTC (rev 9466)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/PackageItemTest.java 2007-02-13 07:43:33 UTC (rev 9467)
@@ -160,6 +160,8 @@
List rules = iteratorToList( pack.getAssets() );
assertEquals(3, rules.size());
+ getRepo().createState( "foobar" );
+
StateItem state = getRepo().getState( "foobar" );
rule1.updateState( "foobar" );
@@ -172,6 +174,7 @@
assertEquals(1, rules.size());
//now lets try an invalid state tag
+ getRepo().createState( "whee" );
rules = iteratorToList( pack.getAssetsWithStatus( getRepo().getState( "whee" ) ) );
assertEquals(0, rules.size());
@@ -182,16 +185,18 @@
//now do an update, and pull it out via state
rule1.updateContent( "new content" );
- rule1.updateState( "draft" );
+ getRepo().createState( "extractorState" );
+ rule1.updateState( "extractorState" );
rule1.checkin( "latest" );
- rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( "draft" )) );
+ rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( "extractorState" )) );
assertEquals(1, rules.size());
AssetItem rule = (AssetItem) rules.get( 0 );
assertEquals("new content", rule.getContent());
//get the previous one via state
+ getRepo().createState( "foobar" );
rules = iteratorToList( pack.getAssetsWithStatus(getRepo().getState( "foobar" )) );
assertEquals(1, rules.size());
AssetItem prior = (AssetItem) rules.get( 0 );
@@ -203,7 +208,7 @@
public void testIgnoreState() throws Exception {
PackageItem pack = getRepo().createPackage( "package testIgnoreState", "foo" );
-
+ getRepo().createState( "x" );
AssetItem rule1 = pack.addAsset( "rule number 1", "yeah man" );
rule1.updateState( "x" );
rule1.checkin( "version0" );
@@ -214,6 +219,8 @@
rule2.checkin( "version0" );
AssetItem rule3 = pack.addAsset( "rule number 3", "yes way" );
+ getRepo().createState( "disabled" );
+
rule3.updateState( "disabled" );
rule3.checkin( "version0" );
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySessionUtil.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySessionUtil.java 2007-02-13 06:36:38 UTC (rev 9466)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RepositorySessionUtil.java 2007-02-13 07:43:33 UTC (rev 9467)
@@ -30,9 +30,7 @@
config.clearRulesRepository( session );
config.setupRulesRepository( session );
-
repoInstance = new RulesRepository( session );
-
repo.set( repoInstance );
} catch ( Exception e) {
Assert.fail("Unable to initialise repository :" + e.getMessage());
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-02-13 06:36:38 UTC (rev 9466)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/RulesRepositoryTest.java 2007-02-13 07:43:33 UTC (rev 9467)
@@ -135,7 +135,9 @@
public void testGetState() {
RulesRepository rulesRepository = RepositorySessionUtil.getRepository();
-
+ StateItem state0 = rulesRepository.createState( "testGetState" );
+ assertNotNull(state0);
+ assertEquals("testGetState", state0.getName());
StateItem stateItem1 = rulesRepository.getState("testGetState");
assertNotNull(stateItem1);
assertEquals("testGetState", stateItem1.getName());
@@ -223,6 +225,17 @@
}
+ public void testListStates() {
+ RulesRepository repo = RepositorySessionUtil.getRepository();
+ StateItem[] items = repo.listStates();
+ assertTrue(items.length > 0);
+
+ repo.createState( "testListStates" );
+
+ StateItem[] items2 = repo.listStates();
+ assertEquals(items.length + 1, items2.length);
+ }
+
List iteratorToList(Iterator it) {
List list = new ArrayList();
while(it.hasNext()) {
More information about the jboss-svn-commits
mailing list