[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