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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 8 20:14:15 EST 2010


Author: baunax
Date: 2010-03-08 20:14:14 -0500 (Mon, 08 Mar 2010)
New Revision: 31998

Added:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor/images/workingset.gif
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/resources/node_type_definitions/workingset_node_type.cnd
Modified:
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackageHierarchy.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackagesPanel.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties
   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/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-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java
   labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/RulesRepositoryAdministrator.java
Log:
creating WorkingSet from UI

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/ExplorerNodeConfig.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -8,6 +8,7 @@
 import org.drools.guvnor.client.qa.ScenarioPackageView;
 import org.drools.guvnor.client.rpc.PackageConfigData;
 import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
+import org.drools.guvnor.client.rpc.WorkingSetConfigData;
 import org.drools.guvnor.client.ruleeditor.MultiViewRow;
 import org.drools.guvnor.client.rulelist.EditItemEvent;
 import org.drools.guvnor.client.security.Capabilities;
@@ -35,23 +36,19 @@
 		pkg.setAttribute("uuid", uuid);
 		pkg.setAttribute("icon", "images/package.gif");
 
+		pkg.appendChild(makeItem(constants.BusinessRuleAssets(), "images/rule_asset.gif",
+				AssetFormats.BUSINESS_RULE_FORMATS));
+		pkg.appendChild(makeItem(constants.TechnicalRuleAssets(), "images/technical_rule_assets.gif",
+				new String[] { AssetFormats.DRL }));
+		pkg.appendChild(makeItem(constants.Functions(), "images/function_assets.gif",
+				new String[] { AssetFormats.FUNCTION }));
+		pkg.appendChild(makeItem(constants.DSLConfigurations(), "images/dsl.gif",
 
+		new String[] { AssetFormats.DSL }));
+		pkg.appendChild(makeItem(constants.Model(), "images/model_asset.gif",
 
-        pkg.appendChild( makeItem(constants.BusinessRuleAssets(),
-                "images/rule_asset.gif", AssetFormats.BUSINESS_RULE_FORMATS ) );
-        pkg.appendChild( makeItem(constants.TechnicalRuleAssets(),
-                "images/technical_rule_assets.gif", new String[]{AssetFormats.DRL} )  );
-		pkg.appendChild( makeItem(constants.Functions(),
-		                "images/function_assets.gif", new String[]{AssetFormats.FUNCTION} ) );
-		pkg.appendChild( makeItem(constants.DSLConfigurations(),
-		                "images/dsl.gif",
+		new String[] { AssetFormats.MODEL, AssetFormats.DRL_MODEL }));
 
-		                               new String[]{AssetFormats.DSL} ) );
-		pkg.appendChild( makeItem(constants.Model(),
-		                "images/model_asset.gif",
-
-		                               new String[]{AssetFormats.MODEL, AssetFormats.DRL_MODEL} ) ) ;
-
 		if (Preferences.getBooleanPref("flex-bpel-editor")) {
 			pkg.appendChild( makeItem(constants.RuleFlows(),
 					 "images/ruleflow_small.gif",
@@ -62,29 +59,34 @@
 					 new String[] { AssetFormats.RULE_FLOW_RF, AssetFormats.BPMN2_PROCESS } ) ) ;
 		}
 
-		pkg.appendChild( makeItem(constants.Enumerations(),
-		 "images/enumeration.gif",
+		pkg.appendChild(makeItem(constants.Enumerations(), "images/enumeration.gif",
 
-		                new String[]{AssetFormats.ENUMERATION} ) ) ;
+		new String[] { AssetFormats.ENUMERATION }));
 
+		pkg.appendChild(makeItem(constants.TestScenarios(), "images/test_manager.gif",
 
-		pkg.appendChild(makeItem(constants.TestScenarios(),
-		                "images/test_manager.gif",
+		new String[] { AssetFormats.TEST_SCENARIO }));
 
-		                               new String[]{AssetFormats.TEST_SCENARIO} ) ) ;
+		pkg.appendChild(makeItem(constants.XMLProperties(), "images/new_file.gif", new String[] { AssetFormats.XML,
+				AssetFormats.PROPERTIES }));
 
-        pkg.appendChild(makeItem(constants.XMLProperties(),
-                "images/new_file.gif",
-                               new String[]{AssetFormats.XML, AssetFormats.PROPERTIES} ) ) ;
-
-        pkg.appendChild(makeItem(constants.OtherAssetsDocumentation(),
-                "images/new_file.gif",
-                               new String[0] ) ) ;
-
-
+		pkg.appendChild(makeItem(constants.OtherAssetsDocumentation(), "images/new_file.gif", new String[0]));
+        
         return pkg;
 	}
 
