[jboss-svn-commits] JBL Code SVN: r11706 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/packages and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon May 7 03:17:31 EDT 2007
Author: michael.neale at jboss.com
Date: 2007-05-07 03:17:31 -0400 (Mon, 07 May 2007)
New Revision: 11706
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java
Removed:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleBuilderWidget.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/RulePackageSelector.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageBuilderWidget.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/builder/ContentPackageAssembler.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-832, JBRULES-777 asset validation
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/RulePackageSelector.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/RulePackageSelector.java 2007-05-07 07:09:54 UTC (rev 11705)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/RulePackageSelector.java 2007-05-07 07:17:31 UTC (rev 11706)
@@ -35,6 +35,7 @@
});
+
initWidget( packageList );
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageBuilderWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageBuilderWidget.java 2007-05-07 07:09:54 UTC (rev 11705)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageBuilderWidget.java 2007-05-07 07:17:31 UTC (rev 11706)
@@ -38,6 +38,7 @@
/**
* This is the widget for building packages, validating etc.
+ * Visually decorates or wraps a rule editor widget with buttons for this purpose.
*
* @author Michael Neale
*/
@@ -103,12 +104,12 @@
/**
- * Popup the view source.
+ * Popup the view source dialog, showing the given content.
*/
- private static void showSource(String content, String name) {
+ public static void showSource(String content, String name) {
FormStylePopup pop = new FormStylePopup("images/view_source.gif", "Viewing source for: " + name);
TextArea area = new TextArea();
- area.setVisibleLines( 48 );
+ area.setVisibleLines( 30 );
area.setWidth( "100%" );
area.setCharacterWidth( 80 );
pop.addRow( area );
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-05-07 07:09:54 UTC (rev 11705)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/EditorLauncher.java 2007-05-07 07:17:31 UTC (rev 11706)
@@ -37,15 +37,15 @@
RuleViewer viewer) {
//depending on the format, load the appropriate editor
if ( asset.metaData.format.equals( AssetFormats.BUSINESS_RULE ) ) {
- return new RuleModeller( asset );
+ return new RuleValidatorWrapper( new RuleModeller( asset ), asset);
} else if ( asset.metaData.format.equals( AssetFormats.DSL_TEMPLATE_RULE ) ) {
- return new DSLRuleEditor( asset );
+ return new RuleValidatorWrapper(new DSLRuleEditor( asset ), asset);
} else if ( asset.metaData.format.equals( AssetFormats.MODEL ) ) {
return new ModelAttachmentFileWidget( asset, viewer );
} else if (asset.metaData.format.equals( AssetFormats.DECISION_SPREADSHEET_XLS )){
- return new DecisionTableXLSWidget( asset, viewer );
+ return new RuleValidatorWrapper(new DecisionTableXLSWidget( asset, viewer ), asset);
} else {
- return new DefaultRuleContentWidget( asset );
+ return new RuleValidatorWrapper(new DefaultRuleContentWidget( asset ), asset);
}
}
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleBuilderWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleBuilderWidget.java 2007-05-07 07:09:54 UTC (rev 11705)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleBuilderWidget.java 2007-05-07 07:17:31 UTC (rev 11706)
@@ -1,56 +0,0 @@
-package org.drools.brms.client.ruleeditor;
-
-import org.drools.brms.client.rpc.RuleAsset;
-
-import com.google.gwt.user.client.ui.Button;
-import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.Composite;
-import com.google.gwt.user.client.ui.FlexTable;
-import com.google.gwt.user.client.ui.HasHorizontalAlignment;
-import com.google.gwt.user.client.ui.HasVerticalAlignment;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.Widget;
-
-/**
- * This widget wraps a rule asset widget, and provides actions to validate and view source.
- * @author Michael Neale
- */
-public class RuleBuilderWidget extends Composite {
-
-
- private RuleAsset asset;
-
- public RuleBuilderWidget(Widget editor, RuleAsset asset) {
- this.asset = asset;
-
-
- FlexTable layout = new FlexTable();
- layout.setStyleName( "asset-editor-Layout" );
- layout.setWidget( 0, 0, editor );
- layout.setWidget( 1, 0, validatorActions() );
- layout.getCellFormatter().setAlignment( 1, 0, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_MIDDLE );
-
-
-
- initWidget( editor );
- }
-
- private Widget validatorActions() {
- HorizontalPanel horiz = new HorizontalPanel();
- Button viewSource = new Button("View source");
- horiz.add( viewSource );
-
- Button validate = new Button("Validate");
- horiz.add( validate );
-
- viewSource.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- //doViewsource();
- }
- });
-
- horiz.setStyleName( "asset-validator-Buttons" );
- return horiz;
- }
-
-}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/RuleValidatorWrapper.java 2007-05-07 07:17:31 UTC (rev 11706)
@@ -0,0 +1,130 @@
+package org.drools.brms.client.ruleeditor;
+
+import org.drools.brms.client.common.FormStylePopup;
+import org.drools.brms.client.common.GenericCallback;
+import org.drools.brms.client.common.LoadingPopup;
+import org.drools.brms.client.packages.PackageBuilderWidget;
+import org.drools.brms.client.rpc.BuilderResult;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
+import org.drools.brms.client.rpc.RuleAsset;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This widget wraps a rule asset widget, and provides actions to validate and view source.
+ * @author Michael Neale
+ */
+public class RuleValidatorWrapper extends Composite {
+
+
+ private RuleAsset asset;
+
+ public RuleValidatorWrapper(Widget editor, RuleAsset asset) {
+ this.asset = asset;
+
+
+ FlexTable layout = new FlexTable();
+ layout.setStyleName( "asset-editor-Layout" );
+ layout.setWidget( 0, 0, editor );
+ layout.setWidget( 1, 0, validatorActions() );
+ layout.getCellFormatter().setAlignment( 1, 0, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_MIDDLE );
+
+
+ layout.setWidth("100%");
+ layout.setHeight( "100%" );
+
+ initWidget( layout );
+ }
+
+ private Widget validatorActions() {
+ HorizontalPanel horiz = new HorizontalPanel();
+ Button viewSource = new Button("View source");
+ horiz.add( viewSource );
+
+ Button validate = new Button("Validate");
+ horiz.add( validate );
+
+ viewSource.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ doViewsource();
+ }
+
+ });
+
+ validate.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ doValidate();
+ }
+ });
+
+ horiz.setStyleName( "asset-validator-Buttons" );
+ return horiz;
+ }
+
+ private void doValidate() {
+
+ LoadingPopup.showMessage( "Validating item, please wait..." );
+ RepositoryServiceFactory.getService().buildAsset( asset, new GenericCallback() {
+ public void onSuccess(Object data) {
+ BuilderResult[] results = (BuilderResult[]) data;
+ showBuilderErrors(results);
+ }
+ });
+
+ }
+
+ private void doViewsource() {
+ LoadingPopup.showMessage( "Calculating source..." );
+ RepositoryServiceFactory.getService().buildAssetSource( this.asset, new GenericCallback() {
+ public void onSuccess(Object data) {
+ String src = (String) data;
+ showSource(src);
+ }
+ });
+
+ }
+
+ private void showSource(String src) {
+ PackageBuilderWidget.showSource( src, this.asset.metaData.name );
+ LoadingPopup.close();
+ }
+
+ private void showBuilderErrors(BuilderResult[] results) {
+ FormStylePopup pop = new FormStylePopup("images/package_builder.png", "Validation results");
+ if (results == null || results.length == 0) {
+ pop.addRow( new HTML("<img src='images/tick_green.gif'/><i>Rule built successfully.</i>") );
+ } else {
+ FlexTable errTable = new FlexTable();
+ errTable.setStyleName( "build-Results" );
+ for ( int i = 0; i < results.length; i++ ) {
+ int row = i;
+ final BuilderResult res = results[i];
+ errTable.setWidget( row, 0, new Image("images/error.gif"));
+ if( res.assetFormat.equals( "package" )) {
+ errTable.setText( row, 1, "[package configuration problem] " + res.message );
+ } else {
+ errTable.setText( row, 1, res.message );
+ }
+
+ }
+ errTable.setWidth( "100%" );
+ pop.addRow( errTable );
+
+ }
+ pop.setPopupPosition( 100, 100 );
+ pop.show();
+ LoadingPopup.close();
+ }
+
+
+
+}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java 2007-05-07 07:09:54 UTC (rev 11705)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/builder/ContentPackageAssembler.java 2007-05-07 07:17:31 UTC (rev 11706)
@@ -164,6 +164,9 @@
}
private void addDrl(String drl) {
+ if ("".equals( drl )) {
+ return;
+ }
try {
builder.addPackageFromDrl( new StringReader(drl) );
} catch ( DroolsParserException e ) {
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-05-07 07:09:54 UTC (rev 11705)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java 2007-05-07 07:17:31 UTC (rev 11706)
@@ -1204,7 +1204,47 @@
assertNull(result);
}
+
+ public void testBuildAssetWithPackageConfigError() throws Exception {
+ ServiceImplementation impl = getService();
+ RulesRepository repo = impl.repository;
+
+ PackageItem pkg = repo.createPackage( "testBuildAssetWithPackageConfigError", "" );
+// AssetItem model = pkg.addAsset( "MyModel", "" );
+// model.updateFormat( AssetFormats.MODEL );
+// model.updateBinaryContentAttachment( this.getClass().getResourceAsStream( "/billasurf.jar" ) );
+// model.checkin( "" );
+
+// pkg.updateHeader( "import com.billasurf.Person" );
+
+
+ AssetItem asset = pkg.addAsset( "testRule", "" );
+ asset.updateFormat( AssetFormats.DRL );
+ asset.updateContent( "rule 'MyGoodRule' \n when \n then \n end");
+ asset.checkin( "" );
+ repo.save();
+
+ RuleAsset rule = impl.loadRuleAsset( asset.getUUID() );
+ //check its all OK
+ BuilderResult[] result = impl.buildAsset( rule );
+ if (!(result == null)) {
+ System.err.println(result[0].assetName + " " + result[0].message);
+ }
+ assertNull(result);
+
+ pkg.updateHeader( "importxxxx" );
+ repo.save();
+ result = impl.buildAsset( rule );
+ assertNotNull(result);
+
+ assertEquals(1, result.length);
+ assertEquals("package", result[0].assetFormat);
+ assertNotNull(result[0].message);
+
+
+ }
+
private ServiceImplementation getService() throws Exception {
ServiceImplementation impl = new ServiceImplementation();
impl.repository = new RulesRepository( TestEnvironmentSessionHelper.getSession() );
More information about the jboss-svn-commits
mailing list