Author: mic...@jb... Date: 2006-01-16 07:37:22 -0500 (Mon, 16 Jan 2006) New Revision: 2107 Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryFactory.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManager.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepoProxyHandler.java trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/IntegrationTest.java trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RepositoryFactoryTest.java Removed: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Repository.java Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepositoryImpl.java trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/AttachmentPersistTest.java trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/LocalPersistTest.java trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RulePersistenceTest.java trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RuleSetPersistenceTest.java trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/PersistentCase.java Log: proxy to handle exceptions, stateful and stateless repo sessions supported Deleted: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Repository.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Repository.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Repository.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -1,7 +0,0 @@ -package org.drools.repository; - -public interface Repository { - - - -} Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryFactory.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryFactory.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryFactory.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -0,0 +1,47 @@ +package org.drools.repository; + +import java.lang.reflect.Proxy; + +import org.drools.repository.db.RepoProxyHandler; + +/** + * This factory class provides instances of the repository in various flavours. + * + * This is the place to start. + * + * @author <a href="mailto:mic...@gm..."> Michael Neale</a> + */ +public final class RepositoryFactory { + + /** + * The default repository. This is stateless, meaning that a continuous connection is not required. + */ + public static RepositoryManager getRepository() { + RepoProxyHandler handler = new RepoProxyHandler(); + RepositoryManager manager = getProxy( handler ); + return manager; + } + + /** + * This repository is stateful, meaning that a connection to the repository database is + * expected to be available. + * If an error occurs, the repository is invalid and will have to be created again to + * "try again". + * This version can have performance benefits in some cases. + */ + public static RepositoryManager getStatefulRepository() { + RepoProxyHandler handler = new RepoProxyHandler(true); + RepositoryManager manager = getProxy( handler ); + return manager; + } + + private static RepositoryManager getProxy(RepoProxyHandler handler) { + RepositoryManager manager = (RepositoryManager) Proxy.newProxyInstance(RepositoryFactory.class.getClassLoader(), + new Class[] {RepositoryManager.class}, + handler); + return manager; + } + + + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryFactory.java ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManager.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManager.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManager.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -0,0 +1,70 @@ +package org.drools.repository; + +import java.util.List; + +/** + * The repository manager takes care of storing and sychronising the repository + * data with the repository database. + * + * This interface defines all the operations that cane be performed on the repository. + * A client using this must be able to have a connection to the repository. + * + * @author <a href="mailto:mic...@gm..."> Michael Neale</a> + */ +public interface RepositoryManager { + + /** + * This will simply save the current version of the rule. + * If there is a previous saved version of the rule, it will be stored as a historical record. + */ + public abstract void save(RuleDef newRule); + + public abstract RuleDef loadRule(String ruleName, + long versionNumber); + + /** + * This will return a list of rules of "major versions" - these are rules that have been + * part of a ruleset version. + */ + public abstract List listRuleVersions(String ruleName); + + public abstract List listRuleSaveHistory(RuleDef rule); + + public abstract List findRulesByTag(String tag); + + /** Save the ruleset. The Ruleset will not be reloaded. */ + public abstract void save(RuleSetDef ruleSet); + + /** + * This loads a RuleSet with the appropriate workingVersionNumber applied to + * its assets. + * + * @param workingVersionNumber + * The version of the ruleset and rules you want to work on. + * @param ruleSetName + * The ruleset name to retrieve (ruleset names must be unique). + */ + public abstract RuleSetDef loadRuleSet(String ruleSetName, + long workingVersionNumber); + + public abstract RuleSetAttachment loadAttachment(String name); + + public abstract void save(RuleSetAttachment attachment); + + /** Returns List<String> of Rule set names */ + public abstract List listRuleSets(); + + public abstract void delete(RuleDef rule); + + /** + * Searches the ruleset for a rule with a certain tag. This will search ALL + * VERSIONS. + */ + public abstract List searchRulesByTag(String ruleSetName, + String tag); + + + /** This is only required for stateful Repository session. It will be ignored for stateless ones */ + public abstract void close(); + +} \ No newline at end of file Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManager.java ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepoProxyHandler.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepoProxyHandler.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepoProxyHandler.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -0,0 +1,114 @@ +package org.drools.repository.db; + +import java.lang.reflect.InvocationHandler; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +/** + * Dynamic proxy handler for all persistence operations. + * Keeps the hibernate session and transaction handling away from the repository implementation. + * + * This is the glue between the actual implementation and the interface. + * Kind of like poor mans aspects. But I couldn't justify AOP for this little thing. + * + * @author <a href="mailto:mic...@gm..."> Michael Neale</a> + */ +public class RepoProxyHandler + implements + InvocationHandler { + + + private RepositoryImpl repoImpl = new RepositoryImpl(); + private Session session = null; + private boolean stateful = false; + + + /** + * This is essentially for stateless repository access. + * Default implementation uses hibernates getCurrentSession to + * work with the current session. + */ + public RepoProxyHandler() { + } + + /** + * Allows stateful access of the repository. + * @param stateful True if stateful operation is desired. + */ + public RepoProxyHandler(boolean stateful) { + if (stateful) { + this.session = HibernateUtil.getSessionFactory().openSession(); + this.stateful = true; + } + } + + /** + * This will initialise the session to the correct state. + * Allows both stateless and stateful repository options. + */ + public Object invoke(Object proxy, + Method method, + Object[] args) throws Throwable { + + + Session session = getCurrentSession(); + + if (this.stateful && method.getName().equals("close")) { + session.close(); + return null; + } + + Transaction tx = null; + try { + tx = session.beginTransaction(); + configureSession( session ); + Object result = method.invoke(repoImpl, args); + session.flush(); + tx.commit(); + return result; + } + catch (InvocationTargetException e) { + rollback( tx ); + throw e.getTargetException(); + } + catch (Exception e) { + rollback( tx ); + throw e; + } + } + + private void rollback(Transaction tx) { + if (tx !=null) { + tx.rollback(); + } + } + + + /** + * Set the connection for the listeners to use (they use their own session). + * Enable the default filters for historical stuff + * and then provide the session to the repo implementation. + */ + private void configureSession(Session session) { + StoreEventListener.setCurrentConnection( session.connection() ); + repoImpl.enableHistoryFilter( session ); + repoImpl.injectSession( session ); + } + + + /** + * Uses a different session depending on if it is stateful or not. + */ + private Session getCurrentSession() { + if (stateful) { + return session; + } else { + return HibernateUtil.getSessionFactory().getCurrentSession(); + } + } + + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepoProxyHandler.java ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepositoryImpl.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepositoryImpl.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepositoryImpl.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -2,7 +2,8 @@ import java.util.List; -import org.drools.repository.Repository; + +import org.drools.repository.RepositoryManager; import org.drools.repository.RuleDef; import org.drools.repository.RuleSetAttachment; import org.drools.repository.RuleSetDef; @@ -17,89 +18,86 @@ */ public class RepositoryImpl implements - Repository { + RepositoryManager { - /** This will simply save the current version of the rule */ + private Session session; + + public void injectSession(Session session) { + this.session = session; + } + + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#save(org.drools.repository.RuleDef) + */ public void save(RuleDef newRule) { - Session session = getSessionNewTx(); - session.saveOrUpdate( newRule ); - - commit( session ); } + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#loadRule(java.lang.String, long) + */ public RuleDef loadRule(String ruleName, long versionNumber) { - Session session = getSessionNewTx(); + RuleDef result = (RuleDef) session.createQuery( "from RuleDef where name = :name and versionNumber = :version" ) + .setString( "name", ruleName ) + .setLong( "version", versionNumber ) + .uniqueResult(); - RuleDef result = (RuleDef) session.createQuery( "from RuleDef where name = :name and versionNumber = :version" ).setString( "name", - ruleName ).setLong( "version", - versionNumber ).uniqueResult(); - - commit( session ); return result; } + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#listRuleVersions(java.lang.String) + */ public List listRuleVersions(String ruleName) { - Session session = getSessionNewTx(); - - List result = (List) session.createQuery( "from RuleDef where name = :name order by versionNumber" ).setString( "name", - ruleName ).list(); - - commit( session ); + List result = (List) session.createQuery( "from RuleDef where name = :name order by versionNumber" ) + .setString( "name", ruleName ).list(); return result; } + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#listRuleSaveHistory(org.drools.repository.RuleDef) + */ public List listRuleSaveHistory(RuleDef rule) { - Session session = getSessionNewTx(); disableHistoryFilter( session ); List result = (List) session.createQuery( "from RuleDef where historicalId = :id" ).setLong( "id", rule.getId().longValue() ).list(); enableHistoryFilter( session ); - commit( session ); return result; } + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#findRulesByTag(java.lang.String) + */ public List findRulesByTag(String tag) { - Session session = getSessionNewTx(); List result = session.createQuery( "from RuleDef as rule " + "join rule.tags as tags " + "where tags.tag = :tag" ).setString( "tag", tag ).list(); - commit( session ); return result; } - /** Save the ruleset. The Ruleset will not be reloaded. */ + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#save(org.drools.repository.RuleSetDef) + */ public void save(RuleSetDef ruleSet) { - Session session = getSessionNewTx(); session.saveOrUpdate( ruleSet ); - commit( session ); } - /** - * This loads a RuleSet with the appropriate workingVersionNumber applied to - * its assets. - * - * @param workingVersionNumber - * The version of the ruleset and rules you want to work on. - * @param ruleSetName - * The ruleset name to retrieve (ruleset names must be unique). + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#loadRuleSet(java.lang.String, long) */ public RuleSetDef loadRuleSet(String ruleSetName, long workingVersionNumber) { - Session session = getSessionNewTx(); - - enableVersionFilter( workingVersionNumber, + enableWorkingVersionFilter( workingVersionNumber, session ); RuleSetDef def = loadRuleSetByName( ruleSetName, session ); def.setWorkingVersionNumber( workingVersionNumber ); - disableVersionFilter( session ); - commit( session ); + disableWorkingVersionFilter( session ); return def; } @@ -110,83 +108,77 @@ return def; } + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#loadAttachment(java.lang.String) + */ public RuleSetAttachment loadAttachment(String name) { - Session session = getSessionNewTx(); - RuleSetAttachment at = (RuleSetAttachment) session.createQuery( "from RuleSetAttachment where name = :name" ).setString( "name", - name ).uniqueResult(); - commit( session ); + RuleSetAttachment at = (RuleSetAttachment) session.createQuery( "from RuleSetAttachment where name = :name" ) + .setString( "name",name ).uniqueResult(); return at; } + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#save(org.drools.repository.RuleSetAttachment) + */ public void save(RuleSetAttachment attachment) { - Session session = getSessionNewTx(); session.saveOrUpdate( attachment ); - commit( session ); } - /** Returns List<String> of Rule set names */ + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#listRuleSets() + */ public List listRuleSets() { - Session session = getSessionNewTx(); List list = session.createQuery( "select distinct name from RuleSetDef where name is not null" ).list(); - commit( session ); return list; } + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#delete(org.drools.repository.RuleDef) + */ public void delete(RuleDef rule) { - Session session = getSessionNewTx(); session.delete( rule ); - commit( session ); } - /** - * Searches the ruleset for a rule with a certain tag. This will search ALL - * VERSIONS. + /* (non-Javadoc) + * @see org.drools.repository.db.RepositoryManager#searchRulesByTag(java.lang.String, java.lang.String) */ public List searchRulesByTag(String ruleSetName, String tag) { - Session session = getSessionNewTx(); - RuleSetDef def = loadRuleSetByName( ruleSetName, session ); List list = session.createFilter( def.getRules(), "where this.tags.tag = :tag" ).setString( "tag", tag ).list(); - commit( session ); - session.close(); + return list; } - private void commit(Session session) { - session.getTransaction().commit(); - } - private Session getSessionNewTx() { - Session session = HibernateUtil.getSessionFactory().getCurrentSession(); - - session.beginTransaction(); - StoreEventListener.setCurrentConnection( session.connection() ); - enableHistoryFilter( session ); - - return session; - } - - private void enableHistoryFilter(Session session) { + ////////////////////////// + // Filters follow + ////////////////////////// + void enableHistoryFilter(Session session) { session.enableFilter( "historyFilter" ).setParameter( "viewHistory", Boolean.FALSE ); } - private void disableHistoryFilter(Session session) { + void disableHistoryFilter(Session session) { session.disableFilter( "historyFilter" ); } - private void enableVersionFilter(long workingVersionNumber, + void enableWorkingVersionFilter(long workingVersionNumber, Session session) { session.enableFilter( "workingVersionFilter" ).setParameter( "filteredVersionNumber", new Long( workingVersionNumber ) ); } - private void disableVersionFilter(Session session) { + void disableWorkingVersionFilter(Session session) { session.disableFilter( "workingVersionFilter" ); } + + public void close() { /*implemented by the proxy */} + + + } Modified: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/AttachmentPersistTest.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/AttachmentPersistTest.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/AttachmentPersistTest.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -1,13 +1,12 @@ package org.drools.repository; import org.drools.repository.db.PersistentCase; -import org.drools.repository.db.RepositoryImpl; public class AttachmentPersistTest extends PersistentCase { public void testLoadSave() { RuleSetAttachment at = new RuleSetAttachment("test","test", "test".getBytes(), "blah.xml" ); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(at); RuleSetAttachment at2 = repo.loadAttachment("test"); assertEquals("test", at2.getTypeOfAttachment()); Added: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/IntegrationTest.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/IntegrationTest.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/IntegrationTest.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -0,0 +1,27 @@ +package org.drools.repository; + +import junit.framework.TestCase; + +public class IntegrationTest extends TestCase { + + + public void testStateful() { + RepositoryManager repo1 = RepositoryFactory.getStatefulRepository(); + RepositoryManager repo2 = RepositoryFactory.getStatefulRepository(); + + RuleDef rule1 = new RuleDef("repo1", "Dsadsadsadsa"); + repo1.save(rule1); + repo1.close(); + repo2.save(rule1); + +// RuleDef rule2 = repo2.loadRule("repo1", 1); +// rule2.setContent("ABNBNBN"); +// repo2.save(rule2); +// +// rule1.setContent("bnmbmnbmn"); +// repo1.save(rule1); + + + } + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/IntegrationTest.java ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/LocalPersistTest.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/LocalPersistTest.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/LocalPersistTest.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -1,7 +1,6 @@ package org.drools.repository; import org.drools.repository.db.PersistentCase; -import org.drools.repository.db.RepositoryImpl; import com.thoughtworks.xstream.XStream; import com.thoughtworks.xstream.io.xml.DomDriver; @@ -17,7 +16,7 @@ def = (RuleSetDef) xstream.fromXML(xml); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(def); def = repo.loadRuleSet("xstream1", 1); Added: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RepositoryFactoryTest.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RepositoryFactoryTest.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RepositoryFactoryTest.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -0,0 +1,13 @@ +package org.drools.repository; + +import junit.framework.TestCase; + +public class RepositoryFactoryTest extends TestCase { + + public void testFactory() { + RepositoryManager manager = RepositoryFactory.getRepository(); + assertNotNull(manager); + manager.listRuleSets(); + } + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RepositoryFactoryTest.java ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RulePersistenceTest.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RulePersistenceTest.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RulePersistenceTest.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -6,12 +6,11 @@ import org.drools.repository.MetaData; import org.drools.repository.RuleDef; import org.drools.repository.db.PersistentCase; -import org.drools.repository.db.RepositoryImpl; public class RulePersistenceTest extends PersistentCase { public void testStoreNewRuleDef() throws Exception { - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); RuleDef def = new RuleDef("myRule", "A rule"); repo.save(def); assertNotNull(def.getId()); @@ -35,7 +34,7 @@ } public void testRetreieveRuleWithTags() { - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); RuleDef newRule = new RuleDef("my rule", "content"); newRule.addTag("HR").addTag("SALARY"); repo.save(newRule); @@ -54,7 +53,7 @@ } public void testRuleCopy() { - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); RuleDef rule1 = new RuleDef("newVersionTest", "XXX"); rule1.addTag("HR").addTag("BOO"); @@ -77,7 +76,7 @@ rs.addRule(new RuleDef("rh2", "xxxxx")); rs.addRule(new RuleDef("rh3", "xxxxx")); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(rs); rs = repo.loadRuleSet("rule history", 1); Modified: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RuleSetPersistenceTest.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RuleSetPersistenceTest.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/RuleSetPersistenceTest.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -6,7 +6,6 @@ import java.util.Set; import org.drools.repository.db.PersistentCase; -import org.drools.repository.db.RepositoryImpl; /** * Some quasi unit tests, and some quasi integration tests including versioning. @@ -23,7 +22,7 @@ RuleSetDef def = new RuleSetDef("my ruleset", meta); def.addTag("ME"); def.addRule(new RuleDef("simple", "x")); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(def); RuleSetDef def2 = repo.loadRuleSet("my ruleset", 1); @@ -64,7 +63,7 @@ ruleSet.addRule(def); ruleSet.addTag("HR"); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(ruleSet); RuleSetDef loaded = repo.loadRuleSet("Uber 1", 1); @@ -83,7 +82,7 @@ "file.txt"); ruleSet.addAttachment(attachment); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(ruleSet); RuleSetDef result = repo.loadRuleSet("Attachmate", 1); @@ -102,7 +101,7 @@ history.add(info2); def.setVersionHistory(history); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(def); RuleSetDef def2 = repo.loadRuleSet("WithHistory", 1); @@ -114,7 +113,7 @@ RuleDef rule = new RuleDef("addRemove Rule", "xxx"); def.addRule(rule); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); //save and load it fresh repo.save(def); @@ -175,7 +174,7 @@ } - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(set); //now when we load it, the filter only loads the workingVersion that we specify @@ -226,7 +225,7 @@ RuleSetDef def = new RuleSetDef("para", null); def.addRule(new RuleDef("para1","sss")); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(def); //create a new version @@ -266,7 +265,7 @@ public void testSaveHistoryFromCascade() { RuleSetDef old = new RuleSetDef("something old", null); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); RuleDef newRule = new RuleDef("save history 2", "ABC"); old.addRule(newRule); @@ -286,7 +285,7 @@ public void testRuleSetWithFunction() { RuleSetDef def = new RuleSetDef("with functions", null); def.addFunction(new FunctionDef("abc", "123")); - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); repo.save(def); def = repo.loadRuleSet("with functions", 1); @@ -311,7 +310,7 @@ } public void testRuleSetSearchRuleTags() { - RepositoryImpl repo = getRepo(); + RepositoryManager repo = getRepo(); RuleSetDef def = new RuleSetDef("rules with tags", null); RuleDef rule = new RuleDef("search rule tags in set", "fdsfdsfds"); rule.addTag("HR"); Modified: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/PersistentCase.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/PersistentCase.java 2006-01-16 06:47:05 UTC (rev 2106) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/PersistentCase.java 2006-01-16 12:37:22 UTC (rev 2107) @@ -1,5 +1,8 @@ package org.drools.repository.db; +import org.drools.repository.RepositoryFactory; +import org.drools.repository.RepositoryManager; + import junit.framework.TestCase; public class PersistentCase extends TestCase { @@ -9,10 +12,8 @@ getRepo(); } - - public RepositoryImpl getRepo() { - RepositoryImpl repo = new RepositoryImpl(); - return repo; + public RepositoryManager getRepo() { + return RepositoryFactory.getRepository(); } |