+    public static void getWorkingSetItemsStructure(TreeNode parent, WorkingSetConfigData[] workingsets) {
+    	if (workingsets == null || workingsets.length == 0) {
+    		return;
+    	}
+    	for (WorkingSetConfigData ws : workingsets) {
+    		TreeNode wsNode = new TreeNode(ws.name, "images/workingset.gif");
+    		wsNode.setUserObject(wsNode);
+    		getWorkingSetItemsStructure(wsNode, ws.workingSets);
+    		parent.appendChild(wsNode);
+		}
+    }
+    
 	private static TreeNode makeItem(final String txt, final String img,
 			final String[] formats) {
 		TreeNode tn = new TreeNode();
@@ -157,13 +159,11 @@
         treeNode.setAttribute("icon", "images/inbox.gif"); //NON-NLS
         treeNode.setAttribute("id", "inboxes");
 
-
         TreeNode incoming = new TreeNode(constants.IncomingChanges());
         incoming.setId("inbox3");
         incoming.setAttribute("icon", "images/category_small.gif");  //NON-NLS
         incoming.setUserObject(Inbox.INCOMING);
         treeNode.appendChild(incoming);
-        
 
         TreeNode recentOpened = new TreeNode(constants.RecentlyOpened());
         recentOpened.setId("inbox1");
@@ -177,13 +177,8 @@
         recentEdited.setUserObject(Inbox.RECENT_EDITED);
         treeNode.appendChild(recentEdited);
 
-
-
         treeNode.expand();
-
         return treeNode;
-
-
     }
 
     public static TreeNode getCategoriesStructure () {

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackageHierarchy.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackageHierarchy.java	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackageHierarchy.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -1,16 +1,16 @@
 package org.drools.guvnor.client.explorer;
 
-import java.util.ArrayList;
+import java.util.LinkedList;
 import java.util.List;
 
 import org.drools.guvnor.client.rpc.PackageConfigData;
 
 public class PackageHierarchy {
-
-
 	public Folder root = new Folder();
 
 	public void addPackage(PackageConfigData conf) {
+//		LinkedList<String> path = new LinkedList<String>(Arrays.asList(conf.name.split("\\.")));
+//		addPackage(conf, root, path);
 		Folder folder = root;
 		String[] folders = conf.name.split("\\.");
 		for (int i = 0; i < folders.length; i++) {
@@ -29,16 +29,38 @@
 			}
 		}
 	}
+	
+//	private void addPackage(PackageConfigData conf, Folder currFolder, LinkedList<String> pendingPath) {
+//		String fName = pendingPath.removeFirst();
+//		Folder folder = currFolder.contains(fName);
+//		if (folder == null) {
+//			if (pendingPath.isEmpty()) {
+//				currFolder.add(fName, conf);
+//			} else {
+//				addPackage(conf, currFolder.add(fName, null), pendingPath);
+//			}
+//		} else {
+//			if (pendingPath.isEmpty()) {
+//				if (folder.conf != null) {
+//					throw new IllegalStateException();
+//				} else {
+//					folder.conf = conf;
+//				}
+//			} else {
+//				addPackage(conf, currFolder.add(fName, null), pendingPath);
+//			}
+//		}
+//	}
 
-
-
 	public static class Folder {
 		public String name;
 		public PackageConfigData conf;
-
-		public Folder add(String f, PackageConfigData conf) {
+		//public Map<String, Folder> children = new HashMap<String, Folder>();
+		public List<Folder> children = new LinkedList<Folder>();
+		
+		public Folder add(String folderName, PackageConfigData conf) {
 			Folder n = new Folder();
-			n.name = f;
+			n.name = folderName;
 			n.conf = conf;
 			children.add(n);
 			return n;
@@ -48,16 +70,14 @@
 			return name;
 		}
 
-		public Folder contains(String f) {
-            for (Folder fld : children) {
-                if (fld.name.equals(f)) {
+		public Folder contains(String name) {
+			 for (Folder fld : children) {
+                if (fld.name.equals(name)) {
                     return fld;
                 }
             }
 			return null;
 		}
-
-		public List<Folder> children = new ArrayList<Folder>();
 	}
 
 }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackagesPanel.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackagesPanel.java	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/explorer/PackagesPanel.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -6,7 +6,7 @@
 import org.drools.guvnor.client.common.RulePackageSelector;
 import org.drools.guvnor.client.messages.Constants;
 import org.drools.guvnor.client.packages.NewPackageWizard;
-import org.drools.guvnor.client.packages.NewSubPackageWizard;
+import org.drools.guvnor.client.packages.NewWorkingSetWizard;
 import org.drools.guvnor.client.rpc.PackageConfigData;
 import org.drools.guvnor.client.rpc.PushClient;
 import org.drools.guvnor.client.rpc.PushResponse;
@@ -49,7 +49,7 @@
 
     private VerticalPanel packagesPanel;
     private boolean packagesLoaded = false;
-    private static Constants constants = ((Constants) GWT.create(Constants.class));
+    private static final Constants constants = ((Constants) GWT.create(Constants.class));
 
     public PackagesPanel(ExplorerViewCenterPanel tabbedPanel) {
         super(constants.KnowledgeBases(), tabbedPanel);
@@ -103,6 +103,17 @@
             }
         }, "images/new_package.gif")); //NON-NLS
 
+		m.addItem(new Item(constants.NewWorkingSet(), new BaseItemListenerAdapter() {
+			public void onClick(BaseItem item, EventObject e) {
+				NewWorkingSetWizard wiz = new NewWorkingSetWizard(new Command() {
+					public void execute() {
+						refreshPackageTree();
+					}
+				});
+				wiz.show();
+			}
+		}, "images/new_package.gif")); // NON-NLS
+
         //SubPackage are currently not used.
 //        m.addItem(new Item(constants.NewSubPackage(), new BaseItemListenerAdapter() {
 //            public void onClick(BaseItem item, EventObject e) {
@@ -368,6 +379,9 @@
 
     private TreeNode loadPackage(String name, PackageConfigData conf) {
         TreeNode pn = ExplorerNodeConfig.getPackageItemStructure(name, conf.uuid);
+        TreeNode wsNode = new TreeNode(constants.WorkingSets(), "images/workingset.gif");
+        ExplorerNodeConfig.getWorkingSetItemsStructure(wsNode, conf.workingsets);
+        pn.appendChild(wsNode);
         pn.setUserObject(conf);
         return pn;
     }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -18,42 +18,24 @@
 
     String ChooseAPatternThatThisColumnAddsDataTo();
 
-
     String Assets();
 
-
     String Category();
     
     String CategoryColon();
 
     String AddAnotherFieldToThisSoYouCanSetItsValue();
 
-
     String ChooseAMethodToInvoke();
 
     String AddField();
 
-
-
-
-
-
-
-
-
-
     String OK();
 
     String pleaseChooseFactType();
 
-
-
-
     String NewFactSelectTheType();
 
-
-
-
     String ColumnConfigurationSetAFieldOnAFact();
 
     String ChooseABoundFactThatThisColumnPertainsTo();
@@ -96,7 +78,6 @@
 
     String DeleteAreYouSure();
 
-
     String ChangeStatusTip();
 
     String CopyThisItem();
@@ -297,7 +278,6 @@
 
     String FailureOverall();
 
-
     String RuleCoveragePercent();
 
     String RulesCovered();
@@ -1835,7 +1815,6 @@
 
     String December();
 
-
     String SorryAnItemOfThatNameAlreadyExistsInTheRepositoryPleaseChooseAnother();
 
     String ALiteralValueMeansTheValueAsTypedInIeItsNotACalculation();
@@ -2061,4 +2040,8 @@
     String Verify();  
     
     String VerificationReport();
+    
+    String WorkingSets();
+    String NewWorkingSet();
+    String CreateWorkingSet();
 }

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants.properties	2010-03-09 01:14:14 UTC (rev 31998)
@@ -985,4 +985,8 @@
 ItemAlreadyInGlobalArea=The item is already in global area.
 VerifyingItemPleaseWait=Verifying item, please wait.
 Verify=Verify
-VerificationReport=Verification report
\ No newline at end of file
+VerificationReport=Verification report
+
+WorkingSets=WorkingSets
+NewWorkingSet=New WorkingSet
+CreateWorkingSet=Create a WorkingSet
\ No newline at end of file

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/messages/Constants_es_ES.properties	2010-03-09 01:14:14 UTC (rev 31998)
@@ -902,4 +902,8 @@
 ConditionPositionExplanation=Seleccione la posici\u00F3n donde la Condici\u00F3n ser\u00E1 agregada.
 ActionPositionExplanation=Seleccione la posici\u00F3n donde la Acci\u00F3n ser\u00E1 agregada.
 AddAConditionBelow=Agregar una condici\u00F3n debajo.
-AddAnActionBelow=Agregar una acci\u00F3n debajo.
\ No newline at end of file
+AddAnActionBelow=Agregar una acci\u00F3n debajo.
+
+WorkingSets=WorkingSets
+NewWorkingSet=Nuevo WorkingSet
+CreateWorkingSet=Crear el WorkingSet
\ No newline at end of file

Added: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java	                        (rev 0)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -0,0 +1,101 @@
+package org.drools.guvnor.client.packages;
+
+/*
+ * Copyright 2005 JBoss Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.drools.guvnor.client.common.FormStyleLayout;
+import org.drools.guvnor.client.common.FormStylePopup;
+import org.drools.guvnor.client.common.GenericCallback;
+import org.drools.guvnor.client.common.LoadingPopup;
+import org.drools.guvnor.client.common.RulePackageSelector;
+import org.drools.guvnor.client.messages.Constants;
+import org.drools.guvnor.client.rpc.RepositoryServiceFactory;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.user.client.Command;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * This is the wizard used when creating new packages or importing them.
+ * 
+ * @author Pablo Nussembaum
+ */
+public class NewWorkingSetWizard extends FormStylePopup {
+
+	private TextBox nameBox;
+	private TextBox descBox;
+	private RulePackageSelector parentPackage;
+	private final FormStyleLayout newPackageLayout = new FormStyleLayout();
+	private static Constants constants = ((Constants) GWT.create(Constants.class));
+
+	public NewWorkingSetWizard(final Command afterCreatedEvent) {
+		super("images/new_wiz.gif", constants.CreateANewSubPackage()); // NON-NLS
+		nameBox = new TextBox();
+		descBox = new TextBox();
+		parentPackage = new RulePackageSelector();
+
+		// newPackageLayout.addRow( new HTML(constants.CreateNewPackage()) );
+
+		newPackageLayout.addAttribute(constants.NameColon(), nameBox);
+		newPackageLayout.addAttribute(constants.DescriptionColon(), descBox);
+		newPackageLayout.addAttribute(constants.ParentPackage(), parentPackage);
+
+		nameBox.setTitle(constants.PackageNameTip());
+
+		this.setAfterShow(new Command() {
+			public void execute() {
+				nameBox.setFocus(true);
+			}
+		});
+
+		addRow(newPackageLayout);
+
+		Button create = new Button(constants.CreateWorkingSet());
+		create.addClickListener(new ClickListener() {
+			public void onClick(Widget w) {
+				if (PackageNameValidator.validatePackageName(nameBox.getText())) {
+					createWorkingSetAction(nameBox.getText(), descBox.getText(), 
+							parentPackage.getSelectedPackage(),
+							afterCreatedEvent);
+					hide();
+				} else {
+					nameBox.setText("");
+					Window.alert(constants.PackageNameCorrectHint());
+				}
+			}
+		});
+
+		newPackageLayout.addAttribute("", create);
+	}
+
+	private void createWorkingSetAction(final String name, final String descr, final String parentPackage,
+			final Command refresh) {
+		LoadingPopup.showMessage(constants.CreatingPackagePleaseWait());
+		RepositoryServiceFactory.getService().createWorkingSet(name, descr, parentPackage,
+				new GenericCallback<String>() {
+					public void onSuccess(String data) {
+						RulePackageSelector.currentlySelectedPackage = parentPackage;
+						LoadingPopup.close();
+						refresh.execute();
+					}
+				});
+	}
+
+}
\ No newline at end of file


