[jboss-svn-commits] JBL Code SVN: r20511 - in labs/jbossrules/trunk/drools-repository/src: main/java/org/drools/repository/migration and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Jun 16 03:42:45 EDT 2008
Author: michael.neale at jboss.com
Date: 2008-06-16 03:42:44 -0400 (Mon, 16 Jun 2008)
New Revision: 20511
Modified:
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositorySessionUtil.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/migration/MigrateDroolsPackage.java
labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/migration/MigrateDroolsPackageTest.java
Log:
migrate flag needs to be in drools:repository, not repo root.
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositorySessionUtil.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositorySessionUtil.java 2008-06-16 05:33:38 UTC (rev 20510)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RepositorySessionUtil.java 2008-06-16 07:42:44 UTC (rev 20511)
@@ -19,11 +19,11 @@
public class RepositorySessionUtil {
private static ThreadLocal repo = new ThreadLocal();
-
+
private static final Logger log = Logger.getLogger( RepositorySessionUtil.class );
public static boolean deleteDir(File dir) {
-
+
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
@@ -33,26 +33,26 @@
}
}
}
-
+
// The directory is now empty so delete it
return dir.delete();
- }
-
-
+ }
+
+
public static RulesRepository getRepository() throws RulesRepositoryException {
Object repoInstance = repo.get();
if ( repoInstance == null ) {
-
+
File dir = new File( "repository" );
log.debug( "DELETING test repo: " + dir.getAbsolutePath() );
deleteDir( dir );
log.debug( "TEST repo was deleted." );
-
+
JCRRepositoryConfigurator config = new JackrabbitRepositoryConfigurator();
-
+
//create a repo instance (startup)
Repository repository = config.getJCRRepository(null);
-
+
//create a session
Session session;
try {
@@ -65,18 +65,17 @@
}
config.setupRulesRepository( session );
repoInstance = new RulesRepository( session );
-
+
Session adminSession = repository.login(new SimpleCredentials("ADMINISTRATOR", "password".toCharArray()));
//loonie hack
DroolsRepositoryAccessManager.adminThreadlocal.set( adminSession );
- repo.set( repoInstance );
+ repo.set( repoInstance );
} catch ( Exception e) {
- throw new RulesRepositoryException();
- //Assert.fail("Unable to initialise repository :" + e.getMessage());
+ throw new RulesRepositoryException(e);
}
}
-
- return (RulesRepository) repoInstance;
+
+ return (RulesRepository) repoInstance;
}
}
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2008-06-16 05:33:38 UTC (rev 20510)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/RulesRepository.java 2008-06-16 07:42:44 UTC (rev 20511)
@@ -799,6 +799,10 @@
new RulesRepositoryAdministrator( this.session ).clearRulesRepository();
this.session.getWorkspace().importXML( "/", new ByteArrayInputStream( byteArray ), ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW );
session.save();
+ MigrateDroolsPackage mig = new MigrateDroolsPackage();
+ if (mig.needsMigration(this)) {
+ mig.migrate(this);
+ }
} catch ( RepositoryException e ) {
e.printStackTrace();
throw new RulesRepositoryException();
Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/migration/MigrateDroolsPackage.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/migration/MigrateDroolsPackage.java 2008-06-16 05:33:38 UTC (rev 20510)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/migration/MigrateDroolsPackage.java 2008-06-16 07:42:44 UTC (rev 20511)
@@ -1,5 +1,6 @@
package org.drools.repository.migration;
+import javax.jcr.Node;
import javax.jcr.RepositoryException;
import org.drools.repository.AssetItem;
@@ -15,7 +16,8 @@
public class MigrateDroolsPackage {
public boolean needsMigration(RulesRepository repo) throws RepositoryException {
- return !repo.getSession().getRootNode().hasNode("drools.package.migrated");
+ Node root = repo.getSession().getRootNode().getNode(RulesRepository.RULES_REPOSITORY_NAME);
+ return !root.hasNode("drools.package.migrated");
}
public void migrate(RulesRepository repo) throws RepositoryException {
@@ -39,7 +41,7 @@
if (performed) {
- repo.getSession().getRootNode().addNode("drools.package.migrated");
+ repo.getSession().getRootNode().getNode(RulesRepository.RULES_REPOSITORY_NAME).addNode("drools.package.migrated", "nt:folder");
repo.save();
System.out.println("AUTO MIGRATION: drools.package migration completed.");
}
Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/migration/MigrateDroolsPackageTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/migration/MigrateDroolsPackageTest.java 2008-06-16 05:33:38 UTC (rev 20510)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/migration/MigrateDroolsPackageTest.java 2008-06-16 07:42:44 UTC (rev 20511)
@@ -14,7 +14,7 @@
public void testMigrate() throws Exception {
RulesRepository repo = RepositorySessionUtil.getRepository();
Session sess = repo.getSession();
- sess.getRootNode().getNode("drools.package.migrated").remove();
+ sess.getRootNode().getNode(RulesRepository.RULES_REPOSITORY_NAME).getNode("drools.package.migrated").remove();
sess.save();
MigrateDroolsPackage mig = new MigrateDroolsPackage();
More information about the jboss-svn-commits
mailing list