[jboss-svn-commits] JBL Code SVN: r9063 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/packages and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Jan 29 01:31:24 EST 2007


Author: michael.neale at jboss.com
Date: 2007-01-29 01:31:23 -0500 (Mon, 29 Jan 2007)
New Revision: 9063

Added:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/package.html
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/form_banner.gif
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/function_assets.gif
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/jbrules_logo_small.jpg
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/model_asset.gif
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/new_package.gif
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/technical_rule_assets.gif
Modified:
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/VersionBrowser.java
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html
   labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
   labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-632 package management

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -1,24 +1,9 @@
 package org.drools.brms.client;
 
-import java.util.HashMap;
+import org.drools.brms.client.packages.PackageExplorerWidget;
 
-import org.drools.brms.client.modeldriven.SuggestionCompletionEngine;
-import org.drools.brms.client.modeldriven.brxml.ActionAssertFact;
-import org.drools.brms.client.modeldriven.brxml.ActionFieldValue;
-import org.drools.brms.client.modeldriven.brxml.ActionRetractFact;
-import org.drools.brms.client.modeldriven.brxml.ActionSetField;
-import org.drools.brms.client.modeldriven.brxml.CompositeFactPattern;
-import org.drools.brms.client.modeldriven.brxml.Constraint;
-import org.drools.brms.client.modeldriven.brxml.DSLSentence;
-import org.drools.brms.client.modeldriven.brxml.DSLSentenceFragment;
-import org.drools.brms.client.modeldriven.brxml.FactPattern;
-import org.drools.brms.client.modeldriven.brxml.IAction;
-import org.drools.brms.client.modeldriven.brxml.IPattern;
-import org.drools.brms.client.modeldriven.brxml.RuleModel;
-import org.drools.brms.client.modeldriven.ui.RuleModeller;
+import com.google.gwt.user.client.ui.FlexTable;
 
