[jboss-svn-commits] JBL Code SVN: r10054 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/modeldriven/ui and 9 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 7 23:35:50 EST 2007


Author: michael.neale at jboss.com
Date: 2007-03-07 23:35:50 -0500 (Wed, 07 Mar 2007)
New Revision: 10054

Added:
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/packages/
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/packages/SuggestionCompletionCacheTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/TestHarnessJBRMSServiceServlet.java
Removed:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleModelData.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/MockJBRMSServiceServlet.java
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageManagerView.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SuggestionCompletionCache.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PopulateDataTest.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-725 And major refactoring

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -6,12 +6,14 @@
 import org.drools.brms.client.categorynav.CategoryExplorerWidget;
 import org.drools.brms.client.categorynav.CategorySelectHandler;
 import org.drools.brms.client.common.AssetFormats;
-import org.drools.brms.client.common.ErrorPopup;
 import org.drools.brms.client.common.GenericCallback;
 import org.drools.brms.client.common.LoadingPopup;
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.packages.SuggestionCompletionCache;
 import org.drools.brms.client.rpc.RepositoryServiceFactory;
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.TableDataResult;
+import org.drools.brms.client.ruleeditor.EditorLauncher;
 import org.drools.brms.client.ruleeditor.NewAssetWizard;
 import org.drools.brms.client.ruleeditor.RuleViewer;
 import org.drools.brms.client.rulelist.AssetItemListViewer;
@@ -20,7 +22,6 @@
 
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.rpc.AsyncCallback;
 import com.google.gwt.user.client.ui.ClickListener;
 import com.google.gwt.user.client.ui.FlexTable;
 import com.google.gwt.user.client.ui.HasHorizontalAlignment;
