[jboss-svn-commits] JBL Code SVN: r29649 - in labs/jbossrules/trunk/drools-guvnor/src: main/java/org/drools/guvnor/client/rpc and 6 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Oct 18 23:37:51 EDT 2009
Author: jervisliu
Date: 2009-10-18 23:37:50 -0400 (Sun, 18 Oct 2009)
New Revision: 29649
Added:
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/selector/BuiltInSelectorTest.java
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/PackageBuilderWidget.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/selector/BuiltInSelector.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java
Log:
GUVNOR-467: Enhancement to BuiltInSelector
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/PackageBuilderWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/PackageBuilderWidget.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/PackageBuilderWidget.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -20,6 +20,8 @@
import java.util.Iterator;
import java.util.List;
+import org.drools.guvnor.client.categorynav.CategoryExplorerWidget;
+import org.drools.guvnor.client.categorynav.CategorySelectHandler;
import org.drools.guvnor.client.common.FormStyleLayout;
import org.drools.guvnor.client.common.FormStylePopup;
import org.drools.guvnor.client.common.GenericCallback;
@@ -37,6 +39,7 @@
import com.google.gwt.user.client.DeferredCommand;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.ClickListener;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.HTML;
@@ -47,6 +50,7 @@
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.RadioButton;
+import com.google.gwt.user.client.ui.ScrollPanel;
import com.google.gwt.user.client.ui.SimplePanel;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;
@@ -87,6 +91,8 @@
private final FormStyleLayout customSelectorLayout = new FormStyleLayout();
private String buildMode = "buildWholePackage";
+ private String initialCategory;
+
public PackageBuilderWidget(final PackageConfigData conf,
EditItemEvent editEvent) {
layout = new FormStyleLayout();
@@ -152,21 +158,49 @@
//Built-in selector layout
- HorizontalPanel builtInSelectorPanel = new HorizontalPanel();
- builtInSelectorPanel.add( new HTML(" <i>" + "Status" + ": </i>") );
-
- final ListBox operator = new ListBox();
- String[] vals = new String[]{"=", "!=", "<", ">"};
+ builtInSelectorLayout.addRow(new HTML(" <i>" + "Build package using following assets" + ": </i>") );
+
+ HorizontalPanel builtInSelectorStatusPanel = new HorizontalPanel();
+ final CheckBox enableStatusCheckBox = new CheckBox();
+ enableStatusCheckBox.setChecked(false);
+ builtInSelectorStatusPanel.add(enableStatusCheckBox);
+ builtInSelectorStatusPanel.add( new HTML(" <i>" + "When status" + ": </i>") );
+ final ListBox statusOperator = new ListBox();
+ String[] vals = new String[]{"=", "!="};
for ( int i = 0; i < vals.length; i++ ) {
- operator.addItem( vals[i], vals[i]);
+ statusOperator.addItem( vals[i], vals[i]);
}
- builtInSelectorPanel.add( operator );
+ builtInSelectorStatusPanel.add( statusOperator );
final TextBox statusValue = new TextBox();
statusValue.setTitle( constants.WildCardsSearchTip() );
- builtInSelectorPanel.add(statusValue );
-
- builtInSelectorLayout.addRow(builtInSelectorPanel);
+ builtInSelectorStatusPanel.add(statusValue );
+
+ builtInSelectorLayout.addRow(builtInSelectorStatusPanel);
+
+ HorizontalPanel builtInSelectorCatPanel = new HorizontalPanel();
+ final CheckBox enableCategoryCheckBox = new CheckBox();
+ enableCategoryCheckBox.setChecked(false);
+ builtInSelectorCatPanel.add(enableCategoryCheckBox);
+ builtInSelectorCatPanel.add( new HTML(" <i>" + "When category" + ": </i>") );
+ final ListBox catOperator = new ListBox();
+ String[] catVals = new String[]{"=", "!="};
+ for ( int i = 0; i < catVals.length; i++ ) {
+ catOperator.addItem( catVals[i], catVals[i]);
+ }
+ builtInSelectorCatPanel.add( catOperator );
+ final CategoryExplorerWidget catChooser = new CategoryExplorerWidget( new CategorySelectHandler() {
+ public void selected(String selectedPath) {
+ initialCategory = selectedPath;
+ }
+ });
+ ScrollPanel catScroll = new ScrollPanel(catChooser);
+ catScroll.setAlwaysShowScrollBars(true);
+ catScroll.setSize("300px", "130px");
+
+ builtInSelectorCatPanel.add(catScroll);
+ builtInSelectorLayout.addRow(builtInSelectorCatPanel);
+
layout.addRow( builtInSelectorLayout );
@@ -188,7 +222,9 @@
b.setTitle(constants.ThisWillValidateAndCompileAllTheAssetsInAPackage());
b.addClickListener(new ClickListener() {
public void onClick(Widget w) {
- doBuild(buildResults, operator.getValue(operator.getSelectedIndex()), statusValue.getText(), customSelector.getSelectedIndex() != -1?customSelector.getValue(customSelector.getSelectedIndex()):null);
+ doBuild(buildResults, statusOperator.getValue(statusOperator.getSelectedIndex()), statusValue.getText(), enableStatusCheckBox.isChecked(),
+ catOperator.getValue(catOperator.getSelectedIndex()), catChooser.getSelectedPath(), enableCategoryCheckBox.isChecked(),
+ customSelector.getSelectedIndex() != -1?customSelector.getValue(customSelector.getSelectedIndex()):null);
}
});
@@ -215,7 +251,7 @@
initWidget(layout);
}
-
+
private void loadCustomSelectorList(final ListBox customSelector) {
RepositoryServiceFactory.getService().getCustomSelectors( new GenericCallback<String[]>() {
@@ -227,7 +263,8 @@
});
}
- private void doBuild(final Panel buildResults, final String operator, final String statusValue, final String customSelector) {
+ private void doBuild(final Panel buildResults, final String statusOperator, final String statusValue, final boolean enableStatusSelector,
+ final String categoryOperator, final String category, final boolean enableCategorySelector, final String customSelector) {
buildResults.clear();
final HorizontalPanel busy = new HorizontalPanel();
@@ -239,7 +276,8 @@
DeferredCommand.addCommand(new Command() {
public void execute() {
- RepositoryServiceFactory.getService().buildPackage(conf.uuid, true, buildMode, operator, statusValue, customSelector,
+ RepositoryServiceFactory.getService().buildPackage(conf.uuid, true, buildMode, statusOperator, statusValue, enableStatusSelector,
+ categoryOperator, category, enableCategorySelector, customSelector,
new GenericCallback<BuilderResult[]>() {
public void onSuccess(BuilderResult[] result) {
LoadingPopup.close();
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -291,7 +291,9 @@
* in the systems selectors.properties file. This will then apply the filter to the
* package being built.
*/
- public BuilderResult[] buildPackage(String packageUUID, boolean force, String buildMode, String operator, String statusDescriptionValue,
+ public BuilderResult[] buildPackage(String packageUUID, boolean force, String buildMode,
+ String operator, String statusDescriptionValue, boolean enableStatusSelector,
+ String categoryOperator, String category, boolean enableCategorySelector,
String customSelectorName) throws SerializableException;
/**
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -71,7 +71,7 @@
public void quickFindAsset(java.lang.String p0, int p1, boolean p2, AsyncCallback<org.drools.guvnor.client.rpc.TableDataResult> cb);
public void removeCategory(java.lang.String p0, AsyncCallback cb);
public void loadSuggestionCompletionEngine(java.lang.String p0, AsyncCallback<org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine> cb);
- public void buildPackage(java.lang.String p0, boolean p1, java.lang.String p2, java.lang.String p3, java.lang.String p4, java.lang.String p5, AsyncCallback<org.drools.guvnor.client.rpc.BuilderResult[]> cb);
+ public void buildPackage(java.lang.String p0, boolean p1, java.lang.String p2, java.lang.String p3, java.lang.String p4, boolean p5, java.lang.String p6, java.lang.String p7, boolean p8, java.lang.String p9, AsyncCallback<org.drools.guvnor.client.rpc.BuilderResult[]> cb);
public void getCustomSelectors(AsyncCallback<java.lang.String[]> cb);
public void buildPackageSource(java.lang.String p0, AsyncCallback<java.lang.String> cb);
public void buildAssetSource(org.drools.guvnor.client.rpc.RuleAsset p0, AsyncCallback<java.lang.String> cb);
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -205,8 +205,10 @@
public org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine loadSuggestionCompletionEngine(java.lang.String p0) throws com.google.gwt.user.client.rpc.SerializableException {
return getService().loadSuggestionCompletionEngine( p0);
}
- public org.drools.guvnor.client.rpc.BuilderResult[] buildPackage(java.lang.String p0, boolean p1, java.lang.String p2, java.lang.String p3 ,java.lang.String p4, java.lang.String p5) throws com.google.gwt.user.client.rpc.SerializableException {
- return getService().buildPackage( p0, p1, p2, p3, p4, p5);
+ public org.drools.guvnor.client.rpc.BuilderResult[] buildPackage(java.lang.String p0, boolean p1, java.lang.String p2,
+ java.lang.String p3, java.lang.String p4 , boolean p5,
+ java.lang.String p6, java.lang.String p7, boolean p8, java.lang.String p9) throws com.google.gwt.user.client.rpc.SerializableException {
+ return getService().buildPackage( p0, p1, p2, p3, p4, p5, p6, p7, p8, p9);
}
public java.lang.String[] getCustomSelectors() throws com.google.gwt.user.client.rpc.SerializableException {
return getService().getCustomSelectors();
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -1440,12 +1440,14 @@
@Restrict("#{identity.loggedIn}")
public BuilderResult[] buildPackage(String packageUUID, boolean force)
throws SerializableException {
- return buildPackage(packageUUID, force, null, null, null, null);
+ return buildPackage(packageUUID, force, null, null, null, false, null, null, false, null);
}
@WebRemote
@Restrict("#{identity.loggedIn}")
- public BuilderResult[] buildPackage(String packageUUID, boolean force, String buildMode, String operator, String statusDescriptionValue,
+ public BuilderResult[] buildPackage(String packageUUID, boolean force, String buildMode,
+ String statusOperator, String statusDescriptionValue, boolean enableStatusSelector,
+ String categoryOperator, String category, boolean enableCategorySelector,
String customSelectorName)
throws SerializableException {
if (Contexts.isSessionContextActive()) {
@@ -1455,7 +1457,9 @@
}
PackageItem item = repository.loadPackageByUUID(packageUUID);
try {
- return buildPackage(item, force, buildMode, operator, statusDescriptionValue, customSelectorName);
+ return buildPackage(item, force, buildMode, statusOperator,
+ statusDescriptionValue, enableStatusSelector,
+ categoryOperator, category, enableCategorySelector, customSelectorName);
} catch (NoClassDefFoundError e) {
throw new DetailedSerializableException(
"Unable to find a class that was needed when building the package ["
@@ -1475,15 +1479,21 @@
throws SerializableException {
return SelectorManager.getInstance().getCustomSelectors();
}
+
+ private BuilderResult[] buildPackage(PackageItem item, boolean force) throws DetailedSerializableException {
+ return buildPackage(item, force, null, null, null, false, null, null, false, null);
+ }
private BuilderResult[] buildPackage(PackageItem item, boolean force, String buildMode,
- String operator, String statusDescriptionValue,
+ String statusOperator, String statusDescriptionValue, boolean enableStatusSelector,
+ String categoryOperator, String category, boolean enableCategorySelector,
String selectorConfigName) throws DetailedSerializableException {
if ( !force && item.isBinaryUpToDate() ) {
// we can just return all OK if its up to date.
return null;
}
- ContentPackageAssembler asm = new ContentPackageAssembler( item, true, buildMode, operator, statusDescriptionValue, selectorConfigName );
+ ContentPackageAssembler asm = new ContentPackageAssembler( item, true, buildMode, statusOperator, statusDescriptionValue, enableStatusSelector,
+ categoryOperator, category, enableCategorySelector, selectorConfigName );
if ( asm.hasErrors() ) {
BuilderResult[] result = generateBuilderResults( asm );
return result;
@@ -1772,7 +1782,7 @@
PackageItem snap = repository.loadPackageSnapshot( pkg.getName(),
snapName );
BuilderResult[] res = this.buildPackage( snap.getUUID(),
- true, null, null, null, null );
+ true);
if ( res != null ) {
StringBuffer buf = new StringBuffer();
for ( int i = 0; i < res.length; i++ ) {
@@ -1933,7 +1943,7 @@
this.ruleBaseCache.put( item.getUUID(),
rb );
} else {
- BuilderResult[] errs = this.buildPackage(item, false, null, null, null, null);
+ BuilderResult[] errs = this.buildPackage(item, false);
if ( errs == null || errs.length == 0 ) {
rb = loadRuleBase( item,
buildCl );
@@ -1960,7 +1970,7 @@
log.error( e );
log.info( "...but trying to rebuild binaries..." );
try {
- BuilderResult[] res = this.buildPackage(item, true, null, null, null, null);
+ BuilderResult[] res = this.buildPackage(item, true);
if ( res != null && res.length > 0 ) {
throw new DetailedSerializableException( "There were errors when rebuilding the knowledgebase.",
"" );
@@ -2076,7 +2086,7 @@
loadRuleBase( item,
cl ) );
} else {
- BuilderResult[] errs = this.buildPackage(item, false, null, null, null, null);
+ BuilderResult[] errs = this.buildPackage(item, false);
if ( errs == null || errs.length == 0 ) {
this.ruleBaseCache.put( item.getUUID(),
loadRuleBase( item,
@@ -2301,7 +2311,7 @@
PackageItem pkg = (PackageItem) pkit.next();
try {
BuilderResult[] res = this.buildPackage( pkg.getUUID(),
- true, null, null, null, null );
+ true);
if ( res != null ) {
errs.append( "Unable to build package name [" + pkg.getName() + "]\n" );
StringBuffer buf = new StringBuffer();
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -67,8 +67,12 @@
private String customSelectorName;
private String buildMode;
- private String operator;
+ private String statusOperator;
private String statusDescriptionValue;
+ private boolean enableStatusSelector;
+ private String categoryOperator;
+ private String categoryValue;
+ private boolean enableCategorySelector;
/**
* Use this if you want to build the whole package.
@@ -88,7 +92,7 @@
* source.
*/
public ContentPackageAssembler(PackageItem pkg, boolean compile) {
- this(pkg, compile, null, null, null, null);
+ this(pkg, compile, null, null, null, false, null, null, false, null);
}
/**
@@ -100,14 +104,20 @@
* @param selectorConfigName
*/
public ContentPackageAssembler(PackageItem assetPackage, boolean compile, String buildMode,
- String operator, String statusDescriptionValue, String selectorConfigName) {
+ String statusOperator, String statusDescriptionValue, boolean enableStatusSelector,
+ String categoryOperator, String categoryValue, boolean enableCategorySelector,
+ String selectorConfigName) {
this.pkg = assetPackage;
this.customSelectorName = selectorConfigName;
this.buildMode = buildMode;
- this.operator = operator;
+ this.statusOperator = statusOperator;
this.statusDescriptionValue = statusDescriptionValue;
-
+ this.enableStatusSelector = enableStatusSelector;
+ this.categoryOperator = categoryOperator;
+ this.categoryValue = categoryValue;
+ this.enableCategorySelector = enableCategorySelector;
+
createBuilder();
if (compile && preparePackage()) {
@@ -165,8 +175,12 @@
} else if ("builtInSelector".equals(buildMode)) {
selector = (BuiltInSelector)SelectorManager.getInstance().getSelector(
"BuiltInSelector");
- ((BuiltInSelector)selector).setOperator(operator);
- ((BuiltInSelector)selector).setStatus(statusDescriptionValue);
+ ((BuiltInSelector)selector).setStatusOperator(statusOperator);
+ ((BuiltInSelector)selector).setStatus(statusDescriptionValue);
+ ((BuiltInSelector)selector).setEnableStatusSelector(enableStatusSelector);
+ ((BuiltInSelector)selector).setCategory(categoryValue);
+ ((BuiltInSelector)selector).setCategoryOperator(categoryOperator);
+ ((BuiltInSelector)selector).setEnableCategorySelector(enableCategorySelector);
} else {
//return the NilSelector, i.e., allows everything
selector = SelectorManager.getInstance().getSelector(null);
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/selector/BuiltInSelector.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/selector/BuiltInSelector.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/selector/BuiltInSelector.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -1,48 +1,116 @@
package org.drools.guvnor.server.selector;
+import org.drools.guvnor.server.security.CategoryPathType;
+import org.drools.guvnor.server.security.RoleTypes;
import org.drools.repository.AssetItem;
+import org.drools.repository.CategoryItem;
+import org.jboss.seam.security.Identity;
public class BuiltInSelector implements AssetSelector {
private String status;
- public String getStatus() {
- return status;
+ private String statusOperator;
+ private String category;
+ private String categoryOperator;
+ private boolean enableStatusSelector;
+ private boolean enableCategorySelector;
+
+ public BuiltInSelector() {
+ }
+
+ public boolean isEnableStatusSelector() {
+ return enableStatusSelector;
}
- public void setStatus(String status) {
- this.status = status;
+ public void setEnableStatusSelector(boolean enableStatusSelector) {
+ this.enableStatusSelector = enableStatusSelector;
}
- public String getOperator() {
- return operator;
+ public boolean isEnableCategorySelector() {
+ return enableCategorySelector;
}
- public void setOperator(String operator) {
- this.operator = operator;
+ public void setEnableCategorySelector(boolean enableCategorySelector) {
+ this.enableCategorySelector = enableCategorySelector;
}
+
+ public String getCategory() {
+ return category;
+ }
- private String operator;
+ public void setCategory(String category) {
+ this.category = category;
+ }
- public BuiltInSelector(String status, String operator) {
- this.status = status;
- this.operator = operator;
+ public String getCategoryOperator() {
+ return categoryOperator;
}
- public BuiltInSelector() {
+ public void setCategoryOperator(String categoryOperator) {
+ this.categoryOperator = categoryOperator;
}
+
+ public String getStatus() {
+ return status;
+ }
+
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ public String getStatusOperator() {
+ return statusOperator;
+ }
+
+ public void setStatusOperator(String statusOperator) {
+ this.statusOperator = statusOperator;
+ }
public boolean isAssetAllowed(AssetItem item) {
- if("=".equals(operator)) {
+ if(enableStatusSelector && enableCategorySelector) {
+ return (isStatusAllowed(item) && isCategoryAllowed(item));
+ } else if (enableStatusSelector) {
+ return isStatusAllowed(item);
+ } else if (enableCategorySelector) {
+ return isCategoryAllowed(item);
+ }
+
+ //allow everything if none enabled.
+ return true;
+ }
+
+ private boolean isStatusAllowed(AssetItem item) {
+ if("=".equals(statusOperator)) {
if (item.getStateDescription().equals(status))
return true;
else
return false;
- } else if ("!=".equals(operator)) {
+ } else if ("!=".equals(statusOperator)) {
if (!item.getStateDescription().equals(status))
return true;
else
return false;
}
- return false;
+ return false;
}
+
+ private boolean isCategoryAllowed(AssetItem item) {
+ if("=".equals(categoryOperator)) {
+ for ( CategoryItem cat : item.getCategories() ) {
+ if (cat.getName().equals(category)) {
+ return true;
+ }
+ }
+ return false;
+ } else if ("!=".equals(categoryOperator)) {
+ for ( CategoryItem cat : item.getCategories() ) {
+ if (!cat.getName().equals(category)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ return false;
+ }
}
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -1267,7 +1267,7 @@
.updateContent(" rule abc \n when \n then \n System.out.println(42); \n end");
item.checkin("");
- BuilderResult[] res = impl.buildPackage(pkg.getUUID(), true, null, null, null, "");
+ BuilderResult[] res = impl.buildPackage(pkg.getUUID(), true);
assertNull(res);
impl.createPackageSnapshot("testSnapshotRebuild", "SNAP", false, "");
Modified: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java 2009-10-19 02:37:20 UTC (rev 29648)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -598,8 +598,7 @@
ContentPackageAssembler asm = new ContentPackageAssembler( pkg,
- false,
- null, null, null, null );
+ false);
String drl = asm.getDRL();
assertNotNull( drl );
@@ -709,8 +708,7 @@
assertRule3.checkin( "" );
ContentPackageAssembler asm = new ContentPackageAssembler( pkg,
- true,
- null, null, null, null );
+ true);
assertFalse( asm.hasErrors() );
Package p = asm.builder.getPackage();
@@ -939,7 +937,7 @@
} );
ContentPackageAssembler asm = new ContentPackageAssembler( pkg, true,
- "customSelector", null, null, "testSelect");
+ "customSelector", null, null, false, null, null, false, "testSelect");
Package pk = asm.getBinaryPackage();
assertEquals( 1,
@@ -953,7 +951,7 @@
assertEquals( 2,
pk.getRules().length );
- asm = new ContentPackageAssembler( pkg, true, "customSelector", null, null,
+ asm = new ContentPackageAssembler( pkg, true, "customSelector", null, null, false, null, null, false,
"nothing valid" );
assertTrue( asm.hasErrors() );
assertEquals( 1,
@@ -961,7 +959,7 @@
assertEquals( pkg,
asm.getErrors().get( 0 ).itemInError );
- asm = new ContentPackageAssembler( pkg, true, "customSelector", null, null,
+ asm = new ContentPackageAssembler( pkg, true, "customSelector", null, null, false, null, null, false,
"" );
pk = asm.getBinaryPackage();
assertEquals( 2,
Added: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/selector/BuiltInSelectorTest.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/selector/BuiltInSelectorTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/selector/BuiltInSelectorTest.java 2009-10-19 03:37:50 UTC (rev 29649)
@@ -0,0 +1,151 @@
+package org.drools.guvnor.server.selector;
+
+import org.drools.guvnor.client.rpc.RepositoryService;
+import org.drools.guvnor.server.ServiceImplementation;
+import org.drools.guvnor.server.util.TestEnvironmentSessionHelper;
+import org.drools.repository.AssetItem;
+import org.drools.repository.CategoryItem;
+import org.drools.repository.RulesRepository;
+
+import junit.framework.TestCase;
+
+public class BuiltInSelectorTest extends TestCase {
+
+ public void testBuiltInSelector() throws Exception {
+ ServiceImplementation impl = getService();
+ impl.repository.loadDefaultPackage();
+ impl.repository.createPackage("testBuiltInSelectorPackage", "woot");
+ impl.repository.createState("Dev");
+ impl.repository.createState("QA");
+
+ CategoryItem cat = impl.repository.loadCategory("/");
+ cat.addCategory("testBuiltInSelectorCat1", "yeah");
+ cat.addCategory("testBuiltInSelectorCat2", "yeah");
+
+ String uuid1 = impl.createNewRule("test AddRule1", "a description",
+ "testBuiltInSelectorCat1", "testBuiltInSelectorPackage", "txt");
+ AssetItem item1 = impl.repository.loadAssetByUUID(uuid1);
+ item1.updateState("Dev");
+ String uuid2 = impl.createNewRule("test AddRule2", "a description",
+ "testBuiltInSelectorCat1", "testBuiltInSelectorPackage", "txt");
+ AssetItem item2 = impl.repository.loadAssetByUUID(uuid2);
+ item2.updateState("QA");
+ String uuid3 = impl.createNewRule("test AddRule3", "a description",
+ "testBuiltInSelectorCat2", "testBuiltInSelectorPackage", "txt");
+ AssetItem item3 = impl.repository.loadAssetByUUID(uuid3);
+ item3.updateState("Dev");
+ String uuid4 = impl.createNewRule("test AddRule4", "a description",
+ "testBuiltInSelectorCat2", "testBuiltInSelectorPackage", "txt");
+ AssetItem item4 = impl.repository.loadAssetByUUID(uuid4);
+ item4.updateState("QA");
+
+ //Select asset using "category ="
+ BuiltInSelector selector1 = (BuiltInSelector)SelectorManager.getInstance().getSelector( "BuiltInSelector" );
+ selector1.setCategory("testBuiltInSelectorCat1");
+ selector1.setCategoryOperator("=");
+ selector1.setEnableCategorySelector(true);
+ selector1.setStatus("Dev");
+ selector1.setStatusOperator("=");
+ selector1.setEnableStatusSelector(false);
+
+ assertTrue(selector1.isAssetAllowed(item1));
+ assertTrue(selector1.isAssetAllowed(item2));
+ assertFalse(selector1.isAssetAllowed(item3));
+ assertFalse(selector1.isAssetAllowed(item4));
+
+ //Select asset using "category !="
+ BuiltInSelector selector2 = (BuiltInSelector)SelectorManager.getInstance().getSelector( "BuiltInSelector" );
+ selector2.setCategory("testBuiltInSelectorCat1");
+ selector2.setCategoryOperator("!=");
+ selector2.setEnableCategorySelector(true);
+ selector2.setStatus("Dev");
+ selector2.setStatusOperator("=");
+ selector2.setEnableStatusSelector(false);
+
+ assertFalse(selector2.isAssetAllowed(item1));
+ assertFalse(selector2.isAssetAllowed(item2));
+ assertTrue(selector2.isAssetAllowed(item3));
+ assertTrue(selector2.isAssetAllowed(item4));
+
+ //Select asset using "status ="
+ BuiltInSelector selector3 = (BuiltInSelector)SelectorManager.getInstance().getSelector( "BuiltInSelector" );
+ selector3.setCategory("testBuiltInSelectorCat1");
+ selector3.setCategoryOperator("!=");
+ selector3.setEnableCategorySelector(false);
+ selector3.setStatus("Dev");
+ selector3.setStatusOperator("=");
+ selector3.setEnableStatusSelector(true);
+
+ assertTrue(selector3.isAssetAllowed(item1));
+ assertFalse(selector3.isAssetAllowed(item2));
+ assertTrue(selector3.isAssetAllowed(item3));
+ assertFalse(selector3.isAssetAllowed(item4));
+
+ //Select asset using "status !="
+ BuiltInSelector selector4 = (BuiltInSelector)SelectorManager.getInstance().getSelector( "BuiltInSelector" );
+ selector4.setCategory("testBuiltInSelectorCat1");
+ selector4.setCategoryOperator("!=");
+ selector4.setEnableCategorySelector(false);
+ selector4.setStatus("Dev");
+ selector4.setStatusOperator("!=");
+ selector4.setEnableStatusSelector(true);
+
+ assertFalse(selector4.isAssetAllowed(item1));
+ assertTrue(selector4.isAssetAllowed(item2));
+ assertFalse(selector4.isAssetAllowed(item3));
+ assertTrue(selector4.isAssetAllowed(item4));
+
+ //Select asset using "status =" AND "category ="
+ BuiltInSelector selector5 = (BuiltInSelector)SelectorManager.getInstance().getSelector( "BuiltInSelector" );
+ selector5.setCategory("testBuiltInSelectorCat1");
+ selector5.setCategoryOperator("=");
+ selector5.setEnableCategorySelector(true);
+ selector5.setStatus("Dev");
+ selector5.setStatusOperator("=");
+ selector5.setEnableStatusSelector(true);
+
+ assertTrue(selector5.isAssetAllowed(item1));
+ assertFalse(selector5.isAssetAllowed(item2));
+ assertFalse(selector5.isAssetAllowed(item3));
+ assertFalse(selector5.isAssetAllowed(item4));
+
+ //Select asset using "status =" AND "category !="
+ BuiltInSelector selector6 = (BuiltInSelector)SelectorManager.getInstance().getSelector( "BuiltInSelector" );
+ selector6.setCategory("testBuiltInSelectorCat1");
+ selector6.setCategoryOperator("!=");
+ selector6.setEnableCategorySelector(true);
+ selector6.setStatus("Dev");
+ selector6.setStatusOperator("=");
+ selector6.setEnableStatusSelector(true);
+
+ assertFalse(selector6.isAssetAllowed(item1));
+ assertFalse(selector6.isAssetAllowed(item2));
+ assertTrue(selector6.isAssetAllowed(item3));
+ assertFalse(selector6.isAssetAllowed(item4));
+
+
+ //Allow everything if both selectors are disabled
+ BuiltInSelector selector7 = (BuiltInSelector)SelectorManager.getInstance().getSelector( "BuiltInSelector" );
+ selector7.setCategory("testBuiltInSelectorCat1");
+ selector7.setCategoryOperator("!=");
+ selector7.setEnableCategorySelector(false);
+ selector7.setStatus("Dev");
+ selector7.setStatusOperator("=");
+ selector7.setEnableStatusSelector(false);
+
+ assertTrue(selector6.isAssetAllowed(item1));
+ assertTrue(selector6.isAssetAllowed(item2));
+ assertTrue(selector6.isAssetAllowed(item3));
+ assertTrue(selector6.isAssetAllowed(item4));
+ }
+
+ private ServiceImplementation getService() throws Exception {
+ ServiceImplementation impl = new ServiceImplementation();
+ impl.repository = new RulesRepository(TestEnvironmentSessionHelper
+ .getSession());
+
+
+ return impl;
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/selector/BuiltInSelectorTest.java
___________________________________________________________________
Name: svn:keywords
+ Rev Date
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list