[jboss-svn-commits] JBL Code SVN: r11234 - in labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms: client/admin and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Apr 23 11:14:35 EDT 2007
Author: fmeyer
Date: 2007-04-23 11:14:34 -0400 (Mon, 23 Apr 2007)
New Revision: 11234
Modified:
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/admin/BackupManager.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.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/server/FileUploadServlet.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java
Log:
JBRULES-571 Export-Import from XML drools:repository front end task
Modified: 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 2007-04-23 15:13:04 UTC (rev 11233)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/AdminFeature.java 2007-04-23 15:14:34 UTC (rev 11234)
@@ -27,7 +27,6 @@
initWidget( tab );
}
-
public static ComponentInfo init() {
return new ComponentInfo("Admin",
@@ -42,6 +41,4 @@
public void onShow() {
}
-
-
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/BackupManager.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/BackupManager.java 2007-04-23 15:13:04 UTC (rev 11233)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/admin/BackupManager.java 2007-04-23 15:14:34 UTC (rev 11234)
@@ -1,31 +1,140 @@
-package org.drools.brms.client.admin;
-
-import org.drools.brms.client.common.FormStyleLayout;
-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.HTML;
-import com.google.gwt.user.client.ui.HorizontalPanel;
-import com.google.gwt.user.client.ui.ListBox;
-import com.google.gwt.user.client.ui.TextBox;
-import com.google.gwt.user.client.ui.Widget;
-
-public class BackupManager extends Composite {
-
- private ListBox currentStatuses;
-
- public BackupManager() {
- FormStyleLayout form = new FormStyleLayout("images/backup_large.png", "Manage Backups");
- form.addAttribute( "", new HTML("<i>-</i>") );
-
- currentStatuses = new ListBox();
- currentStatuses.setVisibleItemCount( 7 );
- currentStatuses.setWidth( "50%" );
-
- initWidget( form );
- }
-}
+package org.drools.brms.client.admin;
+
+import org.drools.brms.client.common.FormStyleLayout;
+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.core.client.GWT;
+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.FileUpload;
+import com.google.gwt.user.client.ui.FormHandler;
+import com.google.gwt.user.client.ui.FormPanel;
+import com.google.gwt.user.client.ui.FormSubmitCompleteEvent;
+import com.google.gwt.user.client.ui.FormSubmitEvent;
+import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class BackupManager extends Composite {
+
+ public static final String FORM_FIELD_REPOSITORY = "repo";
+
+ public BackupManager() {
+
+ FormStyleLayout widtab = new FormStyleLayout( "images/backup_large.png",
+ "Manage Backups" );
+
+ widtab.addAttribute( "",
+ new HTML( "<i>Import and Export rules repository 'drools:repository'</i>" ) );
+ widtab.addRow( new HTML( "<hr/>" ) );
+
+ widtab.addAttribute( "Import 'drools:repository' from xml file",
+ newImportWidget() );
+ widtab.addAttribute( "Export 'drools:repository'",
+ newExportWidget() );
+ widtab.addRow( new HTML( "<hr/>" ) );
+
+ widtab.addAttribute( "Delete rules repository",
+ cleanRepository() );
+
+ initWidget( widtab );
+
+ }
+
+ private Widget newExportWidget() {
+ HorizontalPanel horiz = new HorizontalPanel();
+
+ Button create = new Button( "Export" );
+ create.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ exportRepository();
+ }
+ } );
+
+ horiz.add( create );
+ return horiz;
+ }
+
+ private Widget cleanRepository() {
+ HorizontalPanel horiz = new HorizontalPanel();
+
+ Button delete = new Button( "Execute" );
+ delete.addClickListener( new ClickListener() {
+ public void onClick(Widget w) {
+ if ( Window.confirm( "Are you really sure about delete your entry drools repository database?" ) ) {
+ RepositoryServiceFactory.getService().clearRulesRepository( new GenericCallback() {
+ public void onSuccess(Object data) {
+ Window.alert( "Rules repository deleted." );
+ }
+ });
+ } else {
+ Window.alert( "Operation cancelled" );
+ }
+ }
+ } );
+
+ horiz.add( delete );
+ return horiz;
+ }
+
+
+
+ private Widget newImportWidget() {
+
+ final FormPanel uploadFormPanel = new FormPanel();
+ uploadFormPanel.setAction( GWT.getModuleBaseURL() + "fileManager" );
+ uploadFormPanel.setEncoding( FormPanel.ENCODING_MULTIPART );
+ uploadFormPanel.setMethod( FormPanel.METHOD_POST );
+
+ HorizontalPanel panel = new HorizontalPanel();
+ uploadFormPanel.setWidget( panel );
+
+ final FileUpload upload = new FileUpload();
+ upload.setName( "uploadFormElement" );
+ panel.add( upload );
+
+ panel.add( new Button( "Submit",
+ new ClickListener() {
+ public void onClick(Widget sender) {
+ LoadingPopup.showMessage( "Importing 'drools:repository' file" );
+ uploadFormPanel.submit();
+ }
+ } ) );
+
+ uploadFormPanel.addFormHandler( new FormHandler() {
+ public void onSubmitComplete(FormSubmitCompleteEvent event) {
+ if ( event.getResults() != null ) Window.alert( event.getResults() );
+ else Window.alert( "Rules repository imported successful" );
+
+ LoadingPopup.close();
+ }
+
+ public void onSubmit(FormSubmitEvent event) {
+ if ( upload.getFilename().length() == 0 ) {
+ Window.alert( "You did not specify an exported repository filename!" );
+ event.setCancelled( true );
+ } else if ( !upload.getFilename().endsWith( ".xml" ) ) {
+ Window.alert( "Please specify a valid repository xml file." );
+ event.setCancelled( true );
+ }
+
+ }
+ } );
+
+ return uploadFormPanel;
+ }
+
+ private void exportRepository() {
+ byte[] returnfromfunction = null;
+ LoadingPopup.showMessage( "Exporting 'drools:repository' file" );
+ Window.open( GWT.getModuleBaseURL() + "fileManager?" + FORM_FIELD_REPOSITORY + "=true",
+ "downloading...",
+ "" );
+ LoadingPopup.close();
+ }
+
+}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java 2007-04-23 15:13:04 UTC (rev 11233)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/common/FormStyleLayout.java 2007-04-23 15:14:34 UTC (rev 11234)
@@ -43,41 +43,47 @@
numInLayout = 0;
this.layout.clear();
}
-
+
/**
* Add a widget to the "form".
*/
public void addAttribute(String lbl,
- Widget editor) {
+ Widget editor) {
HTML label = new HTML("<b>" + lbl + "</b>");
layout.setWidget( numInLayout, 0, label );
formatter.setAlignment( numInLayout, 0, HasHorizontalAlignment.ALIGN_RIGHT, HasVerticalAlignment.ALIGN_TOP );
layout.setWidget( numInLayout, 1, editor );
formatter.setAlignment( numInLayout, 1, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
-
+
numInLayout++;
-
}
-
+
+ public void addWidget(Widget editor) {
+ layout.setWidget( numInLayout, 1, editor );
+ formatter.setAlignment( numInLayout, 1, HasHorizontalAlignment.ALIGN_CENTER, HasVerticalAlignment.ALIGN_TOP );
+ numInLayout++;
+ }
+
+
/** Adds a widget that takes up a whole row. */
public void addRow(Widget w) {
layout.setWidget( numInLayout, 0, w);
formatter.setColSpan( numInLayout, 0, 2 );
numInLayout++;
}
-
+
/**
* Adds a header at the top.
*/
protected void addHeader(String image, String title) {
layout.setWidget( 0, 0, new Image(image) );
formatter.setAlignment( 0, 0, HasHorizontalAlignment.ALIGN_LEFT, HasVerticalAlignment.ALIGN_TOP );
-
+
Label name = new Label(title);
name.setStyleName( "resource-name-Label" );
-
+
layout.setWidget( 0, 1, name );
numInLayout++;
}
-
+
}
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java 2007-04-23 15:13:04 UTC (rev 11233)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/packages/ModelAttachmentFileWidget.java 2007-04-23 15:14:34 UTC (rev 11234)
@@ -28,27 +28,36 @@
* Model packages are jar files.
*
* @author Michael Neale
+ * @author Fernando Meyer
*/
+
public class ModelAttachmentFileWidget extends Composite {
-
-
public static final String FORM_FIELD_UUID = "uuid";
private FormPanel form;
private Button ok;
private HorizontalPanel busy;
+ private RuleAsset asset;
+ private RuleViewer viewer;
+
public ModelAttachmentFileWidget(final RuleAsset asset, final RuleViewer viewer) {
-
+ this.asset = asset;
+ this.viewer = viewer;
+ initWidgets(asset.uuid, asset.metaData.name);
+ initAssetHandlers();
+ }
+
+ protected void initWidgets(final String uuid, String formName) {
form = new FormPanel();
- form.setAction( GWT.getModuleBaseURL() + "fileManager" );
+ form.setAction( GWT.getModuleBaseURL() + "fileManager" );
form.setEncoding( FormPanel.ENCODING_MULTIPART );
form.setMethod( FormPanel.METHOD_POST );
FileUpload up = new FileUpload();
up.setName( "fileUploadElement" );
HorizontalPanel fields = new HorizontalPanel();
- fields.add( getHiddenField(FORM_FIELD_UUID, asset.uuid) );
+ fields.add( getHiddenField(FORM_FIELD_UUID, uuid) );
ok = new Button("Upload");
@@ -58,14 +67,14 @@
form.add( fields );
FormStyleLayout layout = new FormStyleLayout("images/model_large.png",
- asset.metaData.name);
+ formName);
layout.addAttribute( "Upload new version:", form );
Button dl = new Button("Download");
dl.addClickListener( new ClickListener() {
public void onClick(Widget w) {
- Window.open( GWT.getModuleBaseURL() + "fileManager?" + FORM_FIELD_UUID + "=" + asset.uuid,
+ Window.open( GWT.getModuleBaseURL() + "fileManager?" + FORM_FIELD_UUID + "=" + uuid,
"downloading...", "" );
}
});
@@ -76,16 +85,20 @@
busy.add( new Label("Uploading file...") );
busy.add( new Image("images/spinner.gif") );
-
-
layout.addRow( busy );
ok.addClickListener( new ClickListener() {
public void onClick(Widget w) {
showUploadingBusy();
- submitUpload();
+ submitUpload();
}
});
+
+ initWidget( layout );
+ this.setStyleName( "editable-Surface" );
+ }
+
+ void initAssetHandlers( ) {
form.addFormHandler( new FormHandler() {
public void onSubmit(FormSubmitEvent ev) {
@@ -99,12 +112,7 @@
}
}
- });
-
- initWidget( layout );
-
- this.setStyleName( "editable-Surface" );
-
+ });
}
protected void submitUpload() {
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-04-23 15:13:04 UTC (rev 11233)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryService.java 2007-04-23 15:14:34 UTC (rev 11234)
@@ -42,11 +42,22 @@
*/
public String createNewRule(String ruleName, String description, String initialCategory, String initialPackage, String format) throws SerializableException;
-
+ /**
+ * Delete un checked in Asset
+ */
public void deleteUncheckedRule(String ruleName, String initialPackage);
+ /**
+ * Export rules repository to a compressed array of bytes
+ */
+ public byte[] exportRepository() throws SerializableException;
/**
+ * Clear the rules repositoty, Use at your own risk.
+ */
+ public void clearRulesRepository();
+
+ /**
* This returns a list of packages where rules may be added.
* Only the UUID and the name need to be populated.
*/
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-04-23 15:13:04 UTC (rev 11233)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rpc/RepositoryServiceAsync.java 2007-04-23 15:14:34 UTC (rev 11234)
@@ -22,6 +22,8 @@
public void createCategory(java.lang.String p0, java.lang.String p1, java.lang.String p2, AsyncCallback cb);
public void createNewRule(java.lang.String p0, java.lang.String p1, java.lang.String p2, java.lang.String p3, java.lang.String p4, AsyncCallback cb);
public void deleteUncheckedRule(java.lang.String p0, java.lang.String p1, AsyncCallback cb);
+ public void exportRepository(AsyncCallback cb);
+ public void clearRulesRepository(AsyncCallback cb);
public void listPackages(AsyncCallback cb);
public void loadRuleAsset(java.lang.String p0, AsyncCallback cb);
public void loadAssetHistory(java.lang.String p0, AsyncCallback cb);
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java 2007-04-23 15:13:04 UTC (rev 11233)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/FileUploadServlet.java 2007-04-23 15:14:34 UTC (rev 11234)
@@ -3,10 +3,12 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.PrintWriter;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -16,6 +18,7 @@
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
+import org.drools.brms.client.admin.BackupManager;
import org.drools.brms.client.packages.ModelAttachmentFileWidget;
import org.drools.brms.server.util.TestEnvironmentSessionHelper;
import org.drools.repository.AssetItem;
@@ -30,6 +33,7 @@
* in assets in the repository.
*
* @author Michael Neale
+ * @author Fernando Meyer
*/
public class FileUploadServlet extends HttpServlet {
@@ -38,78 +42,95 @@
/**
* The post accepts files for attachment to an asset.
*/
+
+ //TODO: must extract bunisess logic form servlet action
+
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException,
IOException {
response.setContentType( "text/plain" );
FormData uploadItem = getFileItem( request );
- if ( uploadItem.file == null || uploadItem.uuid == null) {
- response.getWriter().write( "NO-SCRIPT-DATA" );
+ RulesRepository repo = getRepository();
+
+ if ( uploadItem.file.getFieldName().equals( "uploadFormElement" ) ) {
+ processUploadRepository( uploadItem.file.getInputStream() );
return;
+ } else if ( uploadItem.file != null && uploadItem.uuid != null ) {
+ attachFile( uploadItem,
+ repo );
+ uploadItem.file.getInputStream().close();
+ response.getWriter().write( "OK" );
+ return;
}
-
-
- RulesRepository repo = getRepository( );
- attachFile( uploadItem, repo );
-
- uploadItem.file.getInputStream().close();
-
- response.getWriter().write( "OK" );
+ response.getWriter().write( "NO-SCRIPT-DATA" );
}
-
- /**
- * The get returns files based on UUID.
- * you can do a request like /fileManager?uuid=.....
- * (need to know the UUID) and it will return it as a file.
+
+ protected void processUploadRepository(InputStream file) throws IOException {
+ byte[] byteArray = new byte[file.available()];
+ RulesRepository repo = getRepository();
+
+ file.read( byteArray );
+ repo.importRulesRepository( byteArray );
+ }
+
+ /**
+ * doGet acting like a dispatcher.
*/
+
protected void doGet(HttpServletRequest req,
HttpServletResponse res) throws ServletException,
- IOException {
-
+ IOException {
+
String uuid = (String) req.getParameter( ModelAttachmentFileWidget.FORM_FIELD_UUID );
- if (uuid == null) {
+ String repo = (String) req.getParameter( BackupManager.FORM_FIELD_REPOSITORY );
+
+ if ( uuid != null ) {
+ getFilebyUUID( uuid,
+ req,
+ res );
+ } else if ( repo != null ) {
+ ServletOutputStream out = res.getOutputStream();
+ try {
+
+ res.setContentType( "application/zip" );
+ res.setHeader( "Content-Disposition",
+ "inline; filename=repository_export.zip;" );
+
+ out.write( getRepository().exportRulesRepository() );
+ out.flush();
+ } catch ( Exception e ) {
+ e.printStackTrace( new PrintWriter( out ) );
+ }
+ } else {
res.sendError( HttpServletResponse.SC_BAD_REQUEST );
return;
}
- AssetItem item = getRepository( ).loadAssetByUUID( uuid );
-
- res.setContentType("application/x-download");
- res.setHeader("Content-Disposition", "attachment; filename=" + item.getBinaryContentAttachmentFileName());
-
- byte[] data = item.getBinaryContentAsBytes();
- res.setContentLength( data.length );
-
- OutputStream out = res.getOutputStream();
- out.write( data );
- out.flush();
-
- }
+ }
private RulesRepository getRepository() {
- if (Contexts.isApplicationContextActive()) {
+ if ( Contexts.isApplicationContextActive() ) {
return (RulesRepository) Component.getInstance( "repository" );
} else {
//MN: NOTE THIS IS MY HACKERY TO GET IT WORKING IN GWT HOSTED MODE.
//THIS IS ALL THAT IS NEEDED.
- System.out.println("WARNING: RUNNING IN NON SEAM MODE SINGLE USER MODE - ONLY FOR TESTING AND DEBUGGING !!!!!");
+ System.out.println( "WARNING: RUNNING IN NON SEAM MODE SINGLE USER MODE - ONLY FOR TESTING AND DEBUGGING !!!!!" );
ServiceImplementation impl = new ServiceImplementation();
-
+
try {
- return new RulesRepository(TestEnvironmentSessionHelper.getSession(false));
+ return new RulesRepository( TestEnvironmentSessionHelper.getSession( false ) );
} catch ( Exception e ) {
- throw new IllegalStateException("Unable to launch debug mode...");
- }
+ throw new IllegalStateException( "Unable to launch debug mode..." );
+ }
}
-
}
void attachFile(FormData uploadItem,
- RulesRepository repo) throws IOException {
+ RulesRepository repo) throws IOException {
String uuid = uploadItem.uuid;
InputStream fileData = uploadItem.file.getInputStream();
String fileName = uploadItem.file.getName();
-
+
attachFileToAsset( repo,
uuid,
fileData,
@@ -120,9 +141,10 @@
* This utility method attaches a file to an asset.
*/
public static void attachFileToAsset(RulesRepository repo,
- String uuid,
- InputStream fileData,
- String fileName) {
+ String uuid,
+ InputStream fileData,
+ String fileName) {
+
AssetItem item = repo.loadAssetByUUID( uuid );
item.updateBinaryContentAttachment( fileData );
item.updateBinaryContentAttachmentFileName( fileName );
@@ -135,14 +157,14 @@
private FormData getFileItem(HttpServletRequest request) {
FileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload( factory );
-
+
FormData data = new FormData();
try {
List items = upload.parseRequest( request );
Iterator it = items.iterator();
while ( it.hasNext() ) {
FileItem item = (FileItem) it.next();
- if (item.isFormField() && item.getFieldName().equals( ModelAttachmentFileWidget.FORM_FIELD_UUID )) {
+ if ( item.isFormField() && item.getFieldName().equals( ModelAttachmentFileWidget.FORM_FIELD_UUID ) ) {
data.uuid = item.getString();
} else if ( !item.isFormField() ) {
data.file = item;
@@ -152,15 +174,35 @@
} catch ( FileUploadException e ) {
throw new RulesRepositoryException( e );
}
-
+
}
-
+
static class FormData {
FileItem file;
- String uuid;
+ String uuid;
}
+ /**
+ * The get returns files based on UUID.
+ * you can do a request like /fileManager?uuid=.....
+ * (need to know the UUID) and it will return it as a file.
+ */
+ private void getFilebyUUID(String uuid,
+ HttpServletRequest req,
+ HttpServletResponse res) throws IOException {
+ AssetItem item = getRepository().loadAssetByUUID( uuid );
+ res.setContentType( "application/x-download" );
+ res.setHeader( "Content-Disposition",
+ "attachment; filename=" + item.getBinaryContentAttachmentFileName() );
+
+ byte[] data = item.getBinaryContentAsBytes();
+ res.setContentLength( data.length );
+
+ OutputStream out = res.getOutputStream();
+ out.write( data );
+ out.flush();
+ }
}
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 2007-04-23 15:13:04 UTC (rev 11233)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/ServiceImplementation.java 2007-04-23 15:14:34 UTC (rev 11234)
@@ -1,5 +1,6 @@
package org.drools.brms.server;
+import java.io.IOException;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Calendar;
@@ -11,6 +12,7 @@
import java.util.regex.Matcher;
import java.util.regex.Pattern;
+import javax.jcr.PathNotFoundException;
import javax.jcr.RepositoryException;
import org.apache.log4j.Logger;
@@ -35,6 +37,7 @@
import org.drools.repository.CategoryItem;
import org.drools.repository.PackageItem;
import org.drools.repository.RulesRepository;
+import org.drools.repository.RulesRepositoryAdministrator;
import org.drools.repository.RulesRepositoryException;
import org.drools.repository.StateItem;
import org.drools.repository.VersionableItem;
@@ -348,6 +351,17 @@
}
+ @WebRemote
+ public byte[] exportRepository() throws SerializableException {
+ byte [] exportedOutput = null;
+ try {
+ exportedOutput = repository.exportRulesRepository();
+ } catch ( Exception e ) {
+ throw new SerializableException( "Unable to export repository" );
+ }
+ return exportedOutput;
+ }
+
@WebRemote
public String createPackage(String name,
String description) throws SerializableException {
@@ -578,8 +592,6 @@
}
-
-
@WebRemote
public void removeCategory(String categoryPath) throws SerializableException {
log.info( "REMOVING CATEGORY path: [" + categoryPath + "]" );
@@ -591,6 +603,12 @@
throw new SerializableException( e.getMessage() );
}
}
+
+ @WebRemote
+ public void clearRulesRepository() {
+ RulesRepositoryAdministrator admin = new RulesRepositoryAdministrator(repository.getSession());
+ admin.clearRulesRepository();
+ }
@WebRemote
public SuggestionCompletionEngine loadSuggestionCompletionEngine(String packageName) throws SerializableException {
More information about the jboss-svn-commits
mailing list