@@ -33,6 +34,8 @@
 
 /**
  * This controls the "Rules manager" top level feature.
+ * TODO: refactor this into a "AssetExplorer" widget, this feature should purely be 
+ * for layout.
  * @author Michael Neale
  */
 public class RulesFeature extends JBRMSFeature {
@@ -162,7 +165,7 @@
     }
 
     public void showLoadEditor(String uuid) {
-        showLoadEditor( openedViewers, tab, uuid, false );
+        EditorLauncher.showLoadEditor( openedViewers, tab, uuid, false );
     }
 
     private void showNewAssetWizard() {
@@ -182,62 +185,10 @@
 
 
 
-    /**
-     * This will show the rule viewer. If it was previously opened, it will show that dialog instead
-     * of opening it again.
-     */
-    public static void showLoadEditor(final Map openedViewers, final TabPanel tab,  final String uuid, final boolean readonly) {
-      
-        
-      if (openedViewers.containsKey( uuid )) {
-          tab.selectTab( tab.getWidgetIndex( (Widget) openedViewers.get( uuid ) ));
-          LoadingPopup.close();
-          return;
-      }
-        
-      RepositoryServiceFactory.getService().loadRuleAsset( uuid,
-      new AsyncCallback() {
-          public void onFailure(Throwable e) {
-              ErrorPopup.showMessage( e.getMessage() );
-          }
 
-          public void onSuccess(Object o) {
-              RuleAsset asset = (RuleAsset) o;
-              final RuleViewer view = new RuleViewer(asset, readonly);
-              
-              String displayName = asset.metaData.name;
-              if (displayName.length() > 10) {
-                  displayName = displayName.substring( 0, 7 ) + "...";
-              }
-              String icon = "rule_asset.gif";
-              if (asset.metaData.format.equals( AssetFormats.DRL )) {
-                  icon = "technical_rule_assets.gif";
-              } else if (asset.metaData.format.equals( AssetFormats.DSL )) {
-                  icon = "dsl.gif";
-              } else if (asset.metaData.format.equals( AssetFormats.FUNCTION )) {
-                  icon = "function_assets.gif";
-              } else if (asset.metaData.format.equals( AssetFormats.MODEL )) {
-                  icon = "model_asset.gif";
-              }
-              tab.add( view, "<img src='images/" + icon + "'>" + displayName, true );
-              
-              openedViewers.put(uuid, view);
-              
-              view.setCloseCommand( new Command() {
-                  public void execute() {
-                    tab.remove( tab.getWidgetIndex( view ) ); 
-                    tab.selectTab( 0 );
-                    openedViewers.remove( uuid );
-                    
-                  }
-              });
-              tab.selectTab( tab.getWidgetIndex( view ) );
-          }
 
-      } );
-        
-        
 
-    }
 
+
+
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/modeldriven/ui/RuleModeller.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -18,6 +18,8 @@
 import org.drools.brms.client.modeldriven.brxml.IPattern;
 import org.drools.brms.client.modeldriven.brxml.RuleAttribute;
 import org.drools.brms.client.modeldriven.brxml.RuleModel;
+import org.drools.brms.client.packages.SuggestionCompletionCache;
+import org.drools.brms.client.rpc.RuleAsset;
 
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.Window;
@@ -45,9 +47,9 @@
     private SuggestionCompletionEngine completions;
     private RuleModel model;
     
-    public RuleModeller(SuggestionCompletionEngine com, RuleModel model) {
-        this.model = model;
-        this.completions = com;
+    public RuleModeller(RuleAsset asset) {
+        this.model = (RuleModel) asset.content;
+        this.completions = SuggestionCompletionCache.getInstance().getEngineFromCache( asset.metaData.packageName );
         
         layout = new FlexTable();
         

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageManagerView.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageManagerView.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageManagerView.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -3,7 +3,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.drools.brms.client.RulesFeature;
+import org.drools.brms.client.ruleeditor.EditorLauncher;
 import org.drools.brms.client.rulelist.EditItemEvent;
 
 import com.google.gwt.user.client.ui.Composite;
@@ -42,7 +42,7 @@
         tab.setHeight("100%");   
         EditItemEvent editEvent = new EditItemEvent() {
             public void open(String key) {
-                RulesFeature.showLoadEditor( openedViewers, tab, key, readonly );
+                EditorLauncher.showLoadEditor( openedViewers, tab, key, readonly );
             }
         };
         PackageExplorerWidget explorer = null;

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SuggestionCompletionCache.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SuggestionCompletionCache.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/SuggestionCompletionCache.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -3,25 +3,77 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.drools.brms.client.common.ErrorPopup;
+import org.drools.brms.client.common.GenericCallback;
 import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
 
+import com.google.gwt.user.client.Command;
+
+/**
+ * This utility cache will maintain a cache of suggestion completion engines,
+ * as they are somewhat heavy to load. 
+ * If it needs to be loaded, then it will load, and then call the appropriate action, 
+ * and keep it in the cache.
+ * 
+ * @author Michael Neale
+ *
+ */
 public class SuggestionCompletionCache {
 
     private static SuggestionCompletionCache INSTANCE = new SuggestionCompletionCache();
     
-    private Map cache = new HashMap();
+    Map cache = new HashMap();
     
+    
+    
     public static SuggestionCompletionCache getInstance() {
         return INSTANCE;
     }
+
+
+    /**
+     * This will do the action, after refreshing the cache if necessary.
+     */
+    public void doAction(String packageName,
+                         Command command) {
+        
+        if (!this.cache.containsKey( packageName )) {
+            loadPackage(packageName, command);
+        } else {
+            command.execute();
+        }
+        
+        
+    }
     
-    public SuggestionCompletionEngine getSuggestions(String packageName) {
-        if (cache.containsKey( packageName )) {
-            return (SuggestionCompletionEngine) cache.get( packageName );
-        } else {
+    public SuggestionCompletionEngine getEngineFromCache(String packageName) {
+        SuggestionCompletionEngine eng = (SuggestionCompletionEngine) cache.get( packageName );
+        if (eng == null) {
+            ErrorPopup.showMessage( "Unable to get content assistance for this rule." );
             return null;
         }
+        return eng;
     }
+
+
+    void loadPackage(final String packageName, final Command command) {
+        
+        RepositoryServiceFactory.getService().loadSuggestionCompletionEngine( packageName, new GenericCallback() {
+            public void onSuccess(Object data) {
+                SuggestionCompletionEngine engine = (SuggestionCompletionEngine) data;
+                cache.put( packageName, engine );
+                command.execute();
+            }
+        });
+    }
+
+
+    /**
+     * Removed the package from the cache, causing it to be loaded the next time.
+     */
+    public void removePackage(String packageName) {
+        cache.remove( packageName );
+    }
     
-    
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -1,5 +1,7 @@
 package org.drools.brms.client.rpc;
 
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+
 import com.google.gwt.user.client.rpc.RemoteService;
 import com.google.gwt.user.client.rpc.SerializableException;
 
@@ -186,4 +188,11 @@
      */
     public void removeCategory(String categoryPath) throws SerializableException;
     
+    /**
+     * Loads up the SuggestionCompletionEngine for the given package.
+     * As this doesn't change that often, its safe to cache. However, if a change is made to
+     * a package, should blow away the cache.
+     */
+    public SuggestionCompletionEngine loadSuggestionCompletionEngine(String packageName) throws SerializableException;
+    
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -39,5 +39,7 @@
     public void copyOrRemoveSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3, AsyncCallback cb);
     public void quickFindAsset(java.lang.String p0, int p1, AsyncCallback cb);
     public void removeCategory(java.lang.String p0, AsyncCallback cb);
-    public void changeState(java.lang.String p0, java.lang.String p1, boolean p2, AsyncCallback cb);    
+    public void loadSuggestionCompletionEngine(java.lang.String p0, AsyncCallback cb);
+    public void changeState(java.lang.String p0, java.lang.String p1, boolean p2, AsyncCallback cb);
+
 }

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleModelData.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleModelData.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RuleModelData.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -1,20 +0,0 @@
-package org.drools.brms.client.rpc;
-
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.brms.client.modeldriven.brxml.RuleModel;
-
-import com.google.gwt.user.client.rpc.IsSerializable;
-
-/**
- * This wraps the rule model data with the suggestion completion engine for loading.
- * @author Michael Neale
- *
- */
-public class RuleModelData
-    implements
-    IsSerializable {
-    
-    public RuleModel model;
-    public SuggestionCompletionEngine completionEngine;
-
-}

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -19,10 +19,8 @@
 import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.rpc.MetaData;
 import org.drools.brms.client.rpc.PackageConfigData;
-import org.drools.brms.client.rpc.RepositoryServiceAsync;
 import org.drools.brms.client.rpc.RuleAsset;
 import org.drools.brms.client.rpc.RuleContentText;
-import org.drools.brms.client.rpc.RuleModelData;
 import org.drools.brms.client.rpc.TableConfig;
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
@@ -169,10 +167,7 @@
             
         } else {
             meta.format = AssetFormats.BUSINESS_RULE;
-            RuleModelData data = new RuleModelData();
-            data.completionEngine = getDummySuggestionEngine();
-            data.model = getDummyData();
-            asset.content = data;
+            asset.content = getDummyData();
         }
         
         asset.metaData = meta;

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -1,14 +1,20 @@
 package org.drools.brms.client.ruleeditor;
 
+import java.util.Map;
+
 import org.drools.brms.client.common.AssetFormats;
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.common.GenericCallback;
+import org.drools.brms.client.common.LoadingPopup;
 import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.modeldriven.ui.RuleModeller;
 import org.drools.brms.client.packages.ModelAttachmentFileWidget;
+import org.drools.brms.client.packages.SuggestionCompletionCache;
 import org.drools.brms.client.rpc.DSLRuleData;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
 import org.drools.brms.client.rpc.RuleAsset;
-import org.drools.brms.client.rpc.RuleModelData;
 
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.ui.TabPanel;
 import com.google.gwt.user.client.ui.Widget;
 
 /**
@@ -28,15 +34,19 @@
     /**
      * This will return the appropriate viewer for the asset.
      */
-    public static Widget getEditorViewer(RuleAsset asset, RuleViewer viewer) {
+    public static Widget getEditorViewer(RuleAsset asset,
+                                         RuleViewer viewer) {
         //depending on the format, load the appropriate editor
         if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {
-            return new RuleModeller( getSuggestionCompletionEngine(asset), getRuleModel(asset) );
-        } else if (asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE )){
-            DSLRuleData data = (DSLRuleData) asset.content;            
-            return new DSLRuleEditor( data.text, data.lhsSuggestions, data.rhsSuggestions );
-        } else if (asset.metaData.format.equals( AssetFormats.MODEL ) ) {
-            return new ModelAttachmentFileWidget(asset, viewer);
+            return new RuleModeller( asset  );
+        } else if ( asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE ) ) {
+            DSLRuleData data = (DSLRuleData) asset.content;
+            return new DSLRuleEditor( data.text,
+                                      data.lhsSuggestions,
+                                      data.rhsSuggestions );
+        } else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {
+            return new ModelAttachmentFileWidget( asset,
+                                                  viewer );
         } else {
 
             return new DefaultRuleContentWidget( asset );
@@ -44,15 +54,93 @@
 
     }
 
-    private static SuggestionCompletionEngine getSuggestionCompletionEngine(RuleAsset asset) {
-        RuleModelData data = (RuleModelData) asset.content;
-        return data.completionEngine;
+
+    /**
+     * This will show the rule viewer. If it was previously opened, it will show that dialog instead
+     * of opening it again.
+     */
+    public static void showLoadEditor(final Map openedViewers,
+                                      final TabPanel tab,
+                                      final String uuid,
+                                      final boolean readonly) {
+
+        if ( openedViewers.containsKey( uuid ) ) {
+            tab.selectTab( tab.getWidgetIndex( (Widget) openedViewers.get( uuid ) ) );
+            LoadingPopup.close();
+            return;
+        }
+
+        RepositoryServiceFactory.getService().loadRuleAsset( uuid,
+                                                             new GenericCallback() {
+
+                                                                 public void onSuccess(Object o) {
+                                                                     final RuleAsset asset = (RuleAsset) o;
+
+                                                                     SuggestionCompletionCache cache = SuggestionCompletionCache.getInstance();
+                                                                     cache.doAction( asset.metaData.packageName,
+                                                                                     new Command() {
+                                                                                         public void execute() {
+                                                                                             openRuleViewer( openedViewers,
+                                                                                                             tab,
+                                                                                                             uuid,
+                                                                                                             readonly,
+                                                                                                             asset );
+                                                                                         }
+
+                                                                                     } );
+                                                                 }
+
+                                                             } );
+
     }
 
-    private static RuleModel getRuleModel(RuleAsset asset) {
-        RuleModelData data = (RuleModelData) asset.content;        
-        return (RuleModel) data.model;
+    /**
+     * This will actually show the viewer once everything is loaded and ready.
+     * @param openedViewers
+     * @param tab
+     * @param uuid
+     * @param readonly
+     * @param asset
+     */
+    private static void openRuleViewer(final Map openedViewers,
+                                       final TabPanel tab,
+                                       final String uuid,
+                                       final boolean readonly,
+                                       RuleAsset asset) {
+        final RuleViewer view = new RuleViewer( asset,
+                                                readonly );
+
+        String displayName = asset.metaData.name;
+        if ( displayName.length() > 10 ) {
+            displayName = displayName.substring( 0,
+                                                 7 ) + "...";
+        }
+        String icon = "rule_asset.gif";
+        if ( asset.metaData.format.equals( AssetFormats.DRL ) ) {
+            icon = "technical_rule_assets.gif";
+        } else if ( asset.metaData.format.equals( AssetFormats.DSL ) ) {
+            icon = "dsl.gif";
+        } else if ( asset.metaData.format.equals( AssetFormats.FUNCTION ) ) {
+            icon = "function_assets.gif";
+        } else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {
+            icon = "model_asset.gif";
+        }
+        tab.add( view,
+                 "<img src='images/" + icon + "'>" + displayName,
+                 true );
+
+        openedViewers.put( uuid,
+                           view );
+
+        view.setCloseCommand( new Command() {
+            public void execute() {
+                tab.remove( tab.getWidgetIndex( view ) );
+                tab.selectTab( 0 );
+                openedViewers.remove( uuid );
+
+            }
+        } );
+        tab.selectTab( tab.getWidgetIndex( view ) );
     }
 
-
 }

Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/AssetContentFormatHandler.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -1,105 +0,0 @@
-package org.drools.brms.server;
-
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.drools.brms.client.common.AssetFormats;
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.brms.client.modeldriven.brxml.DSLSentence;
-import org.drools.brms.client.modeldriven.brxml.DSLSentenceFragment;
-import org.drools.brms.client.modeldriven.brxml.RuleModel;
-import org.drools.brms.client.rpc.DSLRuleData;
-import org.drools.brms.client.rpc.RuleAsset;
-import org.drools.brms.client.rpc.RuleContentText;
-import org.drools.brms.client.rpc.RuleModelData;
-import org.drools.brms.server.contenthandler.ContentHandler;
-import org.drools.brms.server.util.BRLPersistence;
-import org.drools.repository.AssetItem;
-
-import com.google.gwt.user.client.rpc.SerializableException;
-
-/**
- * This takes care of the different asset types, based on the dublin core "format"
- * attribute.
- * 
- * This handles the loading/storing of these assets, as some of them require massaging 
- * before they are stored in the repository.
- * 
- * It uses the content attribute of asset nodes (drools:content) based
- * on the (drools:format) format key.
- * 
- * NOTE: when enhancing this, don't forget to do the retrieve AND the store !
- * 
- * @see AssetFormats
- * 
- * NOTE: THIS IS NOT NEEDED... remove it when integration tests completeted.
- * 
- * @author Michael Neale
- */
-public class AssetContentFormatHandler {//implements ContentHandler {
-
-//    /* (non-Javadoc)
-//     * @see org.drools.brms.server.FormatHandler#retrieveAssetContent(org.drools.brms.client.rpc.RuleAsset, org.drools.repository.AssetItem)
-//     */
-//    public void retrieveAssetContent(RuleAsset asset,
-//                                     AssetItem item) throws SerializableException {
-//        if (item.getFormat().equals( AssetFormats.BUSINESS_RULE )) {             
-//            RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
-//
-//            RuleModelData data = new RuleModelData();
-//            data.model = model;
-//            //TODO: replace with the code that loads it from a cache server side.
-//            //otherwise it will look at the current package, and then work out the model from that.
-//            data.completionEngine = getDummySuggestionEngine();
-//            
-//            asset.content = data;
-//        } else if (item.getFormat().equals( AssetFormats.DSL_TEMPLATE_RULE )) {
-//            RuleContentText text = new RuleContentText();
-//            text.content = item.getContent();
-//            
-//            //TODO: make this read in the DSL files in the current package.
-//            DSLRuleData data = getDummyDSLSuggestions();
-//            data.text = text;
-//            
-//            asset.content = data;            
-//        } else {
-//            //default to text, goode olde texte, just like mum used to make.
-//            RuleContentText text = new RuleContentText();
-//            text.content = item.getContent();
-//            asset.content = text;
-//
-//        }
-//        
-//
-//        
-//    }
-//    
-//
-//
-//
-//    
-//    /* (non-Javadoc)
-//     * @see org.drools.brms.server.FormatHandler#storeAssetContent(org.drools.brms.client.rpc.RuleAsset, org.drools.repository.AssetItem)
-//     */
-//    public void storeAssetContent(RuleAsset asset, AssetItem repoAsset) throws SerializableException {
-//        if (asset.content instanceof RuleContentText) {
-//            repoAsset.updateContent( ((RuleContentText)asset.content).content );        
-//        } else if (asset.content instanceof RuleModelData) {
-//            RuleModelData data = (RuleModelData) asset.content;
-//            repoAsset.updateContent( BRLPersistence.getInstance().toXML( data.model ) );
-//        } else if (asset.content instanceof DSLRuleData) {
-//            DSLRuleData data = (DSLRuleData) asset.content;
-//            repoAsset.updateContent( data.text.content );
-//        } else if (asset.metaData.format.equals( AssetFormats.MODEL )) {
-//            //do nothing, as we have an attachment
-//        } else {
-//            throw new SerializableException("Not able to handle that type of content just yet...");
-//        }
-//    }
-    
-    
-    
-    
-
-}

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -16,6 +16,7 @@
 
 import org.apache.log4j.Logger;
 import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.rpc.MetaData;
 import org.drools.brms.client.rpc.PackageConfigData;
 import org.drools.brms.client.rpc.RepositoryService;
@@ -25,6 +26,7 @@
 import org.drools.brms.client.rpc.TableDataResult;
 import org.drools.brms.client.rpc.TableDataRow;
 import org.drools.brms.server.contenthandler.ContentHandler;
+import org.drools.brms.server.rules.SuggestionCompletionLoader;
 import org.drools.brms.server.util.MetaDataMapper;
 import org.drools.brms.server.util.RepositoryManager;
 import org.drools.brms.server.util.TableDisplayHandler;
@@ -564,6 +566,14 @@
         }
         
     }
+
+    public SuggestionCompletionEngine loadSuggestionCompletionEngine(String packageName) throws SerializableException {
+        RulesRepository repo = getRulesRepository();
+        PackageItem pkg = repo.loadPackage( packageName );
+        SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
+        return loader.getSuggestionEngine( pkg );
+        
+    }
     
 
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/contenthandler/BRXMLContentHandler.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -1,20 +1,10 @@
 package org.drools.brms.server.contenthandler;
 
-import java.io.IOException;
-import java.util.Collection;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.rpc.RuleAsset;
-import org.drools.brms.client.rpc.RuleModelData;
-import org.drools.brms.server.rules.SuggestionCompletionLoader;
 import org.drools.brms.server.util.BRLPersistence;
-import org.drools.brms.server.util.SuggestionCompletionEngineBuilder;
 import org.drools.repository.AssetItem;
 import org.drools.repository.PackageItem;
-import org.drools.util.asm.ClassFieldInspector;
 
 import com.google.gwt.user.client.rpc.SerializableException;
 
@@ -26,19 +16,16 @@
                                      AssetItem item) throws SerializableException {
         RuleModel model = BRLPersistence.getInstance().toModel( item.getContent() );
 
-        RuleModelData data = new RuleModelData();
-        data.model = model;
+
         
-        SuggestionCompletionLoader loader = new SuggestionCompletionLoader();
-        data.completionEngine = loader.getSuggestionEngine( pkg );
-        asset.content = data;
+        asset.content = model;
 
     }
 
     public void storeAssetContent(RuleAsset asset,
                                   AssetItem repoAsset) throws SerializableException {
-        RuleModelData data = (RuleModelData) asset.content;
-        repoAsset.updateContent( BRLPersistence.getInstance().toXML( data.model ) );
+        RuleModel data = (RuleModel) asset.content;
+        repoAsset.updateContent( BRLPersistence.getInstance().toXML( data ) );
     }
     
 

Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/packages/SuggestionCompletionCacheTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/packages/SuggestionCompletionCacheTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/packages/SuggestionCompletionCacheTest.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -0,0 +1,60 @@
+package org.drools.brms.client.packages;
+
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+
+import com.google.gwt.user.client.Command;
+
+import junit.framework.TestCase;
+
+public class SuggestionCompletionCacheTest extends TestCase {
+
+    private boolean executed;
+    private boolean loaded;
+    
+    protected void setUp() throws Exception {
+        super.setUp();
+        executed = false;
+        loaded = false;
+    }
+    
+    public void testCache() {
+        SuggestionCompletionCache cache = SuggestionCompletionCache.getInstance();
+        assertSame(cache, SuggestionCompletionCache.getInstance());
+        
+        cache = new SuggestionCompletionCache() {
+            
+            void loadPackage(String packageName,
+                             Command command) {
+                loaded = true;
+                
+            }
+        };
+        
+        cache.doAction( "xyz", new Command() {
+            public void execute() {
+            }
+        });
+        assertTrue (loaded);
+        SuggestionCompletionEngine eng = new SuggestionCompletionEngine();
+        cache.cache.put( "foo",  eng);
+        
+        cache.doAction( "foo", new Command() {
+
+            public void execute() {
+                executed = true;
+            }
+            
+        });
+        
+        assertTrue(executed);
+        
+        assertNotNull(cache.getEngineFromCache( "foo" ));
+        
+        cache.removePackage( "foo" );
+        assertFalse(cache.cache.containsKey( "foo" ));
+        
+        
+        
+    }
+    
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/client/packages/SuggestionCompletionCacheTest.java
___________________________________________________________________
Name: svn:eol-style
   + native

Deleted: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/MockJBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/MockJBRMSServiceServlet.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/MockJBRMSServiceServlet.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -1,24 +0,0 @@
-package org.drools.brms.server;
-
-import org.drools.repository.RulesRepository;
-
-/**
- * This isn't really a mock, it just stubs out enough so I can test it from the servlet
- * down - at least the non servlet specific stuff.
- * 
- * @author michael neale.
- *
- */
-public class MockJBRMSServiceServlet extends JBRMSServiceServlet {
-
-    RulesRepository repo;
-
-    public MockJBRMSServiceServlet() throws Exception  {
-        repo = new RulesRepository(SessionHelper.getSession());        
-    }
-    
-    RulesRepository getRulesRepository() {        
-        return repo;
-    }
-
-}

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PopulateDataTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PopulateDataTest.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/PopulateDataTest.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -22,7 +22,7 @@
 public class PopulateDataTest extends TestCase {
 
     public void testPopulate() throws Exception {
-        JBRMSServiceServlet serv = new MockJBRMSServiceServlet();
+        JBRMSServiceServlet serv = new TestHarnessJBRMSServiceServlet();
         
         createCategories( serv );
         createStates( serv );

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-03-08 02:28:48 UTC (rev 10053)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -5,6 +5,9 @@
 
 import junit.framework.TestCase;
 
+import org.drools.brms.client.common.AssetFormats;
+import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
+import org.drools.brms.client.modeldriven.brxml.RuleModel;
 import org.drools.brms.client.rpc.PackageConfigData;
 import org.drools.brms.client.rpc.RepositoryService;
 import org.drools.brms.client.rpc.RuleAsset;
@@ -29,7 +32,7 @@
   public void testCategory() throws Exception {
         //ServiceImpl impl = new ServiceImpl(new RulesRepository(SessionHelper.getSession()));
 
-        RepositoryService impl = new MockJBRMSServiceServlet();
+        RepositoryService impl = new TestHarnessJBRMSServiceServlet();
       
         String[] originalCats = impl.loadChildCategories( "/" );
         
@@ -58,7 +61,7 @@
   public void testAddRuleAndListPackages() throws Exception {
       //ServiceImpl impl = new ServiceImpl(new RulesRepository(SessionHelper.getSession()));
       
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       
       impl.repo.loadDefaultPackage();
       impl.repo.createPackage( "another", "woot" );
@@ -95,7 +98,7 @@
   }
 
   public void testAttemptDupeRule() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       CategoryItem cat = impl.repo.loadCategory( "/" );
       cat.addCategory( "testAttemptDupeRule", "yeah" );
       
@@ -113,7 +116,7 @@
   }
   
   public void testRuleTableLoad() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       TableConfig conf = impl.loadTableConfig( AssetItemListViewer.RULE_LIST_TABLE_ID );
       assertNotNull(conf.headers);
       
@@ -147,7 +150,7 @@
   }
   
   public void testLoadRuleAsset() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       impl.repo.createPackage( "testLoadRuleAsset", "desc" );
       impl.createCategory( "", "testLoadRuleAsset", "this is a cat" );
       
@@ -189,12 +192,16 @@
       
       assertEquals("whee", asset.metaData.status);
       assertEquals("changed state", asset.metaData.checkinComment);
+   
       
+      uuid = impl.createNewRule( "testBRXMLFormatSugComp", "description", "testLoadRuleAsset", "testLoadRuleAsset", AssetFormats.BUSINESS_RULE );
+      asset = impl.loadRuleAsset( uuid );
+      assertTrue(asset.content instanceof RuleModel);
       
   }
   
   public void testLoadAssetHistoryAndRestore() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       impl.repo.createPackage( "testLoadAssetHistory", "desc" );
       impl.createCategory( "", "testLoadAssetHistory", "this is a cat" );
       
@@ -234,7 +241,7 @@
   
   
   public void testCheckin() throws Exception {
-          MockJBRMSServiceServlet serv = new MockJBRMSServiceServlet();
+          TestHarnessJBRMSServiceServlet serv = new TestHarnessJBRMSServiceServlet();
           
           serv.listPackages();
           
@@ -293,7 +300,7 @@
   
   
   public void testCreatePackage() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       PackageConfigData[] pkgs = impl.listPackages();
       String uuid = impl.createPackage( "testCreatePackage", "this is a new package" );
       assertNotNull( uuid );
@@ -312,7 +319,7 @@
   }
   
   public void testLoadPackageConfig() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       PackageItem it = impl.repo.loadDefaultPackage();
       String uuid = it.getUUID();
       it.updateCoverage( "xyz" );
@@ -332,7 +339,7 @@
   }
   
   public void testPackageConfSave() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       String uuid = impl.createPackage( "testPackageConfSave", "a desc" );
       PackageConfigData data = impl.loadPackageConfig( uuid );
       
@@ -352,7 +359,7 @@
   }
   
   public void testListByFormat() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       String cat = "testListByFormat";
       impl.createCategory( "/", cat, "ya" );
       String pkgUUID = impl.createPackage( "testListByFormat", "used for listing by format." );