Property changes on: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/packages/NewWorkingSetWizard.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

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-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryService.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -21,10 +21,12 @@
 import java.util.List;
 import java.util.Map;
 
+import org.drools.guvnor.client.common.GenericCallback;
 import org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine;
 import org.drools.guvnor.client.modeldriven.testing.Scenario;
 
 import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.SerializableException;
 
 /**
  * This is what the remote service will implement, as a servlet.
@@ -42,13 +44,13 @@
      * Return a a 2d array/grid of results for rules.
      * @param A "/" delimited path to a category.
      */
-    public TableDataResult loadRuleListForCategories(String categoryPath, int skip, int numRows, String tableConfig) throws Exception;
+    public TableDataResult loadRuleListForCategories(String categoryPath, int skip, int numRows, String tableConfig) throws SerializableException;
 
     /**
      * Return a a 2d array/grid of results for rules.
      * @param The name of the state.
      */
-    public TableDataResult loadRuleListForState(String state, int skip, int numRows, String tableConfig) throws Exception;
+    public TableDataResult loadRuleListForState(String state, int skip, int numRows, String tableConfig) throws SerializableException;
 
 
     /**
@@ -67,14 +69,14 @@
      * Return the UUID of the item created.
      * This will not check in the rule, but just leave it as saved in the repo.
      */
-    public String createNewRule(String ruleName, String description, String initialCategory, String initialPackage, String format) throws Exception;
+    public String createNewRule(String ruleName, String description, String initialCategory, String initialPackage, String format) throws SerializableException;
 
     /**
      * Creates a new rule which is imported from global area.
      * Return the UUID of the item created.
      * This will not check in the rule, but just leave it as saved in the repo.
      */
-    public String createNewImportedRule(String sharedAssetName, String initialPackage) throws Exception;
+    public String createNewImportedRule(String sharedAssetName, String initialPackage) throws SerializableException;
 
     /**
      * Delete un checked in Asset
@@ -109,16 +111,16 @@
      * This loads up all the stuff for a
      * rule asset based on the UUID (always latest and editable version).
      */
-    public RuleAsset loadRuleAsset(String UUID) throws Exception;
+    public RuleAsset loadRuleAsset(String UUID) throws SerializableException;
 
-    public RuleAsset[] loadRuleAssets(String[] UUIDs) throws Exception;
+    public RuleAsset[] loadRuleAssets(String[] UUIDs) throws SerializableException;
 
 
     /**
      * This will load the history of the given asset, in a summary format suitable
      * for display in a table.
      */
-    public TableDataResult loadAssetHistory(String uuid) throws Exception;
+    public TableDataResult loadAssetHistory(String uuid) throws SerializableException;
 
 
     /**
@@ -126,7 +128,7 @@
      * for display in a table.
      */
 
-    public TableDataResult loadArchivedAssets(int skip, int numRows) throws Exception;
+    public TableDataResult loadArchivedAssets(int skip, int numRows) throws SerializableException;
 
 
     /**
@@ -134,7 +136,7 @@
      * @return the UUID of the asset you are checking in,
      * null if there was some problem (and an exception was not thrown).
      */
-    public String checkinVersion(RuleAsset asset) throws Exception;
+    public String checkinVersion(RuleAsset asset) throws SerializableException;
 
 
     /**
@@ -147,15 +149,25 @@
      * This creates a package of the given name, and checks it in.
      * @return UUID of the created item.
      */
-    public String createPackage(String name, String description) throws Exception;
+    public String createPackage(String name, String description) throws SerializableException;
     
     /**
      * This creates a package of the given name, and checks it in.
      * @return UUID of the created item.
      */
-    public String createSubPackage(String name, String description, String parentPackage) throws Exception;
+    public String createSubPackage(String name, String description, String parentPackage) throws SerializableException;
 
     /**
+     * 
+     * @param name
+     * @param descr
+     * @param parentPackage
+     * @return
+     * @throws Exception
+     */
+    public String createWorkingSet(String name, String descr, String parentPackage) throws SerializableException;
+    
+    /**
      * Loads a package by its uuid.
      * @return Well, its pretty obvious if you think about it for a minute. Really.
      */
@@ -168,7 +180,7 @@
      * should be given the option to review them, and correct them if needed
      * (but a save will not be prevented this way - as its not an exception).
      */
-    public ValidatedResponse savePackage(PackageConfigData data) throws Exception;
+    public ValidatedResponse savePackage(PackageConfigData data) throws SerializableException;
 
 
     /**
@@ -180,33 +192,33 @@
      * @param numRows The number of rows to return. -1 means all.
      * @param startRow The starting row number if paging - if numRows is -1 then this is ignored.
      */
-    public TableDataResult listAssets(String packageUUID, String formats[], int skip, int numRows, String tableConfig) throws Exception;
+    public TableDataResult listAssets(String packageUUID, String formats[], int skip, int numRows, String tableConfig) throws SerializableException;
 
     /**
      * Returns a list of valid states.
      */
-    public String[] listStates() throws Exception;
+    public String[] listStates() throws SerializableException;
 
     /**
      * Create a state (status).
      * @return the UUID of the created StateItem.
      */
-    public String createState(String name) throws Exception;
+    public String createState(String name) throws SerializableException;
 
     /**
      * Renames a state.
      * @param oldName states old name.
      * @param newName states new name.
-     * @throws Exception
+     * @throws SerializableException
      */
-    public void renameState(String oldName, String newName) throws Exception;
+    public void renameState(String oldName, String newName) throws SerializableException;
 
     /**
      * Removes a state.
      * @param name state name that will be removed.
-     * @throws Exception
+     * @throws SerializableException
      */
-    public void removeState(String name) throws Exception;
+    public void removeState(String name) throws SerializableException;
 
 
     /**
@@ -243,7 +255,7 @@
      * @param sourcePackageName
      * @param destPackageName
      */
-    public void copyPackage(String sourcePackageName, String destPackageName) throws Exception;
+    public void copyPackage(String sourcePackageName, String destPackageName) throws SerializableException;
 
     /**
      * This will load a list of snapshots for the given package. Snapshots are created
@@ -268,7 +280,7 @@
      * @param delete true if the snapshotName is to be removed.
      * @param newSnapshotName The name of the target snapshot that the contents will be copied to.
      */
-    public void copyOrRemoveSnapshot(String packageName, String snapshotName, boolean delete, String newSnapshotName) throws Exception;
+    public void copyOrRemoveSnapshot(String packageName, String snapshotName, boolean delete, String newSnapshotName) throws SerializableException;
 
 
     /**
@@ -277,7 +289,7 @@
     public TableDataResult quickFindAsset(String searchText,  
     		boolean searchArchived,
             int skip,
-            int numRows) throws Exception;
+            int numRows) throws SerializableException;
 
 
     /**
@@ -285,16 +297,16 @@
      * current assets linked to it, or else it will not be able to be removed.
      * @param categoryPath The full path to the category. Any sub categories will also
      * be removed.
-     * @throws Exception For when it all goes horribly wrong.
+     * @throws SerializableException For when it all goes horribly wrong.
      */