-import com.google.gwt.user.client.ui.VerticalPanel;
-
 /**
  * This is the package management feature. 
  * For managing packages (namespaces, imports etc) for rule assets.
@@ -29,156 +14,25 @@
 
     public static ComponentInfo init() {
         return new ComponentInfo( "Packages",
-                                  "This currently shows a demo of the rule modeller." ) {
+                                  "Configure and view packages of business rule assets." ) {
             public JBRMSFeature createInstance() {
                 return new Packages();
             }
-
         };
     }
 
 
     public Packages() {
-        VerticalPanel panel = new VerticalPanel();
+        final FlexTable layout = new FlexTable();
         
-        panel.add( new RuleModeller(getDummySuggestionEngine(), getDummyData() ) );
+        layout.setWidget( 0, 0, new PackageExplorerWidget() );
         
-        panel.setSpacing( 8 );
-
-        
-        initWidget( panel );
+        initWidget( layout );
     }
 
 
-    private SuggestionCompletionEngine getDummySuggestionEngine() {
-        SuggestionCompletionEngine com = new SuggestionCompletionEngine();
-        
-        com.factTypes = new String[] {"Person", "Vehicle"};
-        com.fieldTypes = new HashMap() {{
-            put("Person.age", SuggestionCompletionEngine.TYPE_NUMERIC);
-            put("Person.name", "String");
-            put("Vehicle.type", "String");
-            put("Vehcile.make", "String");
-        }};
 
-        com.fieldsForType = new HashMap() {{
-           put("Person", new String[] {"age", "name"});
-           put("Vehicle", new String[] {"type", "make"});
-        }};
-        
-        
-        DSLSentence sen = new DSLSentence();
-        sen.elements = new DSLSentenceFragment[2];
-        sen.elements[0] = new DSLSentenceFragment("This is a dsl expression", false);
-        sen.elements[1] = new DSLSentenceFragment("(something)", true);
-        com.conditionDSLSentences = new DSLSentence[] {sen};
 
-        
-        sen = new DSLSentence();
-        sen.elements = new DSLSentenceFragment[3];
-        sen.elements[0] = new DSLSentenceFragment("Send an email to [", false);
-        sen.elements[1] = new DSLSentenceFragment("(someone)", true);
-        sen.elements[2] = new DSLSentenceFragment("]", false);
-        
-        
-        DSLSentence sen2 = new DSLSentence();
-        sen2.elements = new DSLSentenceFragment[1];
-        sen2.elements[0] = new DSLSentenceFragment("do nothing", false);        
-        
-        com.actionDSLSentences = new DSLSentence[] {sen, sen2};
-        
-        
-        return com;
-    }
-
-
-    private RuleModel getDummyData() {
-        RuleModel model = new RuleModel();
-        
-        model.lhs = new IPattern[3];
-        
-        FactPattern p1 = new FactPattern();
-        FactPattern p2 = new FactPattern();
-        CompositeFactPattern p3 = new CompositeFactPattern();
-        
-        
-        model.lhs[0] = p1;
-        model.lhs[1] = p2;
-        model.lhs[2] = p3;
-        
-        DSLSentence dsl = new DSLSentence();
-        dsl.elements = new DSLSentenceFragment[2];
-        dsl.elements[0] = new DSLSentenceFragment("There is a Storm alert of type", false);
-        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
-        
-        model.addLhsItem( dsl );
-        
-        dsl = new DSLSentence();
-        dsl.elements = new DSLSentenceFragment[2];
-        dsl.elements[0] = new DSLSentenceFragment("- severity rating is not more than", false);
-        dsl.elements[1] = new DSLSentenceFragment("(code here)", true);
-        
-        model.addLhsItem( dsl );
-            
-        
-        
-        
-        p1.factType = "Person";
-        p1.constraints = new Constraint[2];
-        p1.constraints[0] = new Constraint();
-        p1.constraints[1] = new Constraint();
-        p1.constraints[0].fieldName = "age";
-        p1.constraints[0].operator = "<";
-        p1.constraints[0].value = "42";
-
-        p1.constraints[1].fieldName = "name";
-        p1.constraints[1].operator = "==";
-        p1.constraints[1].value = "Bob";
-        p1.constraints[1].fieldBinding = "n";
-  
-        
-        
-        p2.factType = "Vehicle";
-        p2.boundName = "car1";
-        p2.constraints = new Constraint[1];
-        p2.constraints[0] = new Constraint();
-        p2.constraints[0].fieldName = "type";
-        p2.constraints[0].operator = "!=";
-        
-        p3.type = "not";
-        p3.patterns = new FactPattern[1];
-        FactPattern i1 = new FactPattern("Vehicle");
-        i1.constraints = new Constraint[1];
-        i1.constraints[0] = new Constraint();
-        i1.constraints[0].fieldName = "type";
-        i1.constraints[0].operator = "==";
-        
-        p3.patterns[0] = i1;
-        
-        ActionSetField set = new ActionSetField();
-        set.variable = "car1";
-        set.fieldValues = new ActionFieldValue[1];
-        set.fieldValues[0] = new ActionFieldValue();
-        set.fieldValues[0].field = "type";
-        
-        ActionAssertFact fact = new ActionAssertFact();
-        fact.factType = "Person";
-        fact.fieldValues = new ActionFieldValue[2];
-        fact.fieldValues[0] = new ActionFieldValue("name", "Mike");
-        fact.fieldValues[1] = new ActionFieldValue("age", "42");
-        
-        ActionRetractFact retract = new ActionRetractFact("car1");
-        
-        model.rhs = new IAction[3];
-        model.rhs[0] = set;
-        model.rhs[1] = fact;
-        model.rhs[2] = retract;
-        
-        return model;
-        
-    }
-
-
     public void onShow() {
     }
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/RulesFeature.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -121,7 +121,7 @@
         table.setWidget( 1, 0, newRule);
         formatter.setHeight( 1, 0, "5%" );
         formatter.setAlignment( 1, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_TOP);
-        formatter.setStyleName( 1, 0, "rule-explorer-NewPopups" );
+        formatter.setStyleName( 1, 0, "new-asset-Icons" );
         
 		return table;
 	}

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -0,0 +1,148 @@
+package org.drools.brms.client.packages;
+
+import org.drools.brms.client.common.FormStylePopup;
+import org.drools.brms.client.common.GenericCallback;
+import org.drools.brms.client.common.LoadingPopup;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Grid;
+import com.google.gwt.user.client.ui.HasHorizontalAlignment;
+import com.google.gwt.user.client.ui.HasVerticalAlignment;
+import com.google.gwt.user.client.ui.Image;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Tree;
+import com.google.gwt.user.client.ui.TreeItem;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+/**
+ * Contains the explorer to view (and lazy load) the packages in a repository.
+ * 
+ * @author Michael Neale
+ */
+public class PackageExplorerWidget extends Composite {
+
+    private Tree exTree;
+    private Grid layout;
+    
+    public PackageExplorerWidget() {
+        
+        exTree = new Tree();
+        layout = new Grid(2, 1);
+        
+        
+        refreshTreeView( );
+        
+        Image newPackage = new Image("images/new_package.gif");
+        newPackage.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                showNewPackage(w);                
+            }            
+        });
+        
+        
+        layout.setWidget( 1, 0, newPackage );  
+        
+        layout.getCellFormatter().setStyleName( 1, 0, "new-asset-Icons" );
+        layout.getCellFormatter().setAlignment( 1, 0, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_MIDDLE );
+        initWidget( layout );
+        
+    }
+
+
+    private void refreshTreeView() {
+        
+        layout.setWidget( 0, 0, new Label("Please wait...") );
+        
+        RepositoryServiceFactory.getService().listRulePackages( new GenericCallback() {
+
+            public void onSuccess(Object data) {
+                String[] packages = (String[]) data;
+                
+                exTree.clear();
+                for ( int i = 0; i < packages.length; i++ ) {
+                    addPackage( packages[i] );
+                }
+                
+                layout.setWidget( 0, 0, exTree );
+              
+            }
+            
+        });
+        
+
+    }
+
+    
+    /**
+     * Pops up a new package wizard, and creates a new package should
+     * sir decide to create said package. Nice package sir.
+     */
+    private void showNewPackage(Widget w) {
+        final FormStylePopup pop = new FormStylePopup("images/new_wiz.gif", "Create a new package");
+        final TextBox nameBox = new TextBox();
+        nameBox.setTitle( "The name of the package. Avoid spaces, use underscore instead." );
+        
+        pop.addAttribute( "Package name", nameBox );
+        final TextArea descBox = new TextArea();
+        pop.addAttribute( "Description", descBox );
+        
+        Button create = new Button("Create package");
+        create.addClickListener( new ClickListener() {
+            public void onClick(Widget w) {
+                createPackageAction(nameBox.getText(), descBox.getText());  
+                pop.hide();
+            }
+
+        
+        });
+        
+        
+        pop.addAttribute( "", create );
+        
+        pop.setStyleName( "ks-popups-Popup" );
+        
+        pop.setPopupPosition( w.getAbsoluteLeft(), w.getAbsoluteTop() - 100 );
+        pop.show();
+    }
+
+    private void createPackageAction(final String name, final String descr) {
+        LoadingPopup.showMessage( "Creating package - please wait..." );
+        RepositoryServiceFactory.getService().createPackage( name, descr, new GenericCallback() {
+            public void onSuccess(Object data) {
+                LoadingPopup.close();
+                refreshTreeView();
+            }
+        });
+    }        
+    
+
+
+
+    private void addPackage(String name) {
+        
+        TreeItem pkg = makeItem(name, "images/package.gif");
+        
+        
+        pkg.addItem( makeItem("Business rules", "images/rule_asset.gif") );
+        pkg.addItem( makeItem("Technical rules", "images/technical_rule_assets.gif") );
+        pkg.addItem( makeItem("Functions", "images/function_assets.gif") );
+        pkg.addItem( makeItem("Model", "images/model_asset.gif") );
+
+        
+        exTree.addItem( pkg );
+
+    }
+
+    private TreeItem makeItem(String name, String icon) {
+        TreeItem item = new TreeItem();
+        item.setHTML( "<img src=\""+ icon + "\">" + name + "</a>" );
+        return item;
+    }
+    
+}


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/PackageExplorerWidget.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/package.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/package.html	                        (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/package.html	2007-01-29 06:31:23 UTC (rev 9063)
@@ -0,0 +1,3 @@
+<body>
+	This holds GUI classes to do with package management.
+</body>
\ No newline at end of file


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/package.html
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -71,4 +71,10 @@
      */
     public void restoreVersion(String versionUUID, String assetUUID, String comment);
     
+    /**
+     * This creates a package of the given name.
+     * @return UUID of the created item.
+     */
+    public String createPackage(String name, String description) throws SerializableException;
+    
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -26,5 +26,5 @@
     public void loadAssetHistory(java.lang.String p0, AsyncCallback cb);
     public void checkinVersion(org.drools.brms.client.rpc.RuleAsset p0, AsyncCallback cb);
     public void restoreVersion(java.lang.String p0, java.lang.String p1, java.lang.String p2, AsyncCallback cb);
-    
+    public void createPackage(java.lang.String p0, java.lang.String p1, AsyncCallback cb);
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/mock/MockRepositoryServiceAsync.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -346,6 +346,15 @@
         cb.onSuccess( null );
         
     }
