[jboss-svn-commits] JBL Code SVN: r26985 - labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Jun 16 13:01:57 EDT 2009


Author: Rikkola
Date: 2009-06-16 13:01:57 -0400 (Tue, 16 Jun 2009)
New Revision: 26985

Modified:
   labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
Log:
GUVNOR-361 : Unarchiving packages doesn't unarchive their configuration

Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2009-06-16 15:05:30 UTC (rev 26984)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2009-06-16 17:01:57 UTC (rev 26985)
@@ -833,7 +833,14 @@
         log.info( "USER:" + repository.getSession().getUserID() + " SAVING package [" + data.name + "]" );
 
         PackageItem item = repository.loadPackage( data.name );
+        
+        // If package is being unarchived.
+        boolean unarchived = (data.archived == false  && item.isArchived() == true);
+        Calendar packageLastModified = item.getLastModified();
+        
 
+        updateDroolsHeader( data.header,
+                            item );
         item.updateCategoryRules( convertMapToString( data.catRules,
                                                       true ),
                                   convertMapToString( data.catRules,
@@ -844,8 +851,6 @@
         item.archiveItem( data.archived );
         item.updateBinaryUpToDate( false );
         this.ruleBaseCache.remove( data.uuid );
-        updateDroolsHeader( data.header,
-                            item );
         item.checkin( data.description );
 
         // If package is archived, archive all the assets under it
@@ -855,6 +860,16 @@
                 assetItem.archiveItem( true );
                 assetItem.checkin( data.description );
             }
+        } else if ( unarchived ) {
+            for ( Iterator<AssetItem> iter = item.getAssets(); iter.hasNext(); ) {
+                AssetItem assetItem = iter.next();
+                // Unarchive the assets archived after the package 
+                // ( == at the same time that the package was archived)
+                if ( assetItem.getLastModified().compareTo( packageLastModified ) >= 0 ) {
+                    assetItem.archiveItem( false );
+                    assetItem.checkin( data.description );
+                }
+            }
         }
 
         BRMSSuggestionCompletionLoader loader = new BRMSSuggestionCompletionLoader();
@@ -2153,13 +2168,6 @@
             conf = pkg.loadAsset( "drools" );
             conf.updateContent( string );
             
-            // If package is unarchived and header is not, unarchive it.
-            boolean a = conf.isArchived();
-            boolean b = pkg.isArchived();
-            if ( conf.isArchived() == true && pkg.isArchived() == false ) {
-                conf.archiveItem( false );
-            }
-            
             conf.checkin( "" );
         } else {
             conf = pkg.addAsset( "drools",




More information about the jboss-svn-commits mailing list