[jboss-svn-commits] JBL Code SVN: r18362 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client/admin and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Feb 7 01:14:52 EST 2008
Author: michael.neale at jboss.com
Date: 2008-02-07 01:14:51 -0500 (Thu, 07 Feb 2008)
New Revision: 18362
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/LogViewer.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/LogEntry.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/LoggingHelper.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/LoggingHelperTest.java
Removed:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/AdminFeature.java
Modified:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/ArchivedAssetManager.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerNodeConfig.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerViewCenterPanel.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/rulelist/AssetItemGrid.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/ClassicDRLImporter.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java
Log:
JBRULES-1445 added in archiving/deleting of packages, log viewing etc.
Deleted: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/AdminFeature.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/AdminFeature.java 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/AdminFeature.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -1,88 +0,0 @@
-package org.drools.brms.client;
-
-/*
- * 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.brms.client.admin.ArchivedAssetManager;
-import org.drools.brms.client.admin.BackupManager;
-import org.drools.brms.client.admin.CategoryManager;
-import org.drools.brms.client.admin.StateManager;
-
-import com.google.gwt.user.client.ui.VerticalPanel;
-import com.gwtext.client.widgets.TabPanel;
-import com.gwtext.client.widgets.TabPanelItem;
-
-//import com.google.gwt.user.client.ui.TabPanel;
-
-/**
- * This feature contains the administrative functions of the BRMS.
- */
-public class AdminFeature extends JBRMSFeature {
-
- // private TabPanel tab;
-
- public AdminFeature() {
- final TabPanel tp = new TabPanel( "tab-1" );
- tp.setWidth( "100%" );
- tp.setHeight( "100%" );
-
- TabPanelItem tpCategory = tp.addTab( "tpi1", "<img src='images/category_small.gif'/>Manage categories", false );
- TabPanelItem tpStateManager = tp.addTab( "tpi2", "<img src='images/status_small.gif'/>Manage states", false );
- TabPanelItem tpArchivedAssetManager = tp.addTab( "tpi3", "<img src='images/backup_small.gif'/>Manage Archived Assets", false );
- TabPanelItem tpBackupManager = tp.addTab( "tpi4", "<img src='images/backup_small.gif'/>Import Export", false );
-
- VerticalPanel vp1 = new VerticalPanel();
- VerticalPanel vp2 = new VerticalPanel();
- VerticalPanel vp3 = new VerticalPanel();
- VerticalPanel vp4 = new VerticalPanel();
-
- vp1.add( new CategoryManager() );
- vp1.setSpacing( 15 );
- vp2.add( new StateManager() );
- vp2.setSpacing( 15 );
- vp3.add( new ArchivedAssetManager() );
- vp3.setSpacing( 15 );
- vp4.add( new BackupManager() );
- vp4.setSpacing( 15 );
-
- tpCategory.setContent( vp1 );
- tpStateManager.setContent( vp2 );
- tpArchivedAssetManager.setContent( vp3 );
- tpBackupManager.setContent( vp4 );
-
- tp.activate( 0 );
-
- initWidget( tp );
-
-
-
- // initWidget( tab );
-
- }
-
- public static ComponentInfo init() {
- return new ComponentInfo( "Admin",
- "Administer the repository" ) {
- public JBRMSFeature createInstance() {
- return new AdminFeature();
- }
-
- };
- }
-
- public void onShow() {
- }
-}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/ArchivedAssetManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/ArchivedAssetManager.java 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/ArchivedAssetManager.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -1,26 +1,28 @@
package org.drools.brms.client.admin;
-import java.util.HashMap;
-
-import org.drools.brms.client.common.FormStyleLayout;
-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.common.PrettyFormLayout;
+import org.drools.brms.client.explorer.ExplorerViewCenterPanel;
+import org.drools.brms.client.rpc.PackageConfigData;
import org.drools.brms.client.rpc.RepositoryServiceFactory;
-import org.drools.brms.client.rpc.TableDataResult;
-import org.drools.brms.client.ruleeditor.EditorLauncher;
-import org.drools.brms.client.rulelist.AssetItemListViewer;
+import org.drools.brms.client.rulelist.AssetItemGrid;
+import org.drools.brms.client.rulelist.AssetItemGridDataLoader;
import org.drools.brms.client.rulelist.EditItemEvent;
-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.Composite;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.TabPanel;
-import com.google.gwt.user.client.ui.Widget;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.core.Ext;
+import com.gwtext.client.widgets.ButtonConfig;
+import com.gwtext.client.widgets.Toolbar;
+import com.gwtext.client.widgets.ToolbarButton;
+import com.gwtext.client.widgets.ToolbarSeparator;
+import com.gwtext.client.widgets.ToolbarTextItem;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
/**
* @author Fernando Meyer
@@ -28,103 +30,190 @@
public class ArchivedAssetManager extends Composite {
- AssetItemListViewer listView;
+
HorizontalPanel layout;
+ private AssetItemGrid grid;
+ private ListBox packages = new ListBox(true);
- public ArchivedAssetManager() {
+ public ArchivedAssetManager(final ExplorerViewCenterPanel tab) {
- FormStyleLayout widtab = new FormStyleLayout( "images/backup_large.png",
- "Manage Archived Assets" );
+ VerticalPanel layout = new VerticalPanel();
+ layout.setWidth("100%");
- layout = new HorizontalPanel();
- layout.setWidth( "100%" );
+ PrettyFormLayout pf = new PrettyFormLayout();
- widtab.addRow( layout );
+ VerticalPanel header = new VerticalPanel();
+ header.add(new HTML("<b>Archived items</b>"));
- listView = new AssetItemListViewer (new EditItemEvent () {
+ pf.addHeader("images/backup_large.png", header);
+
+ layout.add(pf);
+
+ EditItemEvent edit = new EditItemEvent () {
public void open(String key) {
- FormStylePopup pop = new FormStylePopup("images/snapshot.png", "Archived item");
- TabPanel tab = new TabPanel();
- pop.addRow(tab);
- EditorLauncher.showLoadEditor( new HashMap(), tab, key, true );
- pop.show();
+ tab.openAsset(key);
}
- }, AssetItemListViewer.ARCHIVED_RULE_LIST_TABLE_ID );
+ };
+ grid = new AssetItemGrid(edit, AssetItemGrid.ARCHIVED_RULE_LIST_TABLE_ID, new AssetItemGridDataLoader() {
+ public void loadData(int startRow, int numberOfRows,
+ GenericCallback cb) {
+ RepositoryServiceFactory.getService().loadArchivedAssets(startRow, numberOfRows, cb);
+ }
+ });
- listView.setRefreshCommand( showArchivedAssets() );
- layout.add( listView );
+ loadPackages();
+ Toolbar tb = new Toolbar(Ext.generateId());
+ tb.addItem(new ToolbarTextItem("Archived packages:"));
+ tb.addItem(new ToolbarSeparator());
+ tb.addButton(new ToolbarButton(new ButtonConfig() {
+ {
+ setButtonListener(new ButtonListenerAdapter() {
- showArchivedAssets().execute();
- widtab.addRow( new HTML( "<hr/>" ) );
- widtab.addRow( newButtonsActionWiget() );
- initWidget( widtab );
- }
+ public void onClick(
+ com.gwtext.client.widgets.Button button,
+ EventObject e) {
+ restorePackage(packages.getValue(packages.getSelectedIndex()));
- private Widget newButtonsActionWiget() {
+ }
- HorizontalPanel horiz = new HorizontalPanel();
+ });
+ setText("Restore selected package");
- Button refresh = new Button( "Refresh" );
- refresh.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- showArchivedAssets().execute();
- }
- } );
+ }
+ }));
+ tb.addButton(new ToolbarButton(new ButtonConfig() {
+ {
+ setButtonListener(new ButtonListenerAdapter() {
- Button unarchive = new Button( "Unarchive" );
- unarchive.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
+ public void onClick(
+ com.gwtext.client.widgets.Button button,
+ EventObject e) {
+ if (Window.confirm("Are you sure you want to permanently delete this package? This can not be undone.")) {
+ deletePackage(packages.getValue(packages.getSelectedIndex()));
+ }
- RepositoryServiceFactory.getService().archiveAsset( listView.getSelectedElementUUID(), false, new GenericCallback() {
+ }
- public void onSuccess(Object arg0) {
- showArchivedAssets().execute();
- Window.alert( "Done!" );
- }
- });
- }
- } );
- Button deleteperm = new Button( "Delete" );
- deleteperm.addClickListener( new ClickListener() {
- public void onClick(Widget w) {
- RepositoryServiceFactory.getService().removeAsset( listView.getSelectedElementUUID(), new GenericCallback() {
+ });
+ setText("Permanently delete package");
- public void onSuccess(Object arg0) {
- showArchivedAssets().execute();
- Window.alert( "Done!" );
+ }
+ }));
- }
- });
- }
- } );
- horiz.add( refresh );
- horiz.add( unarchive );
- horiz.add( deleteperm );
- return horiz;
+
+ layout.add(tb);
+ layout.add(packages);
+
+ tb = new Toolbar(Ext.generateId());
+ tb.addItem(new ToolbarTextItem("Archived assets:"));
+ tb.addItem(new ToolbarSeparator());
+ tb.addButton(new ToolbarButton(new ButtonConfig() {
+ {
+ setText("Restore selected asset");
+ setButtonListener(new ButtonListenerAdapter() {
+ public void onClick(
+ com.gwtext.client.widgets.Button button,
+ EventObject e) {
+ if (grid.getSelectedRowUUID() == null) {
+ Window.alert("Please select an item to restore.");
+ return;
+ }
+ RepositoryServiceFactory.getService().archiveAsset( grid.getSelectedRowUUID(), false, new GenericCallback() {
+ public void onSuccess(Object arg0) {
+ Window.alert( "Item restored." );
+ grid.refreshGrid();
+ }
+ });
+ }
+ });
+ }
+ }));
+
+ tb.addButton(new ToolbarButton(new ButtonConfig() {
+ {
+ setText("Delete selected asset");
+ setButtonListener(new ButtonListenerAdapter() {
+ public void onClick(
+ com.gwtext.client.widgets.Button button,
+ EventObject e) {
+ if (grid.getSelectedRowUUID() == null) {
+ Window.alert("Please select an item to permanently delete.");
+ return;
+ }
+ if (!Window.confirm("Are you sure you want to permanently delete this asset ? This can not be undone.")) {
+ return;
+ }
+ RepositoryServiceFactory.getService().removeAsset( grid.getSelectedRowUUID(), new GenericCallback() {
+
+ public void onSuccess(Object arg0) {
+ Window.alert( "Item deleted." );
+ grid.refreshGrid();
+ }
+ });
+ }
+ });
+ }
+ }));
+ layout.add(tb);
+
+ layout.add(grid);
+
+
+
+ initWidget( layout );
}
- private Command showArchivedAssets() {
- final GenericCallback cb = new GenericCallback() {
- public void onSuccess(Object data) {
- final TableDataResult table = (TableDataResult) data;
- listView.loadTableData( table );
- listView.setWidth( "100%" );
- LoadingPopup.close();
- }
- };
+ private void deletePackage(final String uuid) {
+ RepositoryServiceFactory.getService().removePackage(uuid, new GenericCallback( ) {
+ public void onSuccess(Object data) {
+ Window.alert("Package deleted");
+ packages.clear();
+ loadPackages();
+ }
+ });
+ }
- return new Command() {
- public void execute() {
- LoadingPopup.showMessage( "Loading list, please wait..." );
- RepositoryServiceFactory.getService().loadArchivedAssets( cb );
- }
- };
- }
+
+ private void restorePackage(String uuid) {
+ RepositoryServiceFactory.getService().loadPackageConfig(uuid, new GenericCallback() {
+ public void onSuccess(Object data) {
+ PackageConfigData cf = (PackageConfigData) data;
+ cf.archived = false;
+ RepositoryServiceFactory.getService().savePackage(cf, new GenericCallback() {
+ public void onSuccess(Object data) {
+ Window.alert("Package restored.");
+ packages.clear();
+ loadPackages();
+ }
+ });
+ }
+ });
+ }
+
+
+
+ private ListBox loadPackages() {
+
+ RepositoryServiceFactory.getService().listArchivedPackages(new GenericCallback() {
+ public void onSuccess(Object data) {
+ PackageConfigData[] configs = (PackageConfigData[]) data;
+ for (int i = 0; i < configs.length; i++) {
+ packages.addItem(configs[i].name, configs[i].uuid);
+ }
+ }
+ });
+
+
+ return packages;
+ }
+
+
+
}
\ No newline at end of file
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/LogViewer.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/LogViewer.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/LogViewer.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -0,0 +1,153 @@
+package org.drools.brms.client.admin;
+
+import org.drools.brms.client.common.GenericCallback;
+import org.drools.brms.client.common.LoadingPopup;
+import org.drools.brms.client.common.PrettyFormLayout;
+import org.drools.brms.client.rpc.LogEntry;
+import org.drools.brms.client.rpc.RepositoryServiceFactory;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.gwtext.client.core.EventObject;
+import com.gwtext.client.core.Ext;
+import com.gwtext.client.core.SortDir;
+import com.gwtext.client.data.ArrayReader;
+import com.gwtext.client.data.DateFieldDef;
+import com.gwtext.client.data.FieldDef;
+import com.gwtext.client.data.IntegerFieldDef;
+import com.gwtext.client.data.MemoryProxy;
+import com.gwtext.client.data.Record;
+import com.gwtext.client.data.RecordDef;
+import com.gwtext.client.data.Store;
+import com.gwtext.client.data.StringFieldDef;
+import com.gwtext.client.widgets.Button;
+import com.gwtext.client.widgets.ButtonConfig;
+import com.gwtext.client.widgets.Toolbar;
+import com.gwtext.client.widgets.ToolbarButton;
+import com.gwtext.client.widgets.ToolbarSeparator;
+import com.gwtext.client.widgets.ToolbarTextItem;
+import com.gwtext.client.widgets.event.ButtonListenerAdapter;
+import com.gwtext.client.widgets.grid.CellMetadata;
+import com.gwtext.client.widgets.grid.ColumnConfig;
+import com.gwtext.client.widgets.grid.ColumnModel;
+import com.gwtext.client.widgets.grid.Grid;
+import com.gwtext.client.widgets.grid.Renderer;
+
+public class LogViewer extends Composite {
+
+ private VerticalPanel layout;
+
+ public LogViewer() {
+ layout = new VerticalPanel();
+ layout.setHeight("100%");
+ layout.setWidth("100%");
+
+
+ refresh();
+ initWidget(layout);
+ }
+
+ private void refresh() {
+ LoadingPopup.showMessage("Loading log messages...");
+ RepositoryServiceFactory.getService().showLog(new GenericCallback() {
+ public void onSuccess(Object data) {
+ LogEntry[] logs = (LogEntry[]) data;
+ showLogs(logs);
+ LoadingPopup.close();
+ }
+ });
+ }
+
+ private void showLogs(LogEntry[] logs) {
+ Object[][] data = new Object[logs.length][3];
+ for (int i = 0; i < logs.length; i++) {
+ LogEntry e = logs[i];
+ if (e != null) {
+ data[i][0] = new Integer(e.severity);
+ data[i][1] = e.timestamp;
+ data[i][2] = e.message;
+ } else {
+ data[i][0] = new Integer(2);
+ data[i][1] = "";
+ data[i][2] = "";
+ }
+ }
+
+ MemoryProxy proxy = new MemoryProxy(data);
+ RecordDef recordDef = new RecordDef(
+ new FieldDef[]{
+ new IntegerFieldDef("severity"),
+ new DateFieldDef("timestamp"),
+ new StringFieldDef("message"),
+ }
+ );
+
+ ArrayReader reader = new ArrayReader(recordDef);
+ Store store = new Store(proxy, reader);
+ store.setDefaultSort("timestamp", SortDir.DESC);
+ store.load();
+
+ ColumnModel cm = new ColumnModel(new ColumnConfig[] {
+ new ColumnConfig() {
+ {
+ setDataIndex("severity");
+ setSortable(true);
+ setRenderer(new Renderer() {
+ public String render(Object value,
+ CellMetadata cellMetadata, Record record,
+ int rowIndex, int colNum, Store store) {
+ Integer i = (Integer) value;
+ if (i.intValue() == 0) {
+ return "<img src='images/error.gif'/>";
+ } else if (i.intValue() == 1) {
+ return "<img src='images/information.gif'/>";
+ } else {
+ return "";
+ }
+ }
+ });
+ setWidth(25);
+ }
+ },
+ new ColumnConfig() {
+ {
+ setHeader("Timestamp");
+ setSortable(true);
+ setDataIndex("timestamp");
+ setWidth(180);
+ }
+ },
+ new ColumnConfig() {
+ {
+ setHeader("Message");
+ setSortable(true);
+ setDataIndex("message");
+ setWidth(580);
+ }
+ }
+ });
+
+ Grid g = new Grid(Ext.generateId(), "800px", "600px", store, cm);
+ g.render();
+
+ Toolbar tb = new Toolbar(g.getView().getHeaderPanel(true));
+ tb.addItem(new ToolbarTextItem("Showing recent INFO and ERROR messages from the log:"));
+ tb.addItem(new ToolbarSeparator());
+ tb.addButton(new ToolbarButton(new ButtonConfig() {
+ {
+ setText("Reload");
+ setButtonListener(new ButtonListenerAdapter() {
+ public void onClick(Button button, EventObject e) {
+ refresh();
+ }
+ });
+ }
+ }));
+
+ layout.add(g);
+
+
+
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/LogViewer.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerLayoutManager.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -7,6 +7,7 @@
import org.drools.brms.client.admin.ArchivedAssetManager;
import org.drools.brms.client.admin.BackupManager;
import org.drools.brms.client.admin.CategoryManager;
+import org.drools.brms.client.admin.LogViewer;
import org.drools.brms.client.admin.StateManager;
import org.drools.brms.client.common.AssetFormats;
import org.drools.brms.client.common.GenericCallback;
@@ -61,6 +62,8 @@
private VerticalPanel packagesPanel;
+ protected String currentPackage;
+
public BorderLayout getBaseLayout() {
return layout;
}
@@ -189,6 +192,7 @@
Toolbar deployToolbar = new Toolbar(Ext.generateId());
deployToolbar.addButton(new ToolbarMenuButton("Deploy...", deploymentMenu()));
deploymentPanel.add(deployToolbar);
+ deploymentPanel.setWidth("100%");
/** ****************** */
ContentPanel cp = new ContentPanel("eg-explorer", "BRMS Explorer");
@@ -202,20 +206,26 @@
int id = Integer.parseInt(self.getAttribute("id"));
switch (id) {
case 0:
- centertabbedPanel.addTab("Category Manager", true, new CategoryManager(), "catman");
+ if (!centertabbedPanel.showIfOpen("catman"))
+ centertabbedPanel.addTab("Category Manager", true, new CategoryManager(), "catman");
break;
case 1:
- centertabbedPanel.addTab("Archived Manager", true, new ArchivedAssetManager(), "archman");
+ if (!centertabbedPanel.showIfOpen("archman"))
+ centertabbedPanel.addTab("Archived Manager", true, new ArchivedAssetManager(centertabbedPanel), "archman");
break;
case 2:
- centertabbedPanel.addTab("State Manager", true, new StateManager(), "stateman");
+ if (!centertabbedPanel.showIfOpen("stateman"))
+ centertabbedPanel.addTab("State Manager", true, new StateManager(), "stateman");
break;
case 3:
- centertabbedPanel.addTab("Backup Manager", true, new BackupManager(), "bakman");
+ if (!centertabbedPanel.showIfOpen("bakman"))
+ centertabbedPanel.addTab("Backup Manager", true, new BackupManager(), "bakman");
break;
case 4:
+ if (!centertabbedPanel.showIfOpen("errorLog"))
+ centertabbedPanel.addTab("Backup Manager", true, new LogViewer(), "errorLog");
break;
}
@@ -381,7 +391,7 @@
setIcon("images/rule_asset.gif");
setBaseItemListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
- launchWizard(null, "New Rule", true);
+ launchWizard(null, "New Rule", true, currentPackage);
}
});
}
@@ -391,7 +401,7 @@
setIcon("images/model_asset.gif");
setBaseItemListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
- launchWizard(AssetFormats.MODEL, "New model archive (jar)", false);
+ launchWizard(AssetFormats.MODEL, "New model archive (jar)", false, currentPackage);
}
});
}
@@ -401,7 +411,7 @@
setIcon("images/function_assets.gif");
setBaseItemListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
- launchWizard(AssetFormats.FUNCTION, "Create a new function", false);
+ launchWizard(AssetFormats.FUNCTION, "Create a new function", false, currentPackage);
}
});
}
@@ -411,7 +421,7 @@
setIcon("images/dsl.gif");
setBaseItemListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
- launchWizard(AssetFormats.DSL, "Create a new DSL configuration", false);
+ launchWizard(AssetFormats.DSL, "Create a new DSL configuration", false, currentPackage);
}
});
}
@@ -422,7 +432,7 @@
setIcon("images/ruleflow_small.gif");
setBaseItemListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
- launchWizard(AssetFormats.RULE_FLOW_RF, "Create a new RuleFlow", false);
+ launchWizard(AssetFormats.RULE_FLOW_RF, "Create a new RuleFlow", false, currentPackage);
}
});
}
@@ -434,7 +444,7 @@
setBaseItemListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
launchWizard(AssetFormats.ENUMERATION,
- "Create a new enumeration (drop down mapping).", false);
+ "Create a new enumeration (drop down mapping).", false, currentPackage);
}
});
}
@@ -446,7 +456,7 @@
setBaseItemListener(new BaseItemListenerAdapter() {
public void onClick(BaseItem item, EventObject e) {
launchWizard(AssetFormats.TEST_SCENARIO,
- "Create a test scenario.", false);
+ "Create a test scenario.", false, currentPackage);
}
});
}
@@ -458,7 +468,7 @@
}
private void launchWizard(String format,
- String title, boolean showCats) {
+ String title, boolean showCats, String currentlySelectedPackage) {
NewAssetWizard pop = new NewAssetWizard( new EditItemEvent() {
public void open(String key) {
@@ -468,12 +478,19 @@
showCats,
format,
title,
- null );
+ currentlySelectedPackage );
pop.show();
}
+ private void launchWizard(String format,
+ String title, boolean showCats) {
+ launchWizard(format, title, showCats, null);
+ }
+
+
+
private TreePanel basicTreeStructure(TreeNode basenode, TreePanelListenerAdapter listener) {
TreePanel adminTreePanel = genericExplorerWidget(basenode);
@@ -623,7 +640,9 @@
TreePanelListener treePanelListener = new TreePanelListenerAdapter() {
public void onClick(TreeNode node, EventObject e) {
if (node.getUserObject() instanceof PackageConfigData) {
- String uuid = ((PackageConfigData) node.getUserObject()).uuid;
+ PackageConfigData pc = (PackageConfigData) node.getUserObject();
+ currentPackage = pc.name;
+ String uuid = pc.uuid;
centertabbedPanel.openPackageEditor(uuid, new Command() {
public void execute() {
//refresh the package tree.
@@ -634,6 +653,7 @@
Object[] uo = (Object[]) node.getUserObject();
final String[] fmts = (String[]) uo[0];
final PackageConfigData pc = (PackageConfigData) node.getParentNode().getUserObject();
+ currentPackage = pc.name;
String key = key(fmts, pc);
if (!centertabbedPanel.showIfOpen(key)) {
AssetItemGrid list = new AssetItemGrid(new EditItemEvent() {
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerNodeConfig.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerNodeConfig.java 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerNodeConfig.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -78,11 +78,10 @@
String[][] adminStructure = new String[][] {
{ "Categories", "images/category_small.gif" }, // ID 0
- { "Archived Assets", "images/backup_small.gif" }, // ID 1
- { "State", "images/tag.png" }, // ID 2
- { "Import/Export", "images/save_edit.gif" }, // ID 3
- { "Users", "images/icoUsers.gif" }, // ID 4
- { "Security", "images/login.gif" } }; // ID 5
+ { "Archived Items", "images/backup_small.gif" }, // ID 1
+ { "Statuses", "images/tag.png" }, // ID 2
+ { "Import/Export", "images/save_edit.gif" }, //ID 3
+ { "Error log", "images/error.gif" }}; // ID 4
for (int i = 0; i < adminStructure.length; i++) {
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerViewCenterPanel.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerViewCenterPanel.java 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/explorer/ExplorerViewCenterPanel.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -127,6 +127,7 @@
}
+
/**
* Open a package editor if it is not already open.
*/
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/LogEntry.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/LogEntry.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/LogEntry.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -0,0 +1,17 @@
+package org.drools.brms.client.rpc;
+
+import java.util.Date;
+
+import com.google.gwt.user.client.rpc.IsSerializable;
+
+/**
+ * For showing a log in the GUI (last X messages).
+ * @author Michael Neale
+ */
+public class LogEntry implements IsSerializable {
+
+ public int severity;
+ public String message;
+ public Date timestamp;
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/LogEntry.java
___________________________________________________________________
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 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -88,6 +88,12 @@
public PackageConfigData[] listPackages();
/**
+ * This returns a list of archived packages.
+ */
+ public PackageConfigData[] listArchivedPackages();
+
+
+ /**
* This loads up all the stuff for a
* rule asset based on the UUID (always latest and editable version).
*/
@@ -106,7 +112,7 @@
* for display in a table.
*/
- public TableDataResult loadArchivedAssets() throws SerializableException;
+ public TableDataResult loadArchivedAssets(int skip, int numRows) throws SerializableException;
/**
@@ -307,6 +313,12 @@
public void removeAsset(String uuid);
/**
+ * Permanently remove a package (delete it).
+ * @param uuid of the package.
+ */
+ public void removePackage(String uuid);
+
+ /**
* Rename a package.
*/
public String renamePackage(String uuid, String newName);
@@ -352,4 +364,9 @@
* (eg in jars that have been uploaded to it as an asset).
*/
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.
+ */
+ public LogEntry[] showLog();
}
\ No newline at end of file
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 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -43,9 +43,10 @@
public void exportRepository(AsyncCallback cb);
public void clearRulesRepository(AsyncCallback cb);
public void listPackages(AsyncCallback cb);
+ public void listArchivedPackages(AsyncCallback cb);
public void loadRuleAsset(java.lang.String p0, AsyncCallback cb);
public void loadAssetHistory(java.lang.String p0, AsyncCallback cb);
- public void loadArchivedAssets(AsyncCallback cb);
+ public void loadArchivedAssets(int p0, int p1, 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);
@@ -71,6 +72,7 @@
public void renameAsset(java.lang.String p0, java.lang.String p1, AsyncCallback cb);
public void archiveAsset(java.lang.String p0, boolean p1, AsyncCallback cb);
public void removeAsset(java.lang.String p0, AsyncCallback cb);
+ public void removePackage(java.lang.String p0, AsyncCallback cb);
public void renamePackage(java.lang.String p0, java.lang.String p1, AsyncCallback cb);
public void rebuildSnapshots(AsyncCallback cb);
public void listRulesInPackage(java.lang.String p0, AsyncCallback cb);
@@ -78,5 +80,9 @@
public void runScenariosInPackage(java.lang.String p0, AsyncCallback cb);
public void analysePackage(java.lang.String p0, AsyncCallback cb);
public void listTypesInPackage(java.lang.String p0, AsyncCallback cb);
+ public void showLog(AsyncCallback cb);
+
+
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/AssetItemGrid.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/AssetItemGrid.java 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulelist/AssetItemGrid.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -27,6 +27,7 @@
import org.drools.brms.client.rpc.TableDataRow;
import org.drools.brms.client.ruleeditor.EditorLauncher;
+import com.google.gwt.user.client.Command;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.user.client.ui.SimplePanel;
import com.gwtext.client.core.EventObject;
@@ -67,9 +68,11 @@
private final EditItemEvent editEvent;
private SimplePanel layout;
+ private Command refresh;
private int currentPosition = 0;
protected Store store;
+ private Grid currentGrid;
public AssetItemGrid(final EditItemEvent event, final String tableConfig, final AssetItemGridDataLoader source) {
@@ -105,7 +108,9 @@
final int numFlds = rd.getFields().length;
LoadingPopup.showMessage("Loading data...");
source.loadData(currentPosition, pageSize, new GenericCallback() {
- public void onSuccess(Object data) {
+
+
+ public void onSuccess(Object data) {
TableDataResult result = (TableDataResult) data;
Object[][] gridData = new Object[result.data.length][];
for (int i = 0; i < result.data.length; i++) {
@@ -121,29 +126,34 @@
MemoryProxy proxy = new MemoryProxy(gridData);
ArrayReader reader = new ArrayReader(rd);
store = new Store(proxy, reader);
- final Grid g = new Grid(Ext.generateId(), "600px", "600px", store, cm);
- g.render();
- g.setLoadMask("Loading data...");
+ currentGrid = new Grid(Ext.generateId(), "600px", "600px", store, cm);
+ currentGrid.render();
+ currentGrid.setLoadMask("Loading data...");
- Toolbar tb = new Toolbar(g.getView().getHeaderPanel(true));
+ Toolbar tb = new Toolbar(currentGrid.getView().getHeaderPanel(true));
tb.addItem(new ToolbarTextItem(Format.format(
"Showing item #{0} to {1} of {2} items.",
new String[] {""+(currentPosition + 1), "" + (currentPosition + result.data.length), "" + result.total})));
if (currentPosition > 0) {
- navButton(source, cm, rd, pageSize, g, false, tb);
+ navButton(source, cm, rd, pageSize, currentGrid, false, tb);
}
if (result.hasNext) {
- navButton(source, cm, rd, pageSize, g, true, tb);
+ navButton(source, cm, rd, pageSize, currentGrid, true, tb);
}
+ refresh = new Command() {
+ public void execute() {
+ layout.clear();
+ currentGrid.destroy();
+ doGrid(source, cm, rd, pageSize); }
+ };
+
tb.addButton(new ToolbarButton(new ButtonConfig() {
{
setText("Refresh");
setButtonListener(new ButtonListenerAdapter() {
public void onClick(Button button, EventObject e) {
- layout.clear();
- g.destroy();
- doGrid(source, cm, rd, pageSize);
+ refresh.execute();
}
});
}
@@ -151,7 +161,7 @@
- g.addGridRowListener(new GridRowListenerAdapter() {
+ currentGrid.addGridRowListener(new GridRowListenerAdapter() {
public void onRowDblClick(Grid grid, int rowIndex, EventObject e) {
String uuid = grid.getSelectionModel().getSelected().getAsString("uuid");
System.err.println("Opening: " + uuid);
@@ -159,7 +169,7 @@
}
});
store.load();
- layout.add(g);
+ layout.add(currentGrid);
LoadingPopup.close();
}
@@ -167,6 +177,16 @@
});
}
+ public String getSelectedRowUUID() {
+ Record r = currentGrid.getSelectionModel().getSelected();
+ if (r != null) {
+ return r.getAsString("uuid");
+ } else {
+ return null;
+ }
+
+ }
+
private void navButton(final AssetItemGridDataLoader source,
final ColumnModel cm, final RecordDef rd,
final int pageSize, final Grid g, final boolean forward, Toolbar tb) {
@@ -246,6 +266,10 @@
return new ColumnModel(cfgs);
}
+ public void refreshGrid() {
+ this.refresh.execute();
+ }
+
}
\ No newline at end of file
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -53,6 +53,7 @@
import org.drools.brms.client.rpc.BuilderResult;
import org.drools.brms.client.rpc.BulkTestRunResult;
import org.drools.brms.client.rpc.DetailedSerializableException;
+import org.drools.brms.client.rpc.LogEntry;
import org.drools.brms.client.rpc.MetaData;
import org.drools.brms.client.rpc.PackageConfigData;
import org.drools.brms.client.rpc.RepositoryService;
@@ -73,6 +74,7 @@
import org.drools.brms.server.contenthandler.ModelContentHandler;
import org.drools.brms.server.util.AnalysisRunner;
import org.drools.brms.server.util.BRMSSuggestionCompletionLoader;
+import org.drools.brms.server.util.LoggingHelper;
import org.drools.brms.server.util.MetaDataMapper;
import org.drools.brms.server.util.TableDisplayHandler;
import org.drools.common.AbstractRuleBase;
@@ -89,6 +91,7 @@
import org.drools.repository.CategoryItem;
import org.drools.repository.AssetPageList;
import org.drools.repository.PackageItem;
+import org.drools.repository.PackageIterator;
import org.drools.repository.RulesRepository;
import org.drools.repository.RulesRepositoryAdministrator;
import org.drools.repository.RulesRepositoryException;
@@ -122,7 +125,7 @@
private static final long serialVersionUID = 400L;
private static final DateFormat dateFormatter = DateFormat.getInstance();
- private static final Logger log = Logger.getLogger( ServiceImplementation.class );
+ private static final Logger log = LoggingHelper.getLogger();
private MetaDataMapper metaDataMapper = new MetaDataMapper();
/** Used for a simple cache of binary packages to avoid serialization from the database */
@@ -142,7 +145,9 @@
}
- @WebRemote
+
+
+ @WebRemote
@Restrict("#{identity.loggedIn}")
public Boolean createCategory(String path,
String name,
@@ -245,16 +250,32 @@
@WebRemote
@Restrict("#{identity.loggedIn}")
public PackageConfigData[] listPackages() {
- Iterator pkgs = repository.listPackages();
- List<PackageConfigData> result = new ArrayList<PackageConfigData>();
+ return listPackages(false);
+ }
+
+ @WebRemote
+ @Restrict("#{identity.loggedIn}")
+ public PackageConfigData[] listArchivedPackages() {
+ return listPackages(true);
+ }
+
+
+ private PackageConfigData[] listPackages(boolean archive) {
+ List<PackageConfigData> result = new ArrayList<PackageConfigData>();
+ PackageIterator pkgs = repository.listPackages();
+ pkgs.setArchivedIterator(archive);
while(pkgs.hasNext()) {
PackageItem pkg = (PackageItem) pkgs.next();
PackageConfigData data = new PackageConfigData();
data.uuid = pkg.getUUID();
data.name = pkg.getName();
-
- result.add( data );
+ data.archived = pkg.isArchived();
+ if (!archive) {
+ result.add(data);
+ } else if (archive && data.archived) {
+ result.add(data);
+ }
}
Collections.sort( result, new Comparator<Object>() {
@@ -268,11 +289,10 @@
});
PackageConfigData[] resultArr = result.toArray( new PackageConfigData[result.size()] );
+ return resultArr;
+ }
- return resultArr;
- }
-
@WebRemote
@Restrict("#{identity.loggedIn}")
public TableDataResult loadRuleListForCategories(String categoryPath, int skip, int numRows) throws SerializableException {
@@ -484,13 +504,14 @@
@WebRemote
@Restrict("#{identity.loggedIn}")
- public TableDataResult loadArchivedAssets() throws SerializableException {
-
+ public TableDataResult loadArchivedAssets(int skip, int numRows) throws SerializableException {
List<TableDataRow> result = new ArrayList<TableDataRow>();
AssetItemIterator it = repository.findArchivedAssets();
+ it.skip(skip);
+ int count = 0;
+ while ( it.hasNext() ) {
- while ( it.hasNext() ) {
AssetItem archived = (AssetItem) it.next();
TableDataRow row = new TableDataRow();
@@ -504,12 +525,14 @@
row.values[4] = archived.getLastModified().getTime().toLocaleString();
result.add( row );
+ count++;
+ if (count == numRows) {
+ break;
+ }
}
- if (result.size() == 0) {
- return null;
- }
+
TableDataResult table = new TableDataResult();
table.data = result.toArray(new TableDataRow[result.size()]);
@@ -1016,8 +1039,22 @@
}
}
+
@WebRemote
@Restrict("#{identity.loggedIn}")
+ public void removePackage(String uuid) {
+ try {
+ PackageItem item = repository.loadPackageByUUID(uuid);
+ item.remove();
+ repository.save();
+ } catch (RulesRepositoryException e) {
+ log.error( e );
+ throw e;
+ }
+ }
+
+ @WebRemote
+ @Restrict("#{identity.loggedIn}")
public String renamePackage(String uuid, String newName) {
return repository.renamePackage( uuid, newName );
}
@@ -1288,7 +1325,12 @@
}
+ @WebRemote
+ @Restrict("#{identity.loggedIn}")
+ public LogEntry[] showLog() {
+ return LoggingHelper.getMessages();
+ }
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/ClassicDRLImporter.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/ClassicDRLImporter.java 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/ClassicDRLImporter.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -30,7 +30,6 @@
import org.drools.brms.client.common.AssetFormats;
import org.drools.compiler.DrlParser;
import org.drools.compiler.DroolsParserException;
-import org.drools.lang.descr.FunctionDescr;
import org.drools.lang.descr.RuleDescr;
/**
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/LoggingHelper.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/LoggingHelper.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/LoggingHelper.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -0,0 +1,116 @@
+package org.drools.brms.server.util;
+
+import java.util.Date;
+
+import org.apache.log4j.Appender;
+import org.apache.log4j.Layout;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.log4j.spi.ErrorHandler;
+import org.apache.log4j.spi.Filter;
+import org.apache.log4j.spi.LoggingEvent;
+import org.drools.brms.client.rpc.LogEntry;
+import org.drools.brms.server.ServiceImplementation;
+
+/**
+ * Collects messages for displaying in the GUI as well as providing a logger.
+ * @author Michael Neale.
+ *
+ */
+public class LoggingHelper {
+
+ static MessageList messages = new MessageList();
+
+ public static LogEntry[] getMessages() {
+ return messages.getMessages();
+ }
+
+
+ public static Logger getLogger() {
+
+ Logger l = Logger.getLogger( ServiceImplementation.class );
+
+ l.addAppender(new Appender() {
+
+ public void addFilter(Filter arg0) {
+ }
+
+ public void clearFilters() {
+ }
+
+ public void close() {
+ }
+
+ public void doAppend(LoggingEvent e) {
+ LogEntry ev = new LogEntry();
+ ev.message = e.getRenderedMessage();
+ ev.timestamp = new Date();
+ if (e.getLevel().equals(Level.ERROR)) {
+ ev.severity = 0;
+ messages.add(ev);
+ } else if (e.getLevel().equals(Level.INFO)) {
+ ev.severity = 1;
+ messages.add(ev);
+ }
+ }
+
+ public ErrorHandler getErrorHandler() {
+ return null;
+ }
+
+ public Filter getFilter() {
+ return null;
+ }
+
+ public Layout getLayout() {
+ return null;
+ }
+
+ public String getName() {
+ return "guilogger";
+ }
+
+ public boolean requiresLayout() {
+ return false;
+ }
+
+ public void setErrorHandler(ErrorHandler arg0) {
+ }
+
+ public void setLayout(Layout arg0) {
+ }
+
+ public void setName(String arg0) {
+ }
+
+ });
+ return l;
+
+ }
+
+}
+
+class MessageList {
+ static int MAX = 250;
+ LogEntry[] messages = new LogEntry[MAX];
+ int current = 0;
+ public MessageList() {
+
+ }
+
+ public synchronized void add(LogEntry e) {
+ if (current == MAX) {
+ current = 0;
+ }
+ messages[current++] = e;
+
+ }
+
+ public LogEntry[] getMessages() {
+ return messages;
+ }
+
+
+
+}
+
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/util/LoggingHelper.java
___________________________________________________________________
Name: svn:eol-style
+ native
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 2008-02-07 06:09:27 UTC (rev 18361)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/ServiceImplementationTest.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -51,6 +51,8 @@
// ServiceImpl impl = new ServiceImpl(new
// RulesRepository(SessionHelper.getSession()));
+
+
RepositoryService impl = getService();
String[] originalCats = impl.loadChildCategories("/");
@@ -387,12 +389,33 @@
PackageConfigData[] pkgs = impl.listPackages();
+ PackageConfigData[] arch = impl.listArchivedPackages();
+
String uuid = impl.createPackage("testCreateArchivedPackage",
"this is a new package");
+
+
PackageItem item = impl.repository
.loadPackage("testCreateArchivedPackage");
+ TableDataResult td = impl.loadArchivedAssets(0, 1000);
+
item.archiveItem(true);
+
+
+
+ TableDataResult td2 = impl.loadArchivedAssets(0, 1000);
+ assertEquals(td2.data.length, td.data.length);
+
+ PackageConfigData[] arch2 = impl.listArchivedPackages();
+ assertEquals(arch2.length, arch.length + 1);
+
+
+
assertEquals(pkgs.length, impl.listPackages().length);
+
+ item.archiveItem(false);
+ arch2 = impl.listArchivedPackages();
+ assertEquals(arch2.length, arch.length);
}
public void testCreatePackage() throws Exception {
@@ -790,6 +813,17 @@
assertEquals(3, res.data.length);
}
+ public void testRemovePackage() throws Exception {
+ ServiceImplementation impl = getService();
+ int n = impl.listPackages().length;
+ PackageItem p = impl.repository.createPackage("testRemovePackage", "");
+ assertNotNull(impl.loadPackageConfig(p.getUUID()));
+
+ impl.removePackage(p.getUUID());
+ assertEquals(n, impl.listPackages().length);
+ }
+
+
public void testArchiveAsset() throws Exception {
RepositoryService impl = getService();
String cat = "testArchiveAsset";
@@ -813,8 +847,13 @@
assertEquals(4, res.total);
assertFalse(res.hasNext);
+ TableDataResult td = impl.loadArchivedAssets(0, 1000);
+
impl.archiveAsset(uuid4, true);
+ TableDataResult td2 = impl.loadArchivedAssets(0, 1000);
+ assertTrue(td2.data.length == td.data.length + 1);
+
res = impl.listAssets(pkgUUID, arr("testArchiveAsset"), 0, -1);
assertEquals(3, res.data.length);
@@ -823,6 +862,9 @@
res = impl.listAssets(pkgUUID, arr("testArchiveAsset"), 0, -1);
assertEquals(4, res.data.length);
+
+
+
}
public void testLoadSuggestionCompletionEngine() throws Exception {
@@ -1719,8 +1761,6 @@
}
-
-
private ServiceImplementation getService() throws Exception {
ServiceImplementation impl = new ServiceImplementation();
Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/LoggingHelperTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/LoggingHelperTest.java (rev 0)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/LoggingHelperTest.java 2008-02-07 06:14:51 UTC (rev 18362)
@@ -0,0 +1,74 @@
+package org.drools.brms.server.util;
+
+import org.apache.log4j.Logger;
+import org.drools.brms.client.rpc.LogEntry;
+
+import junit.framework.TestCase;
+
+public class LoggingHelperTest extends TestCase {
+
+ public void testAppender() {
+ Logger l = LoggingHelper.getLogger();
+ assertNotNull(l.getAppender("guilogger"));
+ }
+
+ public void testMessages() throws Exception {
+ final MessageList ml = new MessageList();
+
+ final LogEntry e = new LogEntry();
+ e.message = "heh";
+ ml.add(e);
+
+ assertEquals(e, ml.getMessages()[0]);
+
+ for (int i = 0; i < 10000; i++) {
+ ml.add(new LogEntry());
+ }
+
+ LogEntry[] results = ml.getMessages();
+ for (int i = 0; i < results.length; i++) {
+ assertNotNull("" + i, results[i]);
+ assertFalse(results[i] == e);
+ }
+
+ Thread t1 = new Thread(new Runnable() {
+ public void run() {
+ for (int i = 0; i < 10000; i++) {
+ ml.add(new LogEntry());
+ }
+ LogEntry[] results = ml.getMessages();
+ for (int i = 0; i < results.length; i++) {
+ assertNotNull("" + i, results[i]);
+ assertFalse(results[i] == e);
+ }
+ }
+ });
+
+
+ Thread t2 = new Thread(new Runnable() {
+ public void run() {
+ for (int i = 0; i < 10000; i++) {
+ ml.add(new LogEntry());
+ }
+ LogEntry[] results = ml.getMessages();
+ for (int i = 0; i < results.length; i++) {
+ assertNotNull("" + i, results[i]);
+ assertFalse(results[i] == e);
+ }
+ }
+ });
+
+ t1.start();
+ t2.start();
+ t1.join();
+ t2.join();
+
+ results = ml.getMessages();
+ for (int i = 0; i < results.length; i++) {
+ assertNotNull("" + i, results[i]);
+ assertFalse(results[i] == e);
+ }
+
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/util/LoggingHelperTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list