+
+
+
+    public void createPackage(String p0,
+                              String p1,
+                              AsyncCallback cb) {
+        cb.onSuccess( "UUIDHERE" );
+        
+    }
     
     
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/VersionBrowser.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/VersionBrowser.java	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ruleeditor/VersionBrowser.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -17,6 +17,7 @@
 import com.google.gwt.user.client.ui.HorizontalPanel;
 import com.google.gwt.user.client.ui.Image;
 import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.ScrollPanel;
 import com.google.gwt.user.client.ui.Widget;
 import com.google.gwt.user.client.ui.FlexTable.FlexCellFormatter;
 
@@ -115,6 +116,7 @@
                 
                 open.addClickListener( new ClickListener() {
                     public void onClick(Widget w) {
+                        if (tableWidget.getSelectedRow() == 0) return;
                         showVersion(tableWidget.getSelectedKey());                        
                     }
 
@@ -140,6 +142,7 @@
      */
     private void showVersion(String selectedUUID) {
         
+        
         VersionViewer viewer = new VersionViewer(this.metaData, selectedUUID, uuid, refreshCommand);
         viewer.setPopupPosition( 100, 100 );
         

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css	2007-01-29 06:31:23 UTC (rev 9063)
@@ -332,7 +332,7 @@
   padding: 4px;
 }
 
-.rule-explorer-NewPopups  {
+.new-asset-Icons  {
   border: 1px solid #B8B8B8;
   background-color: #FDFCDC;
 }

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html	2007-01-29 06:31:23 UTC (rev 9063)
@@ -7,7 +7,8 @@
 	    <link rel="icon" href="images/drools.gif" type="image/gif">		
 	</head>
 	<body> 
-		<img src="images/top_logo.png" />
+		<img src="images/jbrules_logo_small.jpg" />
+		<img src="images/form_banner.gif" />
 		<!-- This script is the bootstrap stuff that simply must be there; it is sent down uncompressed -->
 		<script language='javascript' src='gwt.js'></script>
 		<iframe id='__gwt_historyFrame' style='width:0;height:0;border:0'></iframe>

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/form_banner.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/form_banner.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/function_assets.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/function_assets.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/jbrules_logo_small.jpg
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/jbrules_logo_small.jpg
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/model_asset.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/model_asset.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/new_package.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/new_package.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/technical_rule_assets.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/images/technical_rule_assets.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -2,6 +2,7 @@
 
 import java.text.DateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Iterator;
@@ -106,8 +107,11 @@
             PackageItem pkg = (PackageItem) pkgs.next();
             result.add( pkg.getName() );
         }
-        return (String[]) result.toArray( new String[result.size()] );
+        String[] resultArr = (String[]) result.toArray( new String[result.size()] );
+        Arrays.sort( resultArr );
+        return resultArr;
     }
+
     
 
 
@@ -322,12 +326,34 @@
     public void restoreVersion(String versionUUID,
                                  String assetUUID,
                                  String comment) {
-        RulesRepository repo = getRulesRepository();        
-        repo.restoreHistoricalAsset( repo.loadAssetByUUID( versionUUID ), 
-                                     repo.loadAssetByUUID( assetUUID ), 
-                                     comment );
+        RulesRepository repo = getRulesRepository();    
+        try {
+            RuleAsset old = loadRuleAsset( versionUUID );
+            RuleAsset head = loadRuleAsset( assetUUID );
+            
+            old.uuid = assetUUID;
+            old.metaData.versionNumber = head.metaData.versionNumber;
+            old.metaData.checkinComment = comment;
+            
+            checkinVersion( old );
+            
+        } catch (SerializableException e) {
+            throw new RulesRepositoryException(e);
+        }
+
+//This uses JCR restore feature        
+//        repo.restoreHistoricalAsset( repo.loadAssetByUUID( versionUUID ), 
+//                                     repo.loadAssetByUUID( assetUUID ), 
+//                                     comment );
         
     }
+
+    public String createPackage(String name,
+                                String description) throws SerializableException {
+        PackageItem item = getRulesRepository().createPackage( name, description );
+        
+        return item.getUUID();
+    }
     
 
 

Modified: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-01-28 23:01:50 UTC (rev 9062)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java	2007-01-29 06:31:23 UTC (rev 9063)
@@ -15,6 +15,7 @@
 import org.drools.brms.server.util.TableDisplayHandler;
 import org.drools.repository.AssetItem;
 import org.drools.repository.CategoryItem;
+import org.drools.repository.PackageItem;
 
 import com.google.gwt.user.client.rpc.SerializableException;
 
@@ -275,5 +276,18 @@
   }
   
   
+  public void testCreatePackage() throws Exception {
+      MockJBRMSServiceServlet impl = new MockJBRMSServiceServlet();
+      String[] pkgs = impl.listRulePackages();
+      String uuid = impl.createPackage( "testCreatePackage", "this is a new package" );
+      assertNotNull( uuid );
+      
+      PackageItem item = impl.repo.loadPackage( "testCreatePackage" );
+      assertNotNull(item);
+      assertEquals("this is a new package", item.getDescription());
+      
+      assertEquals(pkgs.length + 1, impl.listRulePackages().length);
+  }
+  
     
 }




More information about the jboss-svn-commits mailing list