Author: mic...@jb... Date: 2005-12-28 21:16:45 -0500 (Wed, 28 Dec 2005) New Revision: 1951 Added: trunk/labs/jbossrules/drools-repository/README.txt trunk/labs/jbossrules/drools-repository/src/ trunk/labs/jbossrules/drools-repository/src/main/ trunk/labs/jbossrules/drools-repository/src/main/java/ trunk/labs/jbossrules/drools-repository/src/main/java/org/ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/MetaData.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Persistent.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Repository.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/RuleSetDef.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/HibernateUtil.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepositoryImpl.java trunk/labs/jbossrules/drools-repository/src/main/resources/ trunk/labs/jbossrules/drools-repository/src/main/resources/hibernate.cfg.xml trunk/labs/jbossrules/drools-repository/src/main/resources/org/ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleDef.hbm.xml trunk/labs/jbossrules/drools-repository/src/test/ trunk/labs/jbossrules/drools-repository/src/test/java/ trunk/labs/jbossrules/drools-repository/src/test/java/org/ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/RepositoryImplTest.java trunk/labs/jbossrules/drools-repository/target/ trunk/labs/jbossrules/drools-repository/target/classes/ trunk/labs/jbossrules/drools-repository/target/classes/hibernate.cfg.xml trunk/labs/jbossrules/drools-repository/target/classes/org/ trunk/labs/jbossrules/drools-repository/target/classes/org/drools/ trunk/labs/jbossrules/drools-repository/target/classes/org/drools/repository/ trunk/labs/jbossrules/drools-repository/target/classes/org/drools/repository/RuleDef.hbm.xml Modified: trunk/labs/jbossrules/drools-repository/pom.xml Log: moving to hibernate Added: trunk/labs/jbossrules/drools-repository/README.txt =================================================================== --- trunk/labs/jbossrules/drools-repository/README.txt 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/README.txt 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1 @@ +This is the drools repository API. \ No newline at end of file Property changes on: trunk/labs/jbossrules/drools-repository/README.txt ___________________________________________________________________ Name: svn:eol-style + native Modified: trunk/labs/jbossrules/drools-repository/pom.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/pom.xml 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/pom.xml 2005-12-29 02:16:45 UTC (rev 1951) @@ -6,12 +6,11 @@ </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>drools-repository</artifactId> + <name>Drools :: Repository API</name> + <version>3.0-M1-dev</version> + <packaging>jar</packaging> - <name>Drools :: Repository</name> - <version>3.0-M1-dev</version> - <dependencies> <dependency> <groupId>junit</groupId> @@ -19,6 +18,22 @@ <version>3.8.1</version> <scope>test</scope> </dependency> + + <!-- should update this to 3.1 final when it is pom'ed --> + <dependency> + <groupId>hibernate</groupId> + <artifactId>hibernate</artifactId> + <version>3.1rc2</version> + </dependency> + + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.8.0.1</version> + </dependency> + + </dependencies> + </project> \ No newline at end of file Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/MetaData.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/MetaData.java 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/MetaData.java 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,131 @@ +package org.drools.repository; + +import java.io.Serializable; +import java.util.Date; + +/** + * This is based on the <a href="http://dublincore.org/documents/dces/"> + * Dublin Core</a> specification, plus a little bit more, and a little bit + * less. Not all of these fields will be used. + */ +public class MetaData implements Serializable { + + private String title; + private String creator; + private String subject; + private String description; + private String publisher; + private String contributor; + private Date dateCreated = new Date(); + private String format; + private String source; + private String language; + private String relation; + private String coverage; + private String rights; + + public String getContributor(){ + return contributor; + } + + public void setContributor(String contributor){ + this.contributor = contributor; + } + + public String getCoverage(){ + return coverage; + } + + public void setCoverage(String coverage){ + this.coverage = coverage; + } + + public String getCreator(){ + return creator; + } + + public void setCreator(String creator){ + this.creator = creator; + } + + public java.util.Date getDateCreated(){ + return dateCreated; + } + + public void setDateCreated(java.util.Date dateCreated){ + this.dateCreated = dateCreated; + } + + public String getDescription(){ + return description; + } + + public void setDescription(String description){ + this.description = description; + } + + public String getFormat(){ + return format; + } + + public void setFormat(String format){ + this.format = format; + } + + public String getLanguage(){ + return language; + } + + public void setLanguage(String language){ + this.language = language; + } + + public String getPublisher(){ + return publisher; + } + + public void setPublisher(String publisher){ + this.publisher = publisher; + } + + public String getRelation(){ + return relation; + } + + public void setRelation(String relation){ + this.relation = relation; + } + + public String getRights(){ + return rights; + } + + public void setRights(String rights){ + this.rights = rights; + } + + public String getSource(){ + return source; + } + + public void setSource(String source){ + this.source = source; + } + + public String getSubject(){ + return subject; + } + + public void setSubject(String subject){ + this.subject = subject; + } + + public String getTitle(){ + return title; + } + + public void setTitle(String title){ + this.title = title; + } + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/MetaData.java ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Persistent.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Persistent.java 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Persistent.java 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,18 @@ +package org.drools.repository; + +import java.io.Serializable; + +public class Persistent 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/Persistent.java ___________________________________________________________________ Name: svn:eol-style + native Added: 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 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Repository.java 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,7 @@ +package org.drools.repository; + +public interface Repository { + + + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Repository.java ___________________________________________________________________ Name: svn:eol-style + native Added: 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 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleDef.java 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,125 @@ +package org.drools.repository; + +import java.util.Date; +import java.util.Set; + +public class RuleDef extends Persistent { + + private String name; + private Long versionNumber; + private String content; + private MetaData metaData; + private String status; + private boolean checkedOut; + private String checkOutBy; + private String versionComment; + private Set tags; + private String documentation; + private Date effectiveDate; + private Date expiryDate; + private Date dateSaved; + + public Date getDateSaved(){ + return dateSaved; + } + private void setDateSaved(Date dateSaved){ + this.dateSaved = dateSaved; + } + + public RuleDef() {} + /** + * This little cheat tells the repo that this + * rule is at the head of versions. + */ + private boolean isHead; + + + public String getContent(){ + return content; + } + public void setContent(String content){ + this.content = content; + } + + public MetaData getMetaData(){ + return metaData; + } + public void setMetaData(MetaData metaData){ + this.metaData = metaData; + } + public String getStatus(){ + return status; + } + public void setStatus(String status){ + this.status = status; + } + public Long getVersion(){ + return versionNumber; + } + private void setVersion(Long version){ + this.versionNumber = version; + } + public boolean isCheckedOut(){ + return checkedOut; + } + public void setCheckedOut(boolean checkedOut){ + this.checkedOut = checkedOut; + } + public String getCheckOutBy(){ + return checkOutBy; + } + public void setCheckOutBy(String checkOutBy){ + this.checkOutBy = checkOutBy; + } + public boolean isHead(){ + return isHead; + } + public void setHead(boolean isHead){ + this.isHead = isHead; + } + public String getVersionComment(){ + return versionComment; + } + public void setVersionComment(String versionComment){ + this.versionComment = versionComment; + } + public Long getVersionNumber(){ + return versionNumber; + } + private void setVersionNumber(Long versionNumber){ + this.versionNumber = versionNumber; + } + public String getDocumentation(){ + return documentation; + } + public void setDocumentation(String documentation){ + this.documentation = documentation; + } + public Set getTags(){ + return tags; + } + public void setTags(Set tags){ + this.tags = tags; + } + public Date getEffectiveDate(){ + return effectiveDate; + } + public void setEffectiveDate(Date effectiveDate){ + this.effectiveDate = effectiveDate; + } + public Date getExpiryDate(){ + return expiryDate; + } + public void setExpiryDate(Date expiryDate){ + this.expiryDate = expiryDate; + } + public String getName(){ + return name; + } + public void setName(String name){ + this.name = name; + } + + + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleDef.java ___________________________________________________________________ Name: svn:eol-style + native Added: 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 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetDef.java 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,31 @@ +package org.drools.repository; + +import java.util.List; + +public class RuleSetDef extends Persistent { + + private String name; + private MetaData metaData; + private List rules; + public MetaData getMetaData(){ + return metaData; + } + public void setMetaData(MetaData metaData){ + this.metaData = metaData; + } + public List getRules(){ + return rules; + } + public void setRules(List rules){ + this.rules = rules; + } + public String getName(){ + return name; + } + public void setName(String name){ + this.name = name; + } + + + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetDef.java ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/HibernateUtil.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/HibernateUtil.java 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/HibernateUtil.java 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,25 @@ +package org.drools.repository.db; + +import org.hibernate.SessionFactory; +import org.hibernate.cfg.Configuration; + +public class HibernateUtil { + + private static final SessionFactory sessionFactory; + + static { + try { + // Create the SessionFactory from hibernate.cfg.xml + sessionFactory = new Configuration().configure().buildSessionFactory(); + } catch (Throwable ex) { + // Make sure you log the exception, as it might be swallowed + System.err.println("Initial SessionFactory creation failed." + ex); + throw new ExceptionInInitializerError(ex); + } + } + + public static SessionFactory getSessionFactory() { + return sessionFactory; + } + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/HibernateUtil.java ___________________________________________________________________ Name: svn:eol-style + native Added: 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 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepositoryImpl.java 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,26 @@ +package org.drools.repository.db; + +import org.drools.repository.Repository; +import org.drools.repository.RuleDef; +import org.hibernate.Session; + + + +public class RepositoryImpl implements Repository { + + public RuleDef addNewRule(String ruleName, String content, String comment) { + Session session = HibernateUtil.getSessionFactory().getCurrentSession(); + + session.beginTransaction(); + + RuleDef ruleDef = new RuleDef(); + ruleDef.setContent(content); + ruleDef.setName(ruleName); + + session.save(ruleDef); + + session.getTransaction().commit(); + return ruleDef; + } + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/RepositoryImpl.java ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-repository/src/main/resources/hibernate.cfg.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/resources/hibernate.cfg.xml 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/hibernate.cfg.xml 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,38 @@ +<?xml version='1.0' encoding='utf-8'?> +<!DOCTYPE hibernate-configuration PUBLIC + "-//Hibernate/Hibernate Configuration DTD 3.0//EN" + "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> + +<hibernate-configuration> + + <session-factory> + + <!-- Database connection settings --> + <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> + <property name="connection.url">jdbc:hsqldb:hsql://localhost</property> + <property name="connection.username">sa</property> + <property name="connection.password"></property> + + <!-- JDBC connection pool (use the built-in) --> + <property name="connection.pool_size">1</property> + + <!-- SQL dialect --> + <property name="dialect">org.hibernate.dialect.HSQLDialect</property> + + <!-- Enable Hibernate's automatic session context management --> + <property name="current_session_context_class">thread</property> + + <!-- Disable the second-level cache --> + <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> + + <!-- Echo all executed SQL to stdout --> + <property name="show_sql">true</property> + + <!-- Drop and re-create the database schema on startup --> + <property name="hbm2ddl.auto">create</property> + + <mapping resource="org/drools/repository/RuleDef.hbm.xml"/> + + </session-factory> + +</hibernate-configuration> \ No newline at end of file Property changes on: trunk/labs/jbossrules/drools-repository/src/main/resources/hibernate.cfg.xml ___________________________________________________________________ Name: svn:eol-style + native Added: 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 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleDef.hbm.xml 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<!DOCTYPE hibernate-mapping PUBLIC + "-//Hibernate/Hibernate Mapping DTD 3.0//EN" + "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> + + +<hibernate-mapping> + + <class name="org.drools.repository.RuleDef" table="RULE_DEFINITIONS"> + <id name="id" column="RULE_ID"> + <generator class="native"/> + </id> + +<!-- + <property name="dateSaved" type="timestamp" column="DATE_CREATED"/> + <property name="name"/> + <property name="versionNumber"/> + <property name="content" /> + <property name="status" /> + <property name="checkedOut" /> + <property name="checkedOutBy" /> + <property name="versionComment" /> + <property name="documentation" /> + <property name="effectiveDate" /> + <property name="expiryDate" /> + --> + </class> + +</hibernate-mapping> \ No newline at end of file Property changes on: trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleDef.hbm.xml ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/RepositoryImplTest.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/RepositoryImplTest.java 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/RepositoryImplTest.java 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,15 @@ +package org.drools.repository.db; + +import org.drools.repository.RuleDef; + +import junit.framework.TestCase; + +public class RepositoryImplTest extends TestCase { + + public void testStoreNewRuleDef() throws Exception { + RepositoryImpl repo = new RepositoryImpl(); + RuleDef def = repo.addNewRule("myRule", "A rule", "some comment"); + assertNotNull(def.getId()); + } + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/test/java/org/drools/repository/db/RepositoryImplTest.java ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-repository/target/classes/hibernate.cfg.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/target/classes/hibernate.cfg.xml 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/target/classes/hibernate.cfg.xml 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,38 @@ +<?xml version='1.0' encoding='utf-8'?> +<!DOCTYPE hibernate-configuration PUBLIC + "-//Hibernate/Hibernate Configuration DTD 3.0//EN" + "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> + +<hibernate-configuration> + + <session-factory> + + <!-- Database connection settings --> + <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> + <property name="connection.url">jdbc:hsqldb:hsql://localhost</property> + <property name="connection.username">sa</property> + <property name="connection.password"></property> + + <!-- JDBC connection pool (use the built-in) --> + <property name="connection.pool_size">1</property> + + <!-- SQL dialect --> + <property name="dialect">org.hibernate.dialect.HSQLDialect</property> + + <!-- Enable Hibernate's automatic session context management --> + <property name="current_session_context_class">thread</property> + + <!-- Disable the second-level cache --> + <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> + + <!-- Echo all executed SQL to stdout --> + <property name="show_sql">true</property> + + <!-- Drop and re-create the database schema on startup --> + <property name="hbm2ddl.auto">create</property> + + <mapping resource="org/drools/repository/RuleDef.hbm.xml"/> + + </session-factory> + +</hibernate-configuration> \ No newline at end of file Property changes on: trunk/labs/jbossrules/drools-repository/target/classes/hibernate.cfg.xml ___________________________________________________________________ Name: svn:eol-style + native Added: trunk/labs/jbossrules/drools-repository/target/classes/org/drools/repository/RuleDef.hbm.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/target/classes/org/drools/repository/RuleDef.hbm.xml 2005-12-28 06:31:34 UTC (rev 1950) +++ trunk/labs/jbossrules/drools-repository/target/classes/org/drools/repository/RuleDef.hbm.xml 2005-12-29 02:16:45 UTC (rev 1951) @@ -0,0 +1,29 @@ +<?xml version="1.0"?> +<!DOCTYPE hibernate-mapping PUBLIC + "-//Hibernate/Hibernate Mapping DTD 3.0//EN" + "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> + + +<hibernate-mapping> + + <class name="org.drools.repository.RuleDef" table="RULE_DEFINITIONS"> + <id name="id" column="RULE_ID"> + <generator class="native"/> + </id> + +<!-- + <property name="dateSaved" type="timestamp" column="DATE_CREATED"/> + <property name="name"/> + <property name="versionNumber"/> + <property name="content" /> + <property name="status" /> + <property name="checkedOut" /> + <property name="checkedOutBy" /> + <property name="versionComment" /> + <property name="documentation" /> + <property name="effectiveDate" /> + <property name="expiryDate" /> + --> + </class> + +</hibernate-mapping> \ No newline at end of file Property changes on: trunk/labs/jbossrules/drools-repository/target/classes/org/drools/repository/RuleDef.hbm.xml ___________________________________________________________________ Name: svn:eol-style + native |