Author: mic...@jb... Date: 2006-01-18 20:15:54 -0500 (Wed, 18 Jan 2006) New Revision: 2135 Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Asset.java Removed: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Persistent.java Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ApplicationDataDef.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/FunctionDef.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ImportDef.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/RepositoryManagerImpl.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleDef.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetAttachment.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetDef.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetVersionInfo.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Tag.java trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ApplicationDataDef.hbm.xml trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/FunctionDef.hbm.xml trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ImportDef.hbm.xml trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleDef.hbm.xml trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetAttachment.hbm.xml trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetDef.hbm.xml trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/IntegrationTest.java trunk/labs/jbossrules/drools-repository/src/test/resources/drools-repository-db.cfg.xml Log: major refactoring, adding in column names Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ApplicationDataDef.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ApplicationDataDef.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ApplicationDataDef.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -1,7 +1,7 @@ package org.drools.repository; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Persistent; +import org.drools.repository.db.Asset; /** * Application data contains a definition of objects that may be provided to the @@ -10,7 +10,7 @@ * * @author <a href="mailto:mic...@gm..."> Michael Neale</a> */ -public class ApplicationDataDef extends Persistent +public class ApplicationDataDef extends Asset implements IVersionable { Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/FunctionDef.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/FunctionDef.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/FunctionDef.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -1,7 +1,7 @@ package org.drools.repository; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Persistent; +import org.drools.repository.db.Asset; /** * A FunctionDef contains the definition of a function that is used in one or more rules. @@ -9,7 +9,7 @@ * * @author <a href="mailto:mic...@gm..."> Michael Neale</a> */ -public class FunctionDef extends Persistent +public class FunctionDef extends Asset implements IVersionable { Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ImportDef.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ImportDef.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ImportDef.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -1,7 +1,7 @@ package org.drools.repository; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Persistent; +import org.drools.repository.db.Asset; /** * This holds a type import for a ruleset. @@ -10,7 +10,7 @@ * (same argument for ApplicationDataDef). * @author <a href="mailto:mic...@gm..."> Michael Neale</a> */ -public class ImportDef extends Persistent +public class ImportDef extends Asset implements IVersionable { Modified: 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-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManager.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -2,6 +2,8 @@ import java.util.List; +import org.drools.repository.db.Asset; + /** * The repository manager takes care of storing and sychronising the repository * data with the repository database. @@ -17,12 +19,6 @@ */ 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); - /** * Load a rule based on a workingVersionNumber. */ @@ -46,8 +42,6 @@ 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 @@ -66,12 +60,18 @@ */ public abstract RuleSetAttachment loadAttachment(String name, long workingVersionNumber); - public abstract void save(RuleSetAttachment attachment); + /** + * Saves an asset. Most assets are saved automatically when you save the parent, so + * for instance when you save a ruleset, you should not need to save any of its assets as well. + * + * Some assets, such as rules and ruleset attachments have history items created on each save. + */ + public abstract void save(Asset asset); /** Returns List<String> of Rule set names */ public abstract List listRuleSets(); - public abstract void delete(RuleDef rule); + public abstract void delete(Asset rule); /** * Searches the ruleset for a rule with a certain tag. This will search ALL @@ -100,6 +100,28 @@ */ public abstract void checkInRule(RuleDef rule, String userId); + + /** + * This will check out an for the given user id. + * This can be used to enforce "locking" of rule edits. + * + * This will save the attachment as it stands, including any changes. + */ + public abstract void checkOutAttachment(RuleSetAttachment attachment, String userId); + + /** + * This removes the check out flag. + * + * The userId must be supplied to confirm that the correct user + * is checking it in, an exception will be thrown if this is not correct. + * + * This can effectively be "overridden" by either just saving the rule, or passing + * in the correct username. It is up to client applications to enforce this behaviour. + */ + public abstract void checkInAttachment(RuleSetAttachment attachment, String userId); + + + /** This is only required for stateful Repository session. It will be ignored for stateless ones. */ public abstract void close(); Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManagerImpl.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManagerImpl.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManagerImpl.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -3,6 +3,7 @@ import java.util.List; +import org.drools.repository.db.Asset; import org.hibernate.Session; /** @@ -29,13 +30,8 @@ this.session = session; } - /* (non-Javadoc) - * @see org.drools.repository.db.RepositoryManager#save(org.drools.repository.RuleDef) - */ - public void save(RuleDef newRule) { - session.saveOrUpdate( newRule ); - } + /* (non-Javadoc) * @see org.drools.repository.db.RepositoryManager#loadRule(java.lang.String, long) */ @@ -81,11 +77,8 @@ return result; } - /* (non-Javadoc) - * @see org.drools.repository.db.RepositoryManager#save(org.drools.repository.RuleSetDef) - */ - public void save(RuleSetDef ruleSet) { - session.saveOrUpdate( ruleSet ); + public void save(Asset asset) { + session.saveOrUpdate( asset ); } /* (non-Javadoc) @@ -136,13 +129,8 @@ return at; } - /* (non-Javadoc) - * @see org.drools.repository.db.RepositoryManager#save(org.drools.repository.RuleSetAttachment) - */ - public void save(RuleSetAttachment attachment) { - session.saveOrUpdate( attachment ); - } + /* (non-Javadoc) * @see org.drools.repository.db.RepositoryManager#listRuleSets() */ @@ -154,7 +142,7 @@ /* (non-Javadoc) * @see org.drools.repository.db.RepositoryManager#delete(org.drools.repository.RuleDef) */ - public void delete(RuleDef rule) { + public void delete(Asset rule) { session.delete( rule ); } @@ -174,6 +162,9 @@ public void checkOutRule(RuleDef rule, String userId) { + if (rule.isCheckedOut()) { + throw new RepositoryException("Rule is already checked out to " + userId); + } rule.setCheckedOut(true); rule.setCheckedOutBy(userId); session.update(rule); @@ -188,6 +179,28 @@ session.update(rule); } + public void checkOutAttachment(RuleSetAttachment attachment, + String userId) { + if (attachment.isCheckedOut()) { + throw new RepositoryException("Rule is already checked out to " + userId); + } + attachment.setCheckedOut(true); + attachment.setCheckedOutBy(userId); + session.update(attachment); + + } + + public void checkInAttachment(RuleSetAttachment attachment, + String userId) { + if (!userId.equals(attachment.getCheckedOutBy())) { + throw new RepositoryException("Unable to check in the attachment, as it is currently checked out by " + attachment.getCheckedOutBy()); + } + attachment.setCheckedOut(false); + attachment.setCheckedOutBy(null); + session.update(attachment); + } + + public void close() { /*implemented by the proxy */} @@ -213,6 +226,7 @@ session.disableFilter( "workingVersionFilter" ); } + Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleDef.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleDef.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleDef.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -7,9 +7,9 @@ import org.drools.repository.db.ISaveHistory; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Persistent; +import org.drools.repository.db.Asset; -public class RuleDef extends Persistent +public class RuleDef extends Asset implements ISaveHistory { Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetAttachment.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetAttachment.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetAttachment.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -4,7 +4,7 @@ import java.util.Set; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Persistent; +import org.drools.repository.db.Asset; /** @@ -20,7 +20,7 @@ * @author <a href="mailto:mic...@gm..."> Michael Neale</a> * */ -public class RuleSetAttachment extends Persistent implements IVersionable { +public class RuleSetAttachment extends Asset implements IVersionable { private static final long serialVersionUID = 7474038734785975202L; @@ -34,7 +34,12 @@ private long versionNumber; private String versionComment; private Set tags; + private int lockingVersion = 0; + private boolean checkedOut; + private String checkedOutBy; + + /** * * @param typeOfAttachment The type of the content, eg XLS, CSV, HTML. @@ -55,6 +60,7 @@ this.versionNumber = 1; this.versionComment = "new"; this.tags = new HashSet(); + this.checkedOut = false; } RuleSetAttachment() { @@ -147,6 +153,30 @@ this.tags = tags; } + private int getLockingVersion() { + return lockingVersion; + } + + private void setLockingVersion(int lockingVersion) { + this.lockingVersion = lockingVersion; + } + + public boolean isCheckedOut() { + return checkedOut; + } + + void setCheckedOut(boolean checkedOut) { + this.checkedOut = checkedOut; + } + + public String getCheckedOutBy() { + return checkedOutBy; + } + + void setCheckedOutBy(String checkedOutBy) { + this.checkedOutBy = checkedOutBy; + } + } Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetDef.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetDef.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetDef.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -7,7 +7,7 @@ import java.util.Set; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Persistent; +import org.drools.repository.db.Asset; /** * The ruleset definition contains a grouping of rules for editing/release. The @@ -30,7 +30,7 @@ * * @author <a href="mailto:mic...@gm..."> Michael Neale</a> */ -public class RuleSetDef extends Persistent +public class RuleSetDef extends Asset implements Comparable { private static final long serialVersionUID = 608068118653708104L; Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetVersionInfo.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetVersionInfo.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetVersionInfo.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -2,7 +2,7 @@ import java.util.Date; -import org.drools.repository.db.Persistent; +import org.drools.repository.db.Asset; /** * This records information about a particular version of a ruleset. @@ -15,7 +15,7 @@ * @author <a href="mailto:mic...@gm..."> Michael Neale</a> * */ -public class RuleSetVersionInfo extends Persistent implements Comparable { +public class RuleSetVersionInfo extends Asset implements Comparable { private static final long serialVersionUID = 53728327711138178L; Modified: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Tag.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Tag.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Tag.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -5,7 +5,7 @@ import java.util.Iterator; import java.util.Set; -import org.drools.repository.db.Persistent; +import org.drools.repository.db.Asset; /** @@ -17,7 +17,7 @@ * @author <a href="mailto:mic...@gm..."> Michael Neale</a> * */ -public class Tag extends Persistent { +public class Tag extends Asset { private String tag; Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Asset.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Asset.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Asset.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -0,0 +1,19 @@ +package org.drools.repository.db; + +import java.io.Serializable; + +/** The layer supertype for repository persistable classes. */ +public class Asset implements Serializable { + + private Long id; + + public Long getId(){ + return id; + } + + private void setId(Long id){ + this.id = id; + } + + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Asset.java ___________________________________________________________________ Name: svn:eol-style + native Deleted: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Persistent.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Persistent.java 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Persistent.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -1,19 +0,0 @@ -package org.drools.repository.db; - -import java.io.Serializable; - -/** The layer supertype for repository persistable classes. */ -public class Persistent implements Serializable { - - private Long id; - - public Long getId(){ - return id; - } - - private void setId(Long id){ - this.id = id; - } - - -} Modified: trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ApplicationDataDef.hbm.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ApplicationDataDef.hbm.xml 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ApplicationDataDef.hbm.xml 2006-01-19 01:15:54 UTC (rev 2135) @@ -8,9 +8,9 @@ <id name="id" column="APP_DATA_ID"> <generator class="native" /> </id> - <property name="type" /> - <property name="identifier" /> - <property name="versionComment" /> - <property name="versionNumber" /> + <property name="type" column="CLASS_TYPE" length="64" /> + <property name="identifier" column="DATA_IDENTIFIER" length="32" /> + <property name="versionComment" column="VERSION_COMMENT" length="64" /> + <property name="versionNumber" column="VERSION_NUMBER" /> </class> </hibernate-mapping> \ No newline at end of file Modified: trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/FunctionDef.hbm.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/FunctionDef.hbm.xml 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/FunctionDef.hbm.xml 2006-01-19 01:15:54 UTC (rev 2135) @@ -8,10 +8,10 @@ <id name="id" column="FUNCTION_ID"> <generator class="native"/> </id> - <property name="description" /> - <property name="functionContent" /> - <property name="semantic" /> - <property name="versionComment" /> - <property name="versionNumber" /> + <property name="description" column="DESCRIPTION" length="256" /> + <property name="functionContent" column="FUNCTION_CONTENT" type="text"/> + <property name="semantic" column="SEMANTIC" length="32" /> + <property name="versionComment" column="VERSION_COMMENT" length="128" /> + <property name="versionNumber" column="VERSION_NUMBER" /> </class> </hibernate-mapping> \ No newline at end of file Modified: trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ImportDef.hbm.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ImportDef.hbm.xml 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ImportDef.hbm.xml 2006-01-19 01:15:54 UTC (rev 2135) @@ -8,8 +8,8 @@ <id name="id" column="IMPORT_ID"> <generator class="native"/> </id> - <property name="type" /> - <property name="versionComment" /> - <property name="versionNumber" /> + <property name="type" column="CLASS_TYPE" length="64" /> + <property name="versionComment" column="VERSION_COMMMENT" length="128" /> + <property name="versionNumber" column="VERSION_NUMBER" /> </class> </hibernate-mapping> \ No newline at end of file Modified: trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleDef.hbm.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleDef.hbm.xml 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleDef.hbm.xml 2006-01-19 01:15:54 UTC (rev 2135) @@ -13,19 +13,19 @@ <generator class="native"/> </id> - <version name="lockingVersion" /> - <property name="name" /> - <property name="versionNumber" /> - <property name="content" type="text" /> - <property name="status" /> - <property name="checkedOut" /> - <property name="checkedOutBy" /> - <property name="versionComment" /> - <property name="documentation" /> - <property name="effectiveDate" /> - <property name="expiryDate" /> - <property name="historicalId" /> - <property name="historicalRecord" /> + <version name="lockingVersion" column="LOCKING_VERSION" /> + <property name="name" column="RULE_NAME" length="64" /> + <property name="versionNumber" column="VERSION_NUMBER" /> + <property name="content" type="text" column="RULE_CONTENT" /> + <property name="status" column="STATUS" length="32" /> + <property name="checkedOut" column="CHECKED_OUT" /> + <property name="checkedOutBy" column="CHECKED_OUT_BY" length="64"/> + <property name="versionComment" column="VERSION_COMMENT" length="128"/> + <property name="documentation" column="DOCUMENTATION" type="text"/> + <property name="effectiveDate" column="EFFECTIVE_DATE" /> + <property name="expiryDate" column="EXPIRY_DATE"/> + <property name="historicalId" column="HISTORICAL_ID"/> + <property name="historicalRecord" column="HISTORICAL_RECORD_FLAG"/> <set name="tags" table="RULE_TAGS" lazy="false" cascade="all" optimistic-lock="false"> <key column="RULE_ID"/> @@ -48,7 +48,7 @@ <property name="rights" /> </component> - <filter name="historyFilter" condition=":viewHistory = historicalRecord" /> + <filter name="historyFilter" condition=":viewHistory = HISTORICAL_RECORD_FLAG" /> </class> <filter-def name="historyFilter"> Modified: trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetAttachment.hbm.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetAttachment.hbm.xml 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetAttachment.hbm.xml 2006-01-19 01:15:54 UTC (rev 2135) @@ -6,17 +6,21 @@ <hibernate-mapping> - <class name="org.drools.repository.RuleSetAttachment" table="DROOLS_ATTACHMENTS"> + <class name="org.drools.repository.RuleSetAttachment" table="DROOLS_ATTACHMENTS" + select-before-update="true" optimistic-lock="version"> <id name="id" column="RULESET_ATTACHMENT_ID"> <generator class="native"/> </id> + <version name="lockingVersion" column="LOCKING_VERSION" /> <property name="name" not-null="true" /> <property name="typeOfAttachment" /> <property name="content" /> <property name="originalFileName" /> <property name="versionNumber" /> <property name="versionComment" /> + <property name="checkedOut" /> + <property name="checkedOutBy" /> <set name="tags" table="RULESET_ATTACHMENT_TAGS" lazy="false" cascade="all" optimistic-lock="false"> <key column="RULESET_ATTACHMENT_ID"/> Modified: trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetDef.hbm.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetDef.hbm.xml 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetDef.hbm.xml 2006-01-19 01:15:54 UTC (rev 2135) @@ -46,7 +46,7 @@ <set name="rules" lazy="false" table="RULESET_RULES" cascade="all" optimistic-lock="false"> <key column="RULESET_ID"/> <one-to-many class="org.drools.repository.RuleDef"/> - <filter name="workingVersionFilter" condition=":filteredVersionNumber = versionNumber" /> + <filter name="workingVersionFilter" condition=":filteredVersionNumber = VERSION_NUMBER" /> </set> <set name="attachments" lazy="false" table="RULESET_ATTACHMENTS" cascade="all" optimistic-lock="false"> @@ -58,19 +58,19 @@ <set name="imports" lazy="false" table="RULESET_IMPORTS" cascade="all" optimistic-lock="false"> <key column="RULESET_ID"/> <one-to-many class="org.drools.repository.ImportDef"/> - <filter name="workingVersionFilter" condition=":filteredVersionNumber = versionNumber" /> + <filter name="workingVersionFilter" condition=":filteredVersionNumber = VERSION_NUMBER" /> </set> <set name="functions" lazy="false" table="RULESET_FUNCTIONS" cascade="all" optimistic-lock="false"> <key column="RULESET_ID"/> <one-to-many class="org.drools.repository.FunctionDef"/> - <filter name="workingVersionFilter" condition=":filteredVersionNumber = versionNumber" /> + <filter name="workingVersionFilter" condition=":filteredVersionNumber = VERSION_NUMBER" /> </set> - <set name="applicationData" lazy="false" cascade="all" optimistic-lock="false"> + <set name="applicationData" table="RULESET_APP_DATA" lazy="false" cascade="all" optimistic-lock="false"> <key column="RULESET_ID"/> <one-to-many class="org.drools.repository.ApplicationDataDef"/> - <filter name="workingVersionFilter" condition=":filteredVersionNumber = versionNumber" /> + <filter name="workingVersionFilter" condition=":filteredVersionNumber = VERSION_NUMBER" /> </set> </class> Modified: 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-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/IntegrationTest.java 2006-01-19 01:15:54 UTC (rev 2135) @@ -22,7 +22,8 @@ * @author <a href="mailto:mic...@gm..."> Michael Neale</a> */ public class IntegrationTest extends TestCase { - + + /** * This will all execute as one JUnit test. * Any failure will cause the test to stop, but this is not a unit test, @@ -92,7 +93,7 @@ ruleSetA.addRule(ruleA); ruleSetB.addRule(new RuleDef("Concurrent 4", "content")); - //should have no problems. + //should have no problems, as we are not touching the same rules. repoA.save(ruleSetA); repoB.save(ruleSetB); @@ -180,6 +181,12 @@ ruleSet = repo.loadRuleSet("Integration attachments 1", 2); assertEquals(3, ruleSet.getAttachments().size()); + RuleSetAttachment att = (RuleSetAttachment) ruleSet.getAttachments().iterator().next(); + repo.checkOutAttachment(att, "Michael"); + assertEquals(true, att.isCheckedOut()); + repo.checkInAttachment(att, "Michael"); + assertEquals(false, att.isCheckedOut()); + repo.close(); } Modified: trunk/labs/jbossrules/drools-repository/src/test/resources/drools-repository-db.cfg.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/resources/drools-repository-db.cfg.xml 2006-01-18 13:10:22 UTC (rev 2134) +++ trunk/labs/jbossrules/drools-repository/src/test/resources/drools-repository-db.cfg.xml 2006-01-19 01:15:54 UTC (rev 2135) @@ -39,7 +39,7 @@ <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> <!-- Echo all executed SQL to stdout --> - <property name="show_sql">true</property> + <property name="show_sql">false</property> <!-- Drop and re-create the database schema on startup --> <property name="hbm2ddl.auto">create</property> |