[jboss-svn-commits] JBL Code SVN: r32179 - in labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor: client/ruleeditor and 2 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 22 16:38:22 EDT 2010


Author: baunax
Date: 2010-03-22 16:38:22 -0400 (Mon, 22 Mar 2010)
New Revision: 32179

Modified:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ActionToolbar.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
Log:
- Fixes to WorkingSet Editor
- Added constraints rules to Guided Editor from the active workingsets

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java	2010-03-22 20:35:29 UTC (rev 32178)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java	2010-03-22 20:38:22 UTC (rev 32179)
@@ -20,8 +20,8 @@
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
-import org.drools.guvnor.client.common.GenericCallback;
 import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.guvnor.client.modeldriven.testing.Scenario;
 
@@ -574,5 +574,5 @@
                                           String firstSnapshotName,
                                           String secondSnapshotName);
     
-    public AnalysisReport verifyAsset(RuleAsset asset) throws SerializableException;
+    public AnalysisReport verifyAsset(RuleAsset asset, Set<String> activeWorkingSets) throws SerializableException;
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java	2010-03-22 20:35:29 UTC (rev 32178)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java	2010-03-22 20:38:22 UTC (rev 32179)
@@ -113,5 +113,5 @@
 	void subscribe(com.google.gwt.user.client.rpc.AsyncCallback<java.util.List<org.drools.guvnor.client.rpc.PushResponse>> arg1);
 	void unLockAsset(java.lang.String uuid, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg2);
 	void updateUserPermissions(java.lang.String userName, java.util.Map<java.lang.String, java.util.List<java.lang.String>> perms, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg3);
-	void verifyAsset(org.drools.guvnor.client.rpc.RuleAsset asset, com.google.gwt.user.client.rpc.AsyncCallback<org.drools.guvnor.client.rpc.AnalysisReport> arg2);
+	void verifyAsset(org.drools.guvnor.client.rpc.RuleAsset asset, java.util.Set<String> sactiveWorkingSets, com.google.gwt.user.client.rpc.AsyncCallback<org.drools.guvnor.client.rpc.AnalysisReport> arg2);
 }
\ No newline at end of file

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ActionToolbar.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ActionToolbar.java	2010-03-22 20:35:29 UTC (rev 32178)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/ActionToolbar.java	2010-03-22 20:38:22 UTC (rev 32179)
@@ -16,6 +16,8 @@
  * limitations under the License.
  */
 
+import java.util.Set;
+
 import com.google.gwt.core.client.GWT;
 import com.google.gwt.user.client.Command;
 import com.google.gwt.user.client.Timer;
@@ -42,6 +44,7 @@
 import org.drools.guvnor.client.modeldriven.ui.RuleModeller;
 import org.drools.guvnor.client.security.Capabilities;
 import org.drools.guvnor.client.packages.PackageBuilderWidget;