-    public void removeCategory(String categoryPath) throws Exception;
+    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 Exception;
+    public SuggestionCompletionEngine loadSuggestionCompletionEngine(String packageName) throws SerializableException;
 
     /**
      * Build the package (may be a snapshot) and return the result.
@@ -308,12 +320,12 @@
     public BuilderResult buildPackage(String packageUUID,  boolean force, String buildMode, 
     		String operator, String statusDescriptionValue, boolean enableStatusSelector, 
     		String categoryOperator, String category, boolean enableCategorySelector,
-			String customSelectorName) throws Exception;
+			String customSelectorName) throws SerializableException;
 
     /**
      * return custom selector names
      */
-    public String[] getCustomSelectors() throws Exception;
+    public String[] getCustomSelectors() throws SerializableException;
 
     /**
      * This will return the effective DRL for a package.
@@ -323,22 +335,22 @@
      *
      * It should still generate
      *
-     * @throws Exception
+     * @throws SerializableException
      */
-    public String buildPackageSource(String packageUUID) throws Exception;
+    public String buildPackageSource(String packageUUID) throws SerializableException;
 
 
     /**
      * This will return the effective source for an asset (in DRL).
      * Used as an aid for debugging.
      */
-    public String buildAssetSource(RuleAsset asset) throws Exception;
+    public String buildAssetSource(RuleAsset asset) throws SerializableException;
 
     /**
      * This will build the asset and return any build results (errors).
      * This is only to report on the results - it will generally not store any state or apply any changed.
      */
-    public BuilderResult buildAsset(RuleAsset asset) throws Exception;
+    public BuilderResult buildAsset(RuleAsset asset) throws SerializableException;
 
     /**
      * Rename an asset.
@@ -390,7 +402,7 @@
      * No errors are expected, as there will be no change. If there are errors,
      * an expert will need to look at them.
      */
-    public void rebuildSnapshots() throws Exception;
+    public void rebuildSnapshots() throws SerializableException;
 
 
     /**
@@ -398,7 +410,7 @@
      * No errors are expected, as there will be no change. If there are errors,
      * an expert will need to look at them.
      */
-    public void rebuildPackages() throws Exception;
+    public void rebuildPackages() throws SerializableException;
 
 
 
@@ -406,27 +418,27 @@
      * This will list the rules available in a package.
      * This has an upper limit of what it will return (it just doesn't make sense to show a list of 20K items !).
      */
-    public String[] listRulesInPackage(String packageName) throws Exception;
+    public String[] listRulesInPackage(String packageName) throws SerializableException;
 
     /**
      *
      * @param packageName The package name the scenario is to be run in.
      * @param scenario The scenario to run.
      * @return The scenario, with the results fields populated.
-     * @throws Exception
+     * @throws SerializableException
      */
-    public SingleScenarioResult runScenario(String packageName, Scenario scenario) throws Exception;
+    public SingleScenarioResult runScenario(String packageName, Scenario scenario) throws SerializableException;
 
 
     /**
      * This should be pretty obvious what it does !
      */
-    public BulkTestRunResult runScenariosInPackage(String packageUUID) throws Exception;
+    public BulkTestRunResult runScenariosInPackage(String packageUUID) throws SerializableException;
 
     /**
      * Analyse the package and get a report for it.
      */
-    public AnalysisReport analysePackage(String packageUUID) throws Exception;
+    public AnalysisReport analysePackage(String packageUUID) throws SerializableException;
 
 
     /**
@@ -434,7 +446,7 @@
      * This may not include things on the "system" classpath, but only things specifically scoped to the package
      * (eg in jars that have been uploaded to it as an asset).
      */
-    public String[] listTypesInPackage(String packageUUID) throws Exception;
+    public String[] listTypesInPackage(String packageUUID) throws SerializableException;
 
     /**
      * This will list the last N log entryies logged by the server. For debugging purposes in the GUI.
@@ -459,9 +471,9 @@
      * @param skip
      * @param numRows
      * @return
-     * @throws Exception
+     * @throws SerializableException
      */
-    public TableDataResult queryFullText(String text, boolean seekArchived, int skip, int numRows) throws Exception;
+    public TableDataResult queryFullText(String text, boolean seekArchived, int skip, int numRows) throws SerializableException;
 
     /**
      * Run a meta data search. All dates are in format as configured for the system. Pass in null and they will not be included in the search (that
@@ -475,10 +487,10 @@
      * @param skip
      * @param numRows
      * @return
-     * @throws Exception
+     * @throws SerializableException
      */
     public TableDataResult queryMetaData(final MetaDataQuery[] qr, Date createdAfter, Date createdBefore, Date modifiedAfter, Date modifiedBefore,
-    		boolean seekArchived, int skip, int numRows) throws Exception;
+    		boolean seekArchived, int skip, int numRows) throws SerializableException;
 
 
     /**
@@ -538,7 +550,7 @@
      * Installs the sample repository, wiping out what was already there.
      * Generally shouldn't call this unless it is new !
      */