@@ -409,7 +416,7 @@
   }
   
   public void testStatus() throws Exception {
-      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      TestHarnessJBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       String uuid = impl.createState( "testStatus1" );
       assertNotNull(uuid);
       
@@ -463,7 +470,7 @@
   }
   
   public void testMovePackage() throws Exception {
-      JBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      JBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       String[] cats = impl.loadChildCategories( "/" );
       if (cats.length == 0) {
           impl.createCategory( "/", "la", "d" );
@@ -494,7 +501,7 @@
   }
   
   public void testCopyAsset() throws Exception {
-      JBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      JBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       impl.createCategory( "/", "templates", "ya" );
       String uuid = impl.createNewRule( "testCopyAsset", "", "templates", "default", "drl" );
       String uuid2 = impl.copyAsset( uuid, "default", "testCopyAsset2" );
@@ -507,7 +514,7 @@
   }
   
   public void testSnapshot() throws Exception {
-      JBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      JBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       impl.createCategory( "/", "snapshotTesting", "y" );
       impl.createPackage( "testSnapshot", "d" );
       String uuid = impl.createNewRule( "testSnapshotRule", "", "snapshotTesting", "testSnapshot", "drl" );
@@ -549,7 +556,7 @@
   
   public void testRemoveCategory() throws Exception {
       
-      JBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      JBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
       String[] children = impl.loadChildCategories( "/" );
       impl.createCategory( "/", "testRemoveCategory", "foo" );
       
@@ -558,5 +565,16 @@
       assertEquals(children.length, _children.length);
   }
   
+  public void testLoadSuggestionCompletionEngine() throws Exception {
+      JBRMSServiceServlet impl = new TestHarnessJBRMSServiceServlet();
+      String uuid = impl.createPackage( "testSuggestionComp", "x" );
+      PackageConfigData conf = impl.loadPackageConfig( uuid );
+      conf.header = "import java.util.List";
+      
+      SuggestionCompletionEngine eng = impl.loadSuggestionCompletionEngine( "testSuggestionComp" );
+      assertNotNull(eng);
+      
+  }
+  
     
 }

Copied: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/TestHarnessJBRMSServiceServlet.java (from rev 10006, labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/MockJBRMSServiceServlet.java)
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/TestHarnessJBRMSServiceServlet.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/TestHarnessJBRMSServiceServlet.java	2007-03-08 04:35:50 UTC (rev 10054)
@@ -0,0 +1,24 @@
+package org.drools.brms.server;
+
+import org.drools.repository.RulesRepository;
+
+/**
+ * This isn't really a mock, it just stubs out enough so I can test it from the servlet
+ * down - at least the non servlet specific stuff.
+ * 
+ * @author michael neale.
+ *
+ */
+public class TestHarnessJBRMSServiceServlet extends JBRMSServiceServlet {
+
+    RulesRepository repo;
+
+    public TestHarnessJBRMSServiceServlet() throws Exception  {
+        repo = new RulesRepository(SessionHelper.getSession());        
+    }
+    
+    RulesRepository getRulesRepository() {        
+        return repo;
+    }
+
+}




More information about the jboss-svn-commits mailing list