Author: mic...@jb... Date: 2006-01-20 04:35:25 -0500 (Fri, 20 Jan 2006) New Revision: 2152 Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Asset.java trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/DDLGenerator.java trunk/labs/jbossrules/drools-repository/src/main/resources/drools-repository-db.cfg.xml Removed: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Asset.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/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/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/java/org/drools/repository/db/HibernateUtil.java 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/RuleSetDef.hbm.xml Log: refactor, added DDL generation 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ApplicationDataDef.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -1,7 +1,6 @@ package org.drools.repository; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Asset; /** * Application data contains a definition of objects that may be provided to the Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Asset.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Asset.java 2006-01-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Asset.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -0,0 +1,19 @@ +package org.drools.repository; + +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/Asset.java ___________________________________________________________________ Name: svn:eol-style + native 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/FunctionDef.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -1,7 +1,6 @@ package org.drools.repository; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Asset; /** * A FunctionDef contains the definition of a function that is used in one or more rules. 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/ImportDef.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -1,7 +1,6 @@ package org.drools.repository; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Asset; /** * This holds a type import for a ruleset. Modified: 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryFactory.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -1,6 +1,8 @@ package org.drools.repository; import java.lang.reflect.Proxy; +import java.security.Principal; +import java.security.acl.Permission; import org.drools.repository.db.RepoProxyHandler; @@ -17,7 +19,7 @@ /** * The default repository. This is stateless, meaning that a continuous connection is not required. */ - public static RepositoryManager getRepository() { + public static RepositoryManager getRepository() { RepoProxyHandler handler = new RepoProxyHandler(); RepositoryManager manager = getProxy( handler ); return manager; 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManager.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -4,7 +4,6 @@ import java.util.Map; import java.util.Properties; -import org.drools.repository.db.Asset; import org.drools.repository.db.ISaveHistory; /** @@ -19,6 +18,7 @@ * If it is a stateful Repository, then it will need to be created from the factory fresh. * * @author <a href="mailto:mic...@gm..."> Michael Neale</a> + * @author <a href ="mailto:suj...@co..."> Sujit Pal</a> */ public interface RepositoryManager { 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RepositoryManagerImpl.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -7,7 +7,6 @@ import java.util.Properties; -import org.drools.repository.db.Asset; import org.drools.repository.db.ISaveHistory; import org.hibernate.Query; import org.hibernate.Session; 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleDef.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -7,7 +7,6 @@ import org.drools.repository.db.ISaveHistory; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Asset; public class RuleDef extends Asset implements 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetAttachment.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -5,7 +5,6 @@ import org.drools.repository.db.ISaveHistory; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Asset; /** 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetDef.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -7,7 +7,6 @@ import java.util.Set; import org.drools.repository.db.IVersionable; -import org.drools.repository.db.Asset; /** * The ruleset definition contains a grouping of rules for editing/release. The 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/RuleSetVersionInfo.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -2,7 +2,6 @@ import java.util.Date; -import org.drools.repository.db.Asset; /** * This records information about a particular version of a ruleset. 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/Tag.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -5,7 +5,6 @@ import java.util.Iterator; import java.util.Set; -import org.drools.repository.db.Asset; /** Deleted: 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/Asset.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -1,19 +0,0 @@ -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; - } - - -} Added: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/DDLGenerator.java =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/DDLGenerator.java 2006-01-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/DDLGenerator.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -0,0 +1,16 @@ +package org.drools.repository.db; + +import org.hibernate.tool.hbm2ddl.SchemaExport; + +public class DDLGenerator { + + /** + * This will generate DDL for the current config. + * No args are required, will spit it to standard out. + */ + public static void main(String[] args) { + SchemaExport exporter = new SchemaExport(HibernateUtil.getConfiguration()); + exporter.create(true, false); + } + +} Property changes on: trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/DDLGenerator.java ___________________________________________________________________ Name: svn:eol-style + native Modified: 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 2006-01-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/java/org/drools/repository/db/HibernateUtil.java 2006-01-20 09:35:25 UTC (rev 2152) @@ -14,6 +14,8 @@ import org.hibernate.cfg.Configuration; /** + * This is the central config point for hibernate. + * * The usual infamous hibernate helper, with a few tweaks. * I have made the sessionFactory non final to allow reconfiguration if necessary. * @@ -23,7 +25,6 @@ public class HibernateUtil { public static final String DROOLS_REPOSITORY_CONFIG = "drools-repository-db.cfg.xml"; - private static SessionFactory sessionFactory; static { @@ -43,14 +44,19 @@ * May be called again to re-establish the factory if needed. */ public static void configureSessionFactory() { + Configuration cfg = getConfiguration(); + sessionFactory = cfg.buildSessionFactory(); + } + + /** Return the hibernate configuration as it stands */ + public static Configuration getConfiguration() { Configuration cfg = new Configuration(); cfg.setInterceptor( new StoreEventListener() ); registerPersistentClasses( cfg ); // cfg.setProperty("connection.username", "sa"); // cfg.setProperty("connection.password", ""); cfg.configure(DROOLS_REPOSITORY_CONFIG); - - sessionFactory = cfg.buildSessionFactory(); + return cfg; } /** Added: trunk/labs/jbossrules/drools-repository/src/main/resources/drools-repository-db.cfg.xml =================================================================== --- trunk/labs/jbossrules/drools-repository/src/main/resources/drools-repository-db.cfg.xml 2006-01-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/drools-repository-db.cfg.xml 2006-01-20 09:35:25 UTC (rev 2152) @@ -0,0 +1,52 @@ +<?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"> + +<!-- + **** Drools Repository database configuration. **** + As you can see from the DTD, this makes use of Hibernate 3 for persistence and querying. + + This file is configured for HSQLDB in memory operation (not recommended for production). + + ****************************************************************************** + To provide your own configuration, place your own drools-repository-db.cfg.xml + in the front of the classpath (at the root). + ****************************************************************************** + --> + +<hibernate-configuration> + + <session-factory> + + <!-- Database connection settings --> + <property name="connection.driver_class">org.hsqldb.jdbcDriver</property> + <property name="connection.url">jdbc:hsqldb:mem:unittest</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">false</property> + + <!-- Drop and re-create the database schema on startup + <property name="hbm2ddl.auto">create</property> + --> + + </session-factory> + + + +</hibernate-configuration> \ No newline at end of file Property changes on: trunk/labs/jbossrules/drools-repository/src/main/resources/drools-repository-db.cfg.xml ___________________________________________________________________ Name: svn:eol-style + native 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleDef.hbm.xml 2006-01-20 09:35:25 UTC (rev 2152) @@ -32,7 +32,7 @@ <one-to-many class="org.drools.repository.Tag" /> </set> - <many-to-one name="owningRuleSet" /> + <many-to-one name="owningRuleSet" column="OWNING_RULESET_ID" /> <component name="metaData"> <property name="title" /> 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-20 08:21:38 UTC (rev 2151) +++ trunk/labs/jbossrules/drools-repository/src/main/resources/org/drools/repository/RuleSetDef.hbm.xml 2006-01-20 09:35:25 UTC (rev 2152) @@ -44,7 +44,7 @@ <!-- now come the versioned assets --> <set name="rules" lazy="false" table="RULESET_RULES" cascade="all" optimistic-lock="false"> - <key column="RULESET_ID"/> + <key column="OWNING_RULESET_ID" /> <one-to-many class="org.drools.repository.RuleDef"/> <filter name="workingVersionFilter" condition=":filteredVersionNumber = VERSION_NUMBER" /> </set> |