[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