-    public void installSampleRepository() throws Exception;
+    public void installSampleRepository() throws SerializableException;
 
 
     /**
@@ -572,5 +584,5 @@
                                           String firstSnapshotName,
                                           String secondSnapshotName);
     
-    public AnalysisReport verifyAsset(RuleAsset asset) throws Exception;
+    public AnalysisReport verifyAsset(RuleAsset asset) 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-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/client/rpc/RepositoryServiceAsync.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -17,6 +17,8 @@
 
 
 
+import org.drools.guvnor.client.common.GenericCallback;
+
 import com.google.gwt.user.client.rpc.RemoteService;
 
 /**
@@ -57,6 +59,7 @@
 	void createPackageSnapshot(java.lang.String packageName, java.lang.String snapshotName, boolean replaceExisting, java.lang.String comment, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg5);
 	void createState(java.lang.String name, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.String> arg2);
 	void createSubPackage(java.lang.String name, java.lang.String description, java.lang.String parentPackage, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.String> arg4);
+	void createWorkingSet(java.lang.String name, java.lang.String descr, java.lang.String parentPackage, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.String> arg4);
 	void createUser(java.lang.String userName, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg2);
 	void deleteUncheckedRule(java.lang.String ruleName, java.lang.String initialPackage, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg3);
 	void deleteUser(java.lang.String userName, com.google.gwt.user.client.rpc.AsyncCallback<java.lang.Void> arg2);

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-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/RepositoryServiceServlet.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -18,6 +18,7 @@
 import org.jboss.seam.contexts.Contexts;
 import org.jboss.seam.security.AuthorizationException;
 
+import com.google.gwt.user.client.rpc.SerializableException;
 import com.google.gwt.user.server.rpc.RemoteServiceServlet;
 
 /**
@@ -56,6 +57,7 @@
 	}
 
 	@Override
+	//FIXME {bauna} remove SerializableException!
 	protected void doUnexpectedFailure(Throwable e) {
 		if (e.getCause() instanceof AuthorizationException) {
 			HttpServletResponse response = getThreadLocalResponse();
@@ -103,10 +105,10 @@
     public java.lang.String[] loadChildCategories(java.lang.String p0)  {
          return getService().loadChildCategories( p0);
     }
-    public org.drools.guvnor.client.rpc.TableDataResult loadRuleListForCategories(java.lang.String p0, int p1, int p2, java.lang.String p3) throws Exception {
+    public org.drools.guvnor.client.rpc.TableDataResult loadRuleListForCategories(java.lang.String p0, int p1, int p2, java.lang.String p3) throws SerializableException {
          return getService().loadRuleListForCategories( p0,  p1,  p2,  p3);
     }
-    public org.drools.guvnor.client.rpc.TableDataResult loadRuleListForState(java.lang.String p0, int p1, int p2, java.lang.String p3) throws Exception {
+    public org.drools.guvnor.client.rpc.TableDataResult loadRuleListForState(java.lang.String p0, int p1, int p2, java.lang.String p3) throws SerializableException {
          return getService().loadRuleListForState( p0,  p1,  p2,  p3);
     }
     public org.drools.guvnor.client.rpc.TableConfig loadTableConfig(java.lang.String p0)  {
@@ -115,10 +117,10 @@
     public java.lang.Boolean createCategory(java.lang.String p0, java.lang.String p1, java.lang.String p2)  {
          return getService().createCategory( p0,  p1,  p2);
     }
-    public java.lang.String createNewRule(java.lang.String p0, java.lang.String p1, java.lang.String p2, java.lang.String p3, java.lang.String p4) throws Exception {
+    public java.lang.String createNewRule(java.lang.String p0, java.lang.String p1, java.lang.String p2, java.lang.String p3, java.lang.String p4) throws SerializableException {
          return getService().createNewRule( p0,  p1,  p2,  p3,  p4);
     }
-    public java.lang.String createNewImportedRule(java.lang.String p0, java.lang.String p1) throws Exception {
+    public java.lang.String createNewImportedRule(java.lang.String p0, java.lang.String p1) throws SerializableException {
          return getService().createNewImportedRule( p0,  p1);
     }
     public void deleteUncheckedRule(java.lang.String p0, java.lang.String p1)  {
@@ -136,51 +138,56 @@
     public org.drools.guvnor.client.rpc.PackageConfigData[] listArchivedPackages()  {
          return getService().listArchivedPackages();
     }
-    public org.drools.guvnor.client.rpc.RuleAsset loadRuleAsset(java.lang.String p0) throws Exception {
+    public org.drools.guvnor.client.rpc.RuleAsset loadRuleAsset(java.lang.String p0) throws SerializableException {
          return getService().loadRuleAsset( p0);
     }
-    public org.drools.guvnor.client.rpc.RuleAsset[] loadRuleAssets(java.lang.String[] p0) throws Exception {
+    public org.drools.guvnor.client.rpc.RuleAsset[] loadRuleAssets(java.lang.String[] p0) throws SerializableException {
          return getService().loadRuleAssets( p0);
     }
-    public org.drools.guvnor.client.rpc.TableDataResult loadAssetHistory(java.lang.String p0) throws Exception {
+    public org.drools.guvnor.client.rpc.TableDataResult loadAssetHistory(java.lang.String p0) throws SerializableException {
          return getService().loadAssetHistory( p0);
     }
-    public org.drools.guvnor.client.rpc.TableDataResult loadArchivedAssets(int p0, int p1) throws Exception {
+    public org.drools.guvnor.client.rpc.TableDataResult loadArchivedAssets(int p0, int p1) throws SerializableException {
          return getService().loadArchivedAssets( p0,  p1);
     }
-    public java.lang.String checkinVersion(org.drools.guvnor.client.rpc.RuleAsset p0) throws Exception {
+    public java.lang.String checkinVersion(org.drools.guvnor.client.rpc.RuleAsset p0) throws SerializableException {
          return getService().checkinVersion( p0);
     }
     public void restoreVersion(java.lang.String p0, java.lang.String p1, java.lang.String p2)  {
         getService().restoreVersion( p0,  p1,  p2);
     }
-    public java.lang.String createPackage(java.lang.String p0, java.lang.String p1) throws Exception {
+    public java.lang.String createPackage(java.lang.String p0, java.lang.String p1) throws SerializableException {
          return getService().createPackage( p0,  p1);
     }
     
-    public java.lang.String createSubPackage(java.lang.String p0, java.lang.String p1, String parentPackage) throws Exception {
-        return getService().createSubPackage( p0,  p1, parentPackage);
-   }
+	public java.lang.String createSubPackage(java.lang.String p0, java.lang.String p1, String parentPackage)
+			throws SerializableException {
+		return getService().createSubPackage(p0, p1, parentPackage);
+	}
+
+    public String createWorkingSet(String name, String descr, String parentPackage) throws SerializableException {
+    	return getService().createWorkingSet(name, descr, parentPackage);
+    }
     
     public org.drools.guvnor.client.rpc.PackageConfigData loadPackageConfig(java.lang.String p0)  {
          return getService().loadPackageConfig( p0);
     }
-    public org.drools.guvnor.client.rpc.ValidatedResponse savePackage(org.drools.guvnor.client.rpc.PackageConfigData p0) throws Exception {
+    public org.drools.guvnor.client.rpc.ValidatedResponse savePackage(org.drools.guvnor.client.rpc.PackageConfigData p0) throws SerializableException {
          return getService().savePackage( p0);
     }
-    public org.drools.guvnor.client.rpc.TableDataResult listAssets(java.lang.String p0, java.lang.String[] p1, int p2, int p3, java.lang.String p4) throws Exception {
+    public org.drools.guvnor.client.rpc.TableDataResult listAssets(java.lang.String p0, java.lang.String[] p1, int p2, int p3, java.lang.String p4) throws SerializableException {
          return getService().listAssets( p0,  p1,  p2,  p3,  p4);
     }
-    public java.lang.String[] listStates() throws Exception {
+    public java.lang.String[] listStates() throws SerializableException {
          return getService().listStates();
     }
-    public java.lang.String createState(java.lang.String p0) throws Exception {
+    public java.lang.String createState(java.lang.String p0) throws SerializableException {
          return getService().createState( p0);
     }
-    public void renameState(java.lang.String p0, java.lang.String p1) throws Exception {
+    public void renameState(java.lang.String p0, java.lang.String p1) throws SerializableException {
         getService().renameState( p0,  p1);
     }
-    public void removeState(java.lang.String p0) throws Exception {
+    public void removeState(java.lang.String p0) throws SerializableException {
         getService().removeState( p0);
     }
     public void changeState(java.lang.String p0, java.lang.String p1, boolean p2)  {
@@ -195,7 +202,7 @@
     public java.lang.String copyAsset(java.lang.String p0, java.lang.String p1, java.lang.String p2)  {
          return getService().copyAsset( p0,  p1,  p2);
     }
-    public void copyPackage(java.lang.String p0, java.lang.String p1) throws Exception {
+    public void copyPackage(java.lang.String p0, java.lang.String p1) throws SerializableException {
         getService().copyPackage( p0,  p1);
     }
     public org.drools.guvnor.client.rpc.SnapshotInfo[] listSnapshots(java.lang.String p0)  {
@@ -204,31 +211,31 @@
     public void createPackageSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3)  {
         getService().createPackageSnapshot( p0,  p1,  p2,  p3);
     }
-    public void copyOrRemoveSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3) throws Exception {
+    public void copyOrRemoveSnapshot(java.lang.String p0, java.lang.String p1, boolean p2, java.lang.String p3) throws SerializableException {
         getService().copyOrRemoveSnapshot( p0,  p1,  p2,  p3);
     }
-    public org.drools.guvnor.client.rpc.TableDataResult quickFindAsset(java.lang.String p0, boolean p1, int p2, int p3) throws Exception {
+    public org.drools.guvnor.client.rpc.TableDataResult quickFindAsset(java.lang.String p0, boolean p1, int p2, int p3) throws SerializableException {
          return getService().quickFindAsset( p0,  p1,  p2,  p3);
     }
-    public void removeCategory(java.lang.String p0) throws Exception {
+    public void removeCategory(java.lang.String p0) throws SerializableException {
         getService().removeCategory( p0);
     }
-    public org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine loadSuggestionCompletionEngine(java.lang.String p0) throws Exception {
+    public org.drools.guvnor.client.modeldriven.SuggestionCompletionEngine loadSuggestionCompletionEngine(java.lang.String p0) throws 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, boolean p5, java.lang.String p6, java.lang.String p7, boolean p8, java.lang.String p9) throws Exception {
+    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 SerializableException {
          return getService().buildPackage( p0,  p1,  p2,  p3,  p4,  p5,  p6,  p7,  p8,  p9);
     }
-    public java.lang.String[] getCustomSelectors() throws Exception {
+    public java.lang.String[] getCustomSelectors() throws SerializableException {
          return getService().getCustomSelectors();
     }
-    public java.lang.String buildPackageSource(java.lang.String p0) throws Exception {
+    public java.lang.String buildPackageSource(java.lang.String p0) throws SerializableException {
          return getService().buildPackageSource( p0);
     }
-    public java.lang.String buildAssetSource(org.drools.guvnor.client.rpc.RuleAsset p0) throws Exception {
+    public java.lang.String buildAssetSource(org.drools.guvnor.client.rpc.RuleAsset p0) throws SerializableException {
          return getService().buildAssetSource( p0);
     }
-    public org.drools.guvnor.client.rpc.BuilderResult buildAsset(org.drools.guvnor.client.rpc.RuleAsset p0) throws Exception {
+    public org.drools.guvnor.client.rpc.BuilderResult buildAsset(org.drools.guvnor.client.rpc.RuleAsset p0) throws SerializableException {
          return getService().buildAsset( p0);
     }
     public java.lang.String renameAsset(java.lang.String p0, java.lang.String p1)  {
@@ -255,25 +262,25 @@
     public java.lang.String renamePackage(java.lang.String p0, java.lang.String p1)  {
          return getService().renamePackage( p0,  p1);
     }
-    public void rebuildSnapshots() throws Exception {
+    public void rebuildSnapshots() throws SerializableException {
         getService().rebuildSnapshots();
     }
-    public void rebuildPackages() throws Exception {
+    public void rebuildPackages() throws SerializableException {
         getService().rebuildPackages();
     }
-    public java.lang.String[] listRulesInPackage(java.lang.String p0) throws Exception {
+    public java.lang.String[] listRulesInPackage(java.lang.String p0) throws SerializableException {
          return getService().listRulesInPackage( p0);
     }
-    public org.drools.guvnor.client.rpc.SingleScenarioResult runScenario(java.lang.String p0, org.drools.guvnor.client.modeldriven.testing.Scenario p1) throws Exception {
+    public org.drools.guvnor.client.rpc.SingleScenarioResult runScenario(java.lang.String p0, org.drools.guvnor.client.modeldriven.testing.Scenario p1) throws SerializableException {
          return getService().runScenario( p0,  p1);
     }
-    public org.drools.guvnor.client.rpc.BulkTestRunResult runScenariosInPackage(java.lang.String p0) throws Exception {
+    public org.drools.guvnor.client.rpc.BulkTestRunResult runScenariosInPackage(java.lang.String p0) throws SerializableException {
          return getService().runScenariosInPackage( p0);
     }
-    public org.drools.guvnor.client.rpc.AnalysisReport analysePackage(java.lang.String p0) throws Exception {
+    public org.drools.guvnor.client.rpc.AnalysisReport analysePackage(java.lang.String p0) throws SerializableException {
          return getService().analysePackage( p0);
     }
-    public java.lang.String[] listTypesInPackage(java.lang.String p0) throws Exception {
+    public java.lang.String[] listTypesInPackage(java.lang.String p0) throws SerializableException {
          return getService().listTypesInPackage( p0);
     }
     public org.drools.guvnor.client.rpc.LogEntry[] showLog()  {
@@ -285,10 +292,10 @@
     public java.lang.String[] loadDropDownExpression(java.lang.String[] p0, java.lang.String p1)  {
          return getService().loadDropDownExpression( p0,  p1);
     }
-    public org.drools.guvnor.client.rpc.TableDataResult queryFullText(java.lang.String p0, boolean p1, int p2, int p3) throws Exception {
+    public org.drools.guvnor.client.rpc.TableDataResult queryFullText(java.lang.String p0, boolean p1, int p2, int p3) throws SerializableException {
          return getService().queryFullText( p0,  p1,  p2,  p3);
     }
-    public org.drools.guvnor.client.rpc.TableDataResult queryMetaData(org.drools.guvnor.client.rpc.MetaDataQuery[] p0, java.util.Date p1, java.util.Date p2, java.util.Date p3, java.util.Date p4, boolean p5, int p6, int p7) throws Exception {
+    public org.drools.guvnor.client.rpc.TableDataResult queryMetaData(org.drools.guvnor.client.rpc.MetaDataQuery[] p0, java.util.Date p1, java.util.Date p2, java.util.Date p3, java.util.Date p4, boolean p5, int p6, int p7) throws SerializableException {
          return getService().queryMetaData( p0,  p1,  p2,  p3,  p4,  p5,  p6,  p7);
     }
     public java.util.Map listUserPermissions() throws org.drools.guvnor.client.rpc.DetailedSerializableException {
@@ -318,7 +325,7 @@
     public void unLockAsset(java.lang.String p0)  {
         getService().unLockAsset( p0);
     }
-    public void installSampleRepository() throws Exception {
+    public void installSampleRepository() throws SerializableException {
         getService().installSampleRepository();
     }
     public java.util.List loadDiscussionForAsset(java.lang.String p0)  {
@@ -340,7 +347,7 @@
          return getService().compareSnapshots( p0,  p1,  p2);
     }
 
-    public AnalysisReport verifyAsset(RuleAsset asset) throws Exception {
+    public AnalysisReport verifyAsset(RuleAsset asset) throws SerializableException {
         return getService().verifyAsset( asset );
     }
 

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-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -144,6 +144,8 @@
 import org.mvel2.MVEL;
 import org.mvel2.templates.TemplateRuntime;
 
+import com.google.gwt.user.client.rpc.SerializableException;
+
 /**
  * This is the implementation of the repository service to drive the GWT based
  * front end.
@@ -242,7 +244,7 @@
                                 String description,
                                 String initialCategory,
                                 String initialPackage,
-                                String format) throws Exception {
+                                String format) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( initialPackage ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -274,7 +276,7 @@
                 return "DUPLICATE";
             } else {
                 log.error( "An error occurred creating new asset" + ruleName + "] in package [" + initialPackage + "]: " + e.getMessage() );
-                throw new Exception( e.getMessage() );
+                throw new SerializableException( e.getMessage() );
             }
         }
 
@@ -286,7 +288,7 @@
     @WebRemote
     @Restrict("#{identity.loggedIn}")
     public String createNewImportedRule(String sharedAssetName,
-                                        String initialPackage) throws Exception {
+                                        String initialPackage) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( initialPackage ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -305,7 +307,7 @@
                 return "DUPLICATE";
             } else {
                 log.error( "An error occurred creating shared asset" + sharedAssetName + "] in package [" + initialPackage + "]: " + e.getMessage() );
-                throw new Exception( e.getMessage() );
+                throw new SerializableException( e.getMessage() );
             }
         }
 
@@ -490,7 +492,7 @@
     public TableDataResult loadRuleListForCategories(String categoryPath,
                                                      int skip,
                                                      int numRows,
-                                                     String tableConfig) throws Exception {
+                                                     String tableConfig) throws SerializableException {
         // love you
         // long time = System.currentTimeMillis();
 
@@ -524,7 +526,7 @@
     public TableDataResult loadRuleListForState(String stateName,
                                                 int skip,
                                                 int numRows,
-                                                String tableConfig) throws Exception {
+                                                String tableConfig) throws SerializableException {
         // love you
         // long time = System.currentTimeMillis();
 
@@ -560,7 +562,7 @@
      */
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public RuleAsset loadRuleAsset(String uuid) throws Exception {
+    public RuleAsset loadRuleAsset(String uuid) throws SerializableException {
 
         long time = System.currentTimeMillis();
 
@@ -622,7 +624,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public RuleAsset[] loadRuleAssets(String[] uuids) throws Exception {
+    public RuleAsset[] loadRuleAssets(String[] uuids) throws SerializableException {
 
         Collection<RuleAsset> assets = new HashSet<RuleAsset>();
 
@@ -633,7 +635,7 @@
         return assets.toArray( new RuleAsset[assets.size()] );
     }
 
-    private RuleAsset loadAsset(AssetItem item) throws Exception {
+    private RuleAsset loadAsset(AssetItem item) throws SerializableException {
 
         RuleAsset asset = new RuleAsset();
         asset.uuid = item.getUUID();
@@ -710,7 +712,7 @@
      * 2. The user has package.readonly role (or package.admin, package.developer)
      * and this role has permission to access the package which the asset belongs to.
      */
-    public String checkinVersion(RuleAsset asset) throws Exception {
+    public String checkinVersion(RuleAsset asset) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( asset.metaData.packageName ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -771,7 +773,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public TableDataResult loadAssetHistory(String uuid) throws Exception {
+    public TableDataResult loadAssetHistory(String uuid) throws SerializableException {
 
         List<TableDataRow> result = new ArrayList<TableDataRow>();
 
@@ -826,7 +828,7 @@
     @WebRemote
     @Restrict("#{identity.loggedIn}")
     public TableDataResult loadArchivedAssets(int skip,
-                                              int numRows) throws Exception {
+                                              int numRows) throws SerializableException {
         List<TableDataRow> result = new ArrayList<TableDataRow>();
         RepositoryFilter filter = new AssetItemFilter();
 
@@ -881,7 +883,7 @@
 
     @WebRemote
     public String createPackage(String name,
-                                String description) throws Exception {
+                                String description) throws RulesRepositoryException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new AdminType(),
                                                  RoleTypes.ADMIN );
@@ -895,7 +897,7 @@
     }
 
     @WebRemote
-    public String createSubPackage(String name, String description, String parentNode) throws Exception {
+    public String createSubPackage(String name, String description, String parentNode) throws SerializableException {
         //XXX bauna
 		if (Contexts.isSessionContextActive()) {
 			Identity.instance().checkPermission(new AdminType(), RoleTypes.ADMIN);
@@ -907,6 +909,25 @@
     }
     
     @WebRemote
+    public String createWorkingSet(String name, String descr, String parentPackage) throws SerializableException {
+    	try {
+
+    		if (Contexts.isSessionContextActive()) {
+				Identity.instance().checkPermission(new AdminType(), RoleTypes.ADMIN);
+			}
+
+			log.info( "USER: " + getCurrentUserName() + " CREATING workingSet [" + name + "], package [" + parentPackage + "]");
+			PackageItem item = repository.loadPackage(parentPackage);
+			return item.addWorkingSet(name, descr).getUUID();
+		} catch (Exception e) {
+			log.error(e, e);
+			throw new SerializableException(e.getMessage());
+		} finally {
+			repository.save();
+		}
+    }
+    
+    @WebRemote
     @Restrict("#{identity.loggedIn}")
     public PackageConfigData loadPackageConfig(String uuid) {
         PackageItem item = repository.loadPackageByUUID( uuid );
@@ -975,7 +996,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public ValidatedResponse savePackage(PackageConfigData data) throws Exception {
+    public ValidatedResponse savePackage(PackageConfigData data) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageUUIDType( data.uuid ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -1048,7 +1069,7 @@
                                       String formats[],
                                       int skip,
                                       int numRows,
-                                      String tableConfig) throws Exception {
+                                      String tableConfig) throws SerializableException {
         log.debug( "Loading asset list for [" + uuid + "]" );
         if ( numRows == 0 ) {
             throw new DetailedSerializableException( "Unable to return zero results (bug)",
@@ -1074,7 +1095,7 @@
     public TableDataResult queryFullText(String text,
                                          boolean seekArchived,
                                          int skip,
-                                         int numRows) throws Exception {
+                                         int numRows) throws SerializableException {
         if ( numRows == 0 ) {
             throw new DetailedSerializableException( "Unable to return zero results (bug)",
                                                      "probably have the parameters around the wrong way, sigh..." );
@@ -1110,7 +1131,7 @@
                                          Date modifiedBefore,
                                          boolean seekArchived,
                                          int skip,
-                                         int numRows) throws Exception {
+                                         int numRows) throws SerializableException {
         if ( numRows == 0 ) {
             throw new DetailedSerializableException( "Unable to return zero results (bug)",
                                                      "probably have the parameters around the wrong way, sigh..." );
@@ -1202,7 +1223,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public String createState(String name) throws Exception {
+    public String createState(String name) throws SerializableException {
         log.info( "USER:" + getCurrentUserName() + " CREATING state: [" + name + "]" );
         try {
             name = cleanHTML( name );
@@ -1210,13 +1231,13 @@
             repository.save();
             return uuid;
         } catch ( RepositoryException e ) {
-            throw new Exception( "Unable to create the status." );
+            throw new SerializableException( "Unable to create the status." );
         }
     }
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public void removeState(String name) throws Exception {
+    public void removeState(String name) throws SerializableException {
         log.info( "USER:" + getCurrentUserName() + " REMOVING state: [" + name + "]" );
 
         try {
@@ -1232,7 +1253,7 @@
     @WebRemote
     @Restrict("#{identity.loggedIn}")
     public void renameState(String oldName,
-                            String newName) throws Exception {
+                            String newName) throws SerializableException {
         log.info( "USER:" + getCurrentUserName() + " RENAMING state: [" + oldName + "] to [" + newName + "]" );
         repository.renameState( oldName,
                                 newName );
@@ -1241,7 +1262,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public String[] listStates() throws Exception {
+    public String[] listStates() throws SerializableException {
         StateItem[] states = repository.listStates();
         String[] result = new String[states.length];
         for ( int i = 0; i < states.length; i++ ) {
@@ -1421,7 +1442,7 @@
     public void copyOrRemoveSnapshot(String packageName,
                                      String snapshotName,
                                      boolean delete,
-                                     String newSnapshotName) throws Exception {
+                                     String newSnapshotName) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( packageName ),
                                                  RoleTypes.PACKAGE_ADMIN );
@@ -1433,7 +1454,7 @@
                                               snapshotName );
         } else {
             if ( newSnapshotName.equals( "" ) ) {
-                throw new Exception( "Need to have a new snapshot name." );
+                throw new SerializableException( "Need to have a new snapshot name." );
             }
             log.info( "USER:" + getCurrentUserName() + " COPYING SNAPSHOT for package: [" + packageName + "] snapshot: [" + snapshotName + "] to [" + newSnapshotName + "]" );
 
@@ -1449,7 +1470,7 @@
     public TableDataResult quickFindAsset(String searchText,
                                           boolean searchArchived,
                                           int skip,
-                                          int numRows) throws Exception {
+                                          int numRows) throws SerializableException {
         String search = searchText.replace( '*',
                                             '%' );
 
@@ -1485,7 +1506,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public void removeCategory(String categoryPath) throws Exception {
+    public void removeCategory(String categoryPath) throws SerializableException {
         log.info( "USER:" + getCurrentUserName() + " REMOVING CATEGORY path: [" + categoryPath + "]" );
 
         try {
@@ -1512,7 +1533,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public SuggestionCompletionEngine loadSuggestionCompletionEngine(String packageName) throws Exception {
+    public SuggestionCompletionEngine loadSuggestionCompletionEngine(String packageName) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( packageName ),
                                                  RoleTypes.PACKAGE_READONLY );
@@ -1539,7 +1560,7 @@
 
         } catch ( RulesRepositoryException e ) {
             log.error( "An error occurred loadSuggestionCompletionEngine: " + e.getMessage() );
-            throw new Exception( e.getMessage() );
+            throw new SerializableException( e.getMessage() );
         } finally {
             Thread.currentThread().setContextClassLoader( originalCL );
         }
@@ -1549,7 +1570,7 @@
     @WebRemote
     @Restrict("#{identity.loggedIn}")
     public BuilderResult buildPackage(String packageUUID,
-                                        boolean force) throws Exception {
+                                        boolean force) throws SerializableException {
         return buildPackage( packageUUID,
                              force,
                              null,
@@ -1573,7 +1594,7 @@
                                         String categoryOperator,
                                         String category,
                                         boolean enableCategorySelector,
-                                        String customSelectorName) throws Exception {
+                                        String customSelectorName) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageUUIDType( packageUUID ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -1601,7 +1622,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public String[] getCustomSelectors() throws Exception {
+    public String[] getCustomSelectors() throws SerializableException {
         return SelectorManager.getInstance().getCustomSelectors();
     }
 
@@ -1673,7 +1694,7 @@
     }
 
     private void updateBinaryPackage(PackageItem item,
-                                     ContentPackageAssembler asm) throws Exception {
+                                     ContentPackageAssembler asm) throws SerializableException {
         item.updateBinaryUpToDate( true );
         RuleBaseConfiguration conf = new RuleBaseConfiguration();
         // setting the MapBackedClassloader that is the parent of the builder classloader as the parent
@@ -1700,7 +1721,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public String buildPackageSource(String packageUUID) throws Exception {
+    public String buildPackageSource(String packageUUID) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageUUIDType( packageUUID ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -1714,7 +1735,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public String buildAssetSource(RuleAsset asset) throws Exception {
+    public String buildAssetSource(RuleAsset asset) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( asset.metaData.packageName ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -1750,7 +1771,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public BuilderResult buildAsset(RuleAsset asset) throws Exception {
+    public BuilderResult buildAsset(RuleAsset asset) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( asset.metaData.packageName ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -1797,7 +1818,7 @@
 
     @WebRemote
     public void copyPackage(String sourcePackageName,
-                            String destPackageName) throws Exception {
+                            String destPackageName) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new AdminType(),
                                                  RoleTypes.ADMIN );
@@ -1942,7 +1963,7 @@
     }
 
     @WebRemote
-    public void rebuildSnapshots() throws Exception {
+    public void rebuildSnapshots() throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new AdminType(),
                                                  RoleTypes.ADMIN );
@@ -1972,7 +1993,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public String[] listRulesInPackage(String packageName) throws Exception {
+    public String[] listRulesInPackage(String packageName) throws SerializableException {
 
         // check security
         if ( Contexts.isSessionContextActive() ) {
@@ -2020,14 +2041,14 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public String[] listRulesInGlobalArea() throws Exception {
+    public String[] listRulesInGlobalArea() throws SerializableException {
         return listRulesInPackage( RulesRepository.RULE_GLOBAL_AREA );
     }
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
     public SingleScenarioResult runScenario(String packageName,
-                                            Scenario scenario) throws Exception {
+                                            Scenario scenario) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( packageName ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -2041,7 +2062,7 @@
 
     private SingleScenarioResult runScenario(String packageName,
                                              Scenario scenario,
-                                             RuleCoverageListener coverage) throws Exception {
+                                             RuleCoverageListener coverage) throws SerializableException {
         PackageItem item = this.repository.loadPackage( packageName );
         SingleScenarioResult result = null;
         // nasty classloader needed to make sure we use the same tree the whole
@@ -2238,7 +2259,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public BulkTestRunResult runScenariosInPackage(String packageUUID) throws Exception {
+    public BulkTestRunResult runScenariosInPackage(String packageUUID) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageUUIDType( packageUUID ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -2248,7 +2269,7 @@
     }
 
     public BulkTestRunResult runScenariosInPackage(PackageItem item) throws DetailedSerializableException,
-                                                                    Exception {
+    		SerializableException {
         ClassLoader originalCL = Thread.currentThread().getContextClassLoader();
         ClassLoader cl = null;
 
@@ -2334,7 +2355,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public AnalysisReport analysePackage(String packageUUID) throws Exception {
+    public AnalysisReport analysePackage(String packageUUID) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageUUIDType( packageUUID ),
                                                  RoleTypes.PACKAGE_DEVELOPER );
@@ -2354,7 +2375,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public String[] listTypesInPackage(String packageUUID) throws Exception {
+    public String[] listTypesInPackage(String packageUUID) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageUUIDType( packageUUID ),
                                                  "package.readoly" );
@@ -2501,7 +2522,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public void rebuildPackages() throws Exception {
+    public void rebuildPackages() throws SerializableException {
         Iterator pkit = repository.listPackages();
         StringBuffer errs = new StringBuffer();
         while ( pkit.hasNext() ) {
@@ -2640,7 +2661,7 @@
     }
 
     @Restrict("#{identity.loggedIn}")
-    public void installSampleRepository() throws Exception {
+    public void installSampleRepository() throws SerializableException {
         checkIfADMIN();
         repository.importRepository( this.getClass().getResourceAsStream( "/mortgage-sample-repository.xml" ) );
         this.rebuildPackages();
@@ -2836,7 +2857,7 @@
 
     @WebRemote
     @Restrict("#{identity.loggedIn}")
-    public AnalysisReport verifyAsset(RuleAsset asset) throws Exception {
+    public AnalysisReport verifyAsset(RuleAsset asset) throws SerializableException {
         if ( Contexts.isSessionContextActive() ) {
             Identity.instance().checkPermission( new PackageNameType( asset.metaData.packageName ),
                                                  RoleTypes.PACKAGE_DEVELOPER );

Added: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor/images/workingset.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-guvnor/src/main/webapp/org.drools.guvnor.Guvnor/images/workingset.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/JackrabbitRepositoryConfigurator.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -69,6 +69,7 @@
                 
                 this.registerNodeTypesFromCndFile("/node_type_definitions/rule_node_type.cnd", ws);
                 this.registerNodeTypesFromCndFile("/node_type_definitions/rulepackage_node_type.cnd", ws);
+                this.registerNodeTypesFromCndFile("/node_type_definitions/workingset_node_type.cnd", ws);
              
             }
             

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/PackageItem.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -186,6 +186,7 @@
     }
     
     public WorkingSetItem addWorkingSet(String name, String description) throws RepositoryException {
+    	getNode().checkout();
     	return new WorkingSetItem(name, description, getName(), rulesRepository, getWorkingSetFolderNode());
     }
     

Modified: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/RulesRepositoryAdministrator.java
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/RulesRepositoryAdministrator.java	2010-03-09 01:13:07 UTC (rev 31997)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/java/org/drools/repository/RulesRepositoryAdministrator.java	2010-03-09 01:14:14 UTC (rev 31998)
@@ -79,6 +79,4 @@
             log.error( e );
         }
     }  
-    
-    
 }

Added: labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/resources/node_type_definitions/workingset_node_type.cnd
===================================================================
--- labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/resources/node_type_definitions/workingset_node_type.cnd	                        (rev 0)
+++ labs/jbossrules/branches/factsConstraints_baunax_esteban/drools-repository/src/main/resources/node_type_definitions/workingset_node_type.cnd	2010-03-09 01:14:14 UTC (rev 31998)
@@ -0,0 +1,27 @@
+/*  The node type definition for the ruleset node type.  
+    See http://jackrabbit.apache.org/doc/nodetype/cnd.html for an explanation
+*/
+
+// The namespace declaration
+<drools = 'http://www.jboss.org/drools-repository/1.0'>
+<nt='http://www.jcp.org/jcr/nt/1.0'>
+<mix='http://www.jcp.org/jcr/mix/1.0'>
+
+// Node type name
+[drools:packageWorkingSet]
+
+// Supertypes
+> 'drools:versionableNodeType', 'nt:folder'
+
+- drools:archive (boolean) = 'false' mandatory autocreated
+
+- drools:validFacts (String) = '' mandatory autocreated multiple 
+
+// Multiple assets are children of one physical package definition
+// these folders contain the actual assets
++ * (drools:packageWorkingSet)
+  ignore
+
+// use this to capture fields which are not known ahead of time 
+- * (undefined) 
+



More information about the jboss-svn-commits mailing list