+import org.drools.guvnor.client.packages.WorkingSetManager;
 
 /**
  * This contains the widgets used to action a rule asset
@@ -296,7 +299,9 @@
     private void doVerify() {
         onSave();
         LoadingPopup.showMessage( constants.VerifyingItemPleaseWait() );
-        RepositoryServiceFactory.getService().verifyAsset( asset,
+        Set<String> activeWorkingSets = null;
+        activeWorkingSets = WorkingSetManager.getInstance().getActiveAssetUUIDs(asset.metaData.packageName);
+        RepositoryServiceFactory.getService().verifyAsset( asset, activeWorkingSets, 
                                                            new AsyncCallback<AnalysisReport>() {
 
                                                                public void onSuccess(AnalysisReport report) {

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java	2010-03-22 20:35:29 UTC (rev 32178)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/ruleeditor/WorkingSetEditor.java	2010-03-22 20:38:22 UTC (rev 32179)
@@ -46,6 +46,7 @@
 	
 	private ListBox availFacts = new ListBox(true);
 	private ListBox validFacts = new ListBox(true);
+	private ListBox factsCombo = new ListBox(false);
 	private boolean validFactsChanged = true;
 	private SuggestionCompletionEngine sce;
 	private ConstraintsContainer cc;
@@ -90,7 +91,7 @@
 	private int lastSelectedField = -1;
 	private int lastSelectedConstraint = -1;
 	private Widget buildFactsConstraintsEditor(TabPanel tPanel) {
-		final ListBox factsCombo = new ListBox(false);
+		
 		final ListBox fieldsCombo = new ListBox(false);
 		final ListBox constraintsCombo = new ListBox(false);
 		final VerticalPanel vpConstraintConf = new VerticalPanel();
@@ -242,6 +243,7 @@
 					factsCombo.setSelectedIndex(i);
 				}
 			}
+			lastSelectedFact = -1;
 		}
 	}
 
@@ -253,7 +255,7 @@
 			for(String field : getCompletionEngine().getFieldCompletions(fact)) {
 				fieldsCombo.addItem(field);
 			}
-			lastSelectedFact = fieldsCombo.getItemCount() > 0 ? 0 : -1;
+			lastSelectedField = -1;
 		}
 	}
 
@@ -270,13 +272,7 @@
 			}
 			vpConstraintConf.remove(vpConstraintConf.getWidgetCount() - 1);
 			vpConstraintConf.add(new Label());
-			if (constraintsCombo.getItemCount() > 0) {
-				lastSelectedConstraint = 0;
-				constraintsCombo.setSelectedIndex(lastSelectedConstraint);
-			} else {
-				lastSelectedConstraint = -1;
-			}
-			
+			lastSelectedConstraint = -1;
 		}
 	}
 	
@@ -315,6 +311,7 @@
 			public void onClick(Widget sender) {
 				copySelected(availFacts, validFacts);
 				updateAsset(validFacts);
+				fillSelectedFacts(factsCombo);
 			}
 		}));
 
@@ -322,6 +319,7 @@
 			public void onClick(Widget sender) {
 				copySelected(validFacts, availFacts);
 				updateAsset(validFacts);
+				fillSelectedFacts(factsCombo);
 			}
 		}));
 

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java	2010-03-22 20:35:29 UTC (rev 32178)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java	2010-03-22 20:38:22 UTC (rev 32179)
@@ -1,6 +1,7 @@
 package org.drools.guvnor.server;
 
 import java.io.IOException;
+import java.util.Set;
 
 import javax.servlet.http.HttpServletResponse;
 
@@ -343,8 +344,8 @@
          return getService().compareSnapshots( p0,  p1,  p2);
     }
 
-    public AnalysisReport verifyAsset(RuleAsset asset) throws SerializableException {
-        return getService().verifyAsset( asset );
+    public AnalysisReport verifyAsset(RuleAsset asset, Set<String> activeWorkingSets) throws SerializableException {
+        return getService().verifyAsset( asset, activeWorkingSets );
     }
 
     

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-03-22 20:35:29 UTC (rev 32178)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-03-22 20:38:22 UTC (rev 32179)
@@ -24,6 +24,7 @@
 import java.io.ObjectOutput;
 import java.text.DateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Collection;
 import java.util.Collections;
@@ -60,6 +61,7 @@
 import org.drools.core.util.DroolsStreamUtils;
 import org.drools.guvnor.client.common.AssetFormats;
 import org.drools.guvnor.client.common.Inbox;
+import org.drools.guvnor.client.factcontraints.Constraint;
 import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.guvnor.client.modeldriven.testing.Scenario;
 import org.drools.guvnor.client.rpc.AnalysisReport;
@@ -274,7 +276,7 @@
             if ( e.getCause() instanceof ItemExistsException ) {
                 return "DUPLICATE";
             } else {
-                log.error( "An error occurred creating new asset" + ruleName + "] in package [" + initialPackage + "]: " + e.getMessage() );
+                log.error( "An error occurred creating new asset" + ruleName + "] in package [" + initialPackage + "]: ", e);
                 throw new SerializableException( e.getMessage() );
             }
         }
@@ -301,11 +303,12 @@
             repository.save();
 
             return asset.getUUID();
-        } catch ( RulesRepositoryException e ) {
+        } 
+        catch ( RulesRepositoryException e ) {
             if ( e.getCause() instanceof ItemExistsException ) {
                 return "DUPLICATE";
             } else {
-                log.error( "An error occurred creating shared asset" + sharedAssetName + "] in package [" + initialPackage + "]: " + e.getMessage() );
+                log.error( "An error occurred creating shared asset" + sharedAssetName + "] in package [" + initialPackage + "]: ", e);
                 throw new SerializableException( e.getMessage() );
             }
         }
@@ -610,6 +613,10 @@
     @WebRemote
     @Restrict("#{identity.loggedIn}")
     public RuleAsset[] loadRuleAssets(String[] uuids) throws SerializableException {
+       return loadRuleAssets(Arrays.asList(uuids));
+    }
+    
+    private RuleAsset[] loadRuleAssets(Collection<String> uuids) throws SerializableException {
 
         Collection<RuleAsset> assets = new HashSet<RuleAsset>();
 
@@ -618,7 +625,7 @@
         }
 
         return assets.toArray( new RuleAsset[assets.size()] );
-    }
+    }    
 
     private RuleAsset loadAsset(AssetItem item) throws SerializableException {
 
@@ -2823,31 +2830,38 @@
         return diffs;
     }
 
-    @WebRemote
-    @Restrict("#{identity.loggedIn}")
-    public AnalysisReport verifyAsset(RuleAsset asset) throws SerializableException {
-        if ( Contexts.isSessionContextActive() ) {
-            Identity.instance().checkPermission( new PackageNameType( asset.metaData.packageName ),
-                                                 RoleTypes.PACKAGE_DEVELOPER );
-        }
+	@WebRemote
+	@Restrict("#{identity.loggedIn}")
+	public AnalysisReport verifyAsset(RuleAsset asset, Set<String> activeWorkingSets) throws SerializableException {
+		if (Contexts.isSessionContextActive()) {
+			Identity.instance().checkPermission(new PackageNameType(asset.metaData.packageName),
+					RoleTypes.PACKAGE_DEVELOPER);
+		}
 
-        String drl = "package " + asset.metaData.packageName + "\n" + getDroolsHeader( repository.loadPackage( asset.metaData.packageName ) ) + "\n" + this.buildAssetSource( asset );
+		String drl = "package " + asset.metaData.packageName + "\n"
+				+ getDroolsHeader(repository.loadPackage(asset.metaData.packageName)) + "\n"
+				+ this.buildAssetSource(asset);
 
-        VerifierRunner runner = new VerifierRunner();
-        try {
+		VerifierRunner runner = new VerifierRunner();
+		try {
+			RuleAsset[] workingSets = loadRuleAssets(activeWorkingSets);
+			List<String> constraintRules = new LinkedList<String>();
+			for (RuleAsset ws : workingSets) {
+				WorkingSetConfigData wsConfig = (WorkingSetConfigData) ws.content;
+				for (Constraint cons : wsConfig.constraints) {
+					constraintRules.add(cons.getVerifierRule());
+				}
+			}
+			if (asset.metaData.format.equals(AssetFormats.DECISION_TABLE_GUIDED)
+					|| asset.metaData.format.equals(AssetFormats.DECISION_SPREADSHEET_XLS)) {
+				return runner.verify(drl, VerifierConfiguration.VERIFYING_SCOPE_DECISION_TABLE, constraintRules);
+			} else {
+				return runner.verify(drl, VerifierConfiguration.VERIFYING_SCOPE_SINGLE_RULE, constraintRules);
+			}
 
-            if ( asset.metaData.format.equals( AssetFormats.DECISION_TABLE_GUIDED ) || asset.metaData.format.equals( AssetFormats.DECISION_SPREADSHEET_XLS ) ) {
-                return runner.verify( drl,
-                                       VerifierConfiguration.VERIFYING_SCOPE_DECISION_TABLE );
-            } else {
-                return runner.verify( drl,
-                                       VerifierConfiguration.VERIFYING_SCOPE_SINGLE_RULE );
-            }
-
-        } catch ( DroolsParserException e ) {
-            log.error( "Unable to parse the rules: " + e.getMessage() );
-            throw new DetailedSerializableException( "Unable to parse the rules.",
-                                                     e.getMessage() );
-        }
-    }
+		} catch (DroolsParserException e) {
+			log.error("Unable to parse the rules", e);
+			throw new DetailedSerializableException("Unable to parse the rules.", e.getMessage());
+		}
+	}
 }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java	2010-03-22 20:35:29 UTC (rev 32178)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/util/VerifierRunner.java	2010-03-22 20:38:22 UTC (rev 32179)
@@ -9,15 +9,12 @@
 import java.util.Set;
 
 import org.drools.builder.ResourceType;
-import org.drools.compiler.DrlParser;
 import org.drools.compiler.DroolsParserException;
 import org.drools.guvnor.client.rpc.AnalysisFactUsage;
 import org.drools.guvnor.client.rpc.AnalysisFieldUsage;
 import org.drools.guvnor.client.rpc.AnalysisReport;
 import org.drools.guvnor.client.rpc.AnalysisReportLine;
-import org.drools.guvnor.client.rpc.DetailedSerializableException;
 import org.drools.io.ResourceFactory;
-import org.drools.lang.descr.PackageDescr;
 import org.drools.verifier.DefaultVerifierConfiguration;
 import org.drools.verifier.Verifier;
 import org.drools.verifier.VerifierConfiguration;
@@ -35,14 +32,24 @@
 
 public class VerifierRunner {
 
-    public AnalysisReport verify(String drl,
-                                 String scope) throws DroolsParserException,
-                                              SerializableException {
+	public AnalysisReport verify(String drl, String scope) throws DroolsParserException, SerializableException {
+		return verify(drl, scope, null);
+	}
+	
+	public AnalysisReport verify(String drl, String scope, Collection<String> constraintsRules)
+			throws DroolsParserException, SerializableException {
 
         VerifierConfiguration conf = new DefaultVerifierConfiguration();
         conf.getVerifyingScopes().clear();
         conf.getVerifyingScopes().add( scope );
         conf.setAcceptRulesWithoutVerifiyingScope( true );
+		if (constraintsRules != null) {
+			for (String string : constraintsRules) {
+				conf.getVerifyingResources().put(ResourceFactory.newByteArrayResource(string.getBytes()),
+						ResourceType.DRL);
+			}
+		}
+        
         Verifier verifier = VerifierBuilderFactory.newVerifierBuilder().newVerifier( conf );
         verifier.addResourcesToVerify( ResourceFactory.newReaderResource( new StringReader( drl ) ),
                                        ResourceType.DRL );



More information about the jboss-svn-commits mailing list