[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