[jboss-svn-commits] JBL Code SVN: r6144 - in labs/jbossrules/trunk/drools-jbrms/src: main/java/org/drools/brms/client main/java/org/drools/brms/client/breditor main/java/org/drools/brms/client/rulenav main/java/org/drools/brms/public main/java/org/drools/brms/server test/java/org/drools/brms test/java/org/drools/brms/server
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Sep 11 11:58:12 EDT 2006
Author: michael.neale at jboss.com
Date: 2006-09-11 11:58:00 -0400 (Mon, 11 Sep 2006)
New Revision: 6144
Added:
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ErrorPopup.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java
labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/
labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java
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/rulenav/RulesNavigatorTree.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
Log:
end to end now working
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ErrorPopup.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ErrorPopup.java 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ErrorPopup.java 2006-09-11 15:58:00 UTC (rev 6144)
@@ -0,0 +1,62 @@
+package org.drools.brms.client;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+
+/** Generic error dialog popup */
+public class ErrorPopup extends PopupPanel {
+
+ public static ErrorPopup instance = null;
+
+ Label errorMessage = new Label();
+ Panel panel = new HorizontalPanel();
+ Button ok = new Button("OK");
+
+ public ErrorPopup() {
+ super(true);
+ panel.add( errorMessage );
+ panel.add( ok );
+ final PopupPanel self = this;
+ ok.addClickListener( new ClickListener() {
+ public void onClick(Widget arg0) {
+ self.hide();
+ }
+ });
+ this.add( panel );
+ this.setPopupPosition( 0, 0 );
+ setStyleName( "rule-error-Popup" );
+ }
+
+ public void setMessage(String message) {
+ errorMessage.setText( message );
+ }
+
+ public void hide() {
+ errorMessage.setText( "" );
+ super.hide();
+ }
+
+ public static ErrorPopup getInstance() {
+ if (instance == null) {
+ instance = new ErrorPopup();
+ }
+ return instance;
+ }
+
+ /** Convenience method to popup the message. */
+ public static void showMessage(String message) {
+ ErrorPopup p = getInstance();
+ p.errorMessage.setText( message );
+ p.show();
+ }
+
+
+
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/ErrorPopup.java
___________________________________________________________________
Name: svn:eol-style
+ native
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 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/Packages.java 2006-09-11 15:58:00 UTC (rev 6144)
@@ -15,124 +15,91 @@
*/
package org.drools.brms.client;
+import org.drools.brms.client.breditor.BREditor;
+import org.drools.brms.client.breditor.EditableLine;
+
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.ClickListener;
-import com.google.gwt.user.client.ui.DialogBox;
-import com.google.gwt.user.client.ui.DockPanel;
-import com.google.gwt.user.client.ui.Frame;
-import com.google.gwt.user.client.ui.Image;
-import com.google.gwt.user.client.ui.Widget;
import com.google.gwt.user.client.ui.HTML;
+import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.PopupPanel;
import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
/**
* Demonstrates {@link com.google.gwt.user.client.ui.PopupPanel} and
* {@link com.google.gwt.user.client.ui.DialogBox}.
*/
-public class Packages extends JBRMSFeature implements ClickListener {
+public class Packages extends JBRMSFeature
+ implements
+ ClickListener {
- /**
- * A simple dialog box that displays a message, a Frame, and a close button.
- */
- private static class MyDialog extends DialogBox implements ClickListener {
- public MyDialog() {
- setText("Sample DialogBox with embedded Frame");
+ /**
+ * A very simple popup that closes automatically when you click off of it.
+ */
+ private static class MyPopup extends PopupPanel {
+ public MyPopup() {
+ super( true );
- Frame iframe = new Frame("rembrandt/LaMarcheNocturne.html");
- Button closeButton = new Button("Close", this);
- HTML msg = new HTML(
- "<center>This is an example of a standard dialog box component.<br> "
- + "You can put pretty much anything you like into it,<br>such as the "
- + "following IFRAME:</center>", true);
+ ListBox list = new ListBox();
+ list.addItem( "There is a person {bob} who is blah" );
+ list.addItem( "There is a cheese {bob} who is {type}" );
+ list.addItem( "- age is less then {number}" );
+ list.addItem( "- likes doing '{number}'" );
- DockPanel dock = new DockPanel();
- dock.setSpacing(4);
+ HTML contents = new HTML( "Click anywhere outside this popup to make it disappear." );
+ contents.setWidth( "128px" );
- dock.add(closeButton, DockPanel.SOUTH);
- dock.add(msg, DockPanel.NORTH);
- dock.add(iframe, DockPanel.CENTER);
-
- dock.setCellHorizontalAlignment(closeButton, DockPanel.ALIGN_RIGHT);
- dock.setCellWidth(iframe, "100%");
- dock.setWidth("100%");
- iframe.setWidth("36em");
- iframe.setHeight("20em");
- add(dock);
+ //add(contents);
+ add( list );
+ //add(new Label("this is a label"));
+ setStyleName( "ks-popups-Popup" );
+ }
}
- public void onClick(Widget sender) {
- hide();
+ public static ComponentInfo init() {
+ return new ComponentInfo( "Packages",
+ "This is where you configure packages of rules." + "You select rules to belong to packages, and what version they are. A rule can "
+ + "appear in more then one package, and possibly even different versions of the rule." ) {
+ public JBRMSFeature createInstance() {
+ return new Packages();
+ }
+
+ public Image getImage() {
+ return new Image( "images/package.gif" );
+ }
+ };
}
- }
- /**
- * A very simple popup that closes automatically when you click off of it.
- */
- private static class MyPopup extends PopupPanel {
- public MyPopup() {
- super(true);
+ private Button fPopupButton = new Button( "Show Popup",
+ this );
- HTML contents = new HTML(
- "Click anywhere outside this popup to make it disappear.");
- contents.setWidth("128px");
- add(contents);
-
- setStyleName("ks-popups-Popup");
+ public Packages() {
+ VerticalPanel panel = new VerticalPanel();
+ panel.add( fPopupButton );
+ panel.add( new BREditor() );
+
+ EditableLine line = new EditableLine();
+ line.makeEditable();
+ line.makeReadOnly();
+ panel.add( line );
+
+ panel.setSpacing( 8 );
+ initWidget( panel );
}
- }
- public static ComponentInfo init() {
- return new ComponentInfo(
- "Packages",
- "This is where you configure packages of rules." +
- "You select rules to belong to packages, and what version they are. A rule can " +
- "appear in more then one package, and possibly even different versions of the rule.") {
- public JBRMSFeature createInstance() {
- return new Packages();
- }
-
- public Image getImage() {
- return new Image("images/package.gif");
- }
- };
- }
-
- private Button fDialogButton = new Button("Show Dialog", this);
- private Button fPopupButton = new Button("Show Popup", this);
-
- public Packages() {
- VerticalPanel panel = new VerticalPanel();
- panel.add(fPopupButton);
- panel.add(fDialogButton);
-
- ListBox list = new ListBox();
- list.setVisibleItemCount(5);
- for (int i = 0; i < 10; ++i)
- list.addItem("list item " + i);
- panel.add(list);
-
- panel.setSpacing(8);
- setWidget(panel);
- }
-
- public void onClick(Widget sender) {
- if (sender == fPopupButton) {
- MyPopup p = new MyPopup();
- int left = sender.getAbsoluteLeft() + 10;
- int top = sender.getAbsoluteTop() + 10;
- p.setPopupPosition(left, top);
- p.show();
- } else if (sender == fDialogButton) {
- DialogBox dlg = new MyDialog();
- int left = fDialogButton.getAbsoluteLeft() + 10;
- int top = fDialogButton.getAbsoluteTop() + 10;
- dlg.setPopupPosition(left, top);
- dlg.show();
+ public void onClick(Widget sender) {
+ if ( sender == fPopupButton ) {
+ MyPopup p = new MyPopup();
+ int left = sender.getAbsoluteLeft() + 10;
+ int top = sender.getAbsoluteTop() + 10;
+ p.setPopupPosition( left,
+ top );
+ p.show();
+ }
}
- }
- public void onShow() {
- }
+ public void onShow() {
+ }
}
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java 2006-09-11 15:58:00 UTC (rev 6144)
@@ -0,0 +1,129 @@
+package org.drools.brms.client.breditor;
+
+import java.util.ArrayList;
+import java.util.List;
+
+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.FlexTable;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class BREditor extends Composite {
+
+ final int DESC_COLUMN = 0;
+ final int CONTENT_COLUMN = 1;
+ final int ACTION_COLUMN = 2;
+
+
+ private Panel panel;
+ private List lhs = new ArrayList();
+ private List rhs = new ArrayList();
+ private FlexTable table = null;
+
+ public BREditor() {
+
+ panel = new VerticalPanel();
+
+ initData();
+ populateTable();
+
+ initWidget( panel );
+ }
+
+ /** This will populate and refresh the table */
+ private void populateTable() {
+ refreshTableOnPanel();
+ table.setText( 0, DESC_COLUMN, "IF" );
+
+ final ChoiceList listPopup = new ChoiceList(new ClickListener() {
+ public void onClick(Widget popup) {
+ //need up add to the LHS list
+ ChoiceList c = (ChoiceList) popup;
+ lhs.add( new Label(c.getSelectedItem()) );
+ populateTable();
+ }
+ });
+
+ Button addLhs = new Button("+");
+ addLhs.addClickListener( new ClickListener() {
+ public void onClick(Widget sender) {
+
+
+ int left = sender.getAbsoluteLeft() + 10;
+ int top = sender.getAbsoluteTop() + 10;
+ listPopup.setPopupPosition( left,
+ top );
+ listPopup.show();
+ }
+ });
+
+ table.setWidget( 0, ACTION_COLUMN, addLhs );
+
+ int rowOffset = 1;
+
+ //setup LHS
+ populateContent(
+ rowOffset, lhs );
+
+ rowOffset = lhs.size() + 1;
+
+ table.setText( rowOffset, DESC_COLUMN, "THEN" );
+
+
+ table.setWidget( rowOffset, ACTION_COLUMN, new Button("+") );
+
+ rowOffset++;
+
+ //setup RHS
+ populateContent( rowOffset, rhs );
+
+// //setup RHS
+// for ( int i = 0; i < rhs.size(); i++ ) {
+// Widget w = (Widget) rhs.get( 0 );
+// table.setWidget( i+rowOffset, CONTENT_COLUMN, w );
+// }
+
+ }
+
+ private void populateContent(int rowOffset, final List dataList) {
+ final BREditor editor = this;
+ for ( int i = 0; i < dataList.size(); i++ ) {
+ Widget w = (Widget) dataList.get( i );
+ int row = i + rowOffset;
+ table.setWidget( row, CONTENT_COLUMN, w );
+ Button removeButton = new Button("-");
+ final int idx = i;
+ removeButton.addClickListener( new ClickListener() {
+
+ public void onClick(Widget but) {
+ dataList.remove( idx );
+ editor.populateTable();
+ }
+
+ });
+ table.setWidget( row, ACTION_COLUMN, removeButton );
+ }
+ }
+
+ private void refreshTableOnPanel() {
+ //remove old if refreshing
+ if (table != null) {
+ panel.remove( table );
+ }
+
+ //now add the new
+ table = new FlexTable();
+ panel.add( table );
+ }
+
+ private void initData() {
+ lhs.add( new Label("Hello this is {foo}"));
+ lhs.add( new Label("Hello this is {foo}"));
+ rhs.add(new Label("panic all is lost") );
+ }
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/BREditor.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java 2006-09-11 15:58:00 UTC (rev 6144)
@@ -0,0 +1,53 @@
+package org.drools.brms.client.breditor;
+
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.ClickListener;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.PopupPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
+import com.google.gwt.user.client.ui.Widget;
+
+public class ChoiceList extends PopupPanel {
+
+ private ListBox list;
+ private ClickListener okClickListener;
+
+ public ChoiceList(ClickListener okClickListener) {
+ super( true );
+
+ this.okClickListener = okClickListener;
+
+ list = new ListBox();
+ list.setVisibleItemCount( 5 );
+ list.addItem( "There is a person {bob} who is blah" );
+ list.addItem( "There is a cheese {bob} who is {type}" );
+ list.addItem( "- age is less then {number}" );
+ list.addItem( "- likes doing '{number}'" );
+
+ VerticalPanel panel = new VerticalPanel();
+ panel.add( list );
+
+ Button ok = new Button("ok");
+ ok.addClickListener( new ClickListener() {
+ public void onClick(Widget btn) {
+ onOkClicked();
+ }
+
+ });
+ panel.add( ok );
+ add( panel );
+ setStyleName( "ks-popups-Popup" );
+
+ }
+
+ private void onOkClicked() {
+ this.okClickListener.onClick( this );
+ this.hide();
+ }
+
+ public String getSelectedItem() {
+ return list.getItemText( list.getSelectedIndex() );
+ }
+
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/ChoiceList.java
___________________________________________________________________
Name: svn:eol-style
+ native
Added: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java 2006-09-11 15:58:00 UTC (rev 6144)
@@ -0,0 +1,70 @@
+package org.drools.brms.client.breditor;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.HorizontalPanel;
+import com.google.gwt.user.client.ui.Label;
+import com.google.gwt.user.client.ui.Panel;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+public class EditableLine extends Composite {
+
+ private Panel panel;
+ private List widgets = new ArrayList();
+
+
+ public EditableLine() {
+ widgets.add( new Label("The persons name is ") );
+ TextBox box = new TextBox();
+ box.setVisibleLength( 4 );
+
+ widgets.add( box );
+
+ panel = new HorizontalPanel();
+ initWidget( panel );
+ }
+
+ public void makeReadOnly() {
+ panel.clear();
+ for ( Iterator iter = widgets.iterator(); iter.hasNext(); ) {
+ Widget element = (Widget) iter.next();
+ if (element instanceof Label) {
+ panel.add( element );
+ } else if (element instanceof TextBox) {
+ TextBox box = (TextBox) element;
+ panel.add( new Label(box.getText()) );
+ }
+ }
+ }
+
+ public void makeEditable() {
+ panel.clear();
+ for ( Iterator iter = widgets.iterator(); iter.hasNext(); ) {
+ Widget element = (Widget) iter.next();
+ panel.add( element );
+ }
+ }
+
+ /**
+ * Returns the content.
+ */
+ public String toString() {
+ String result = "";
+ for ( Iterator iter = widgets.iterator(); iter.hasNext(); ) {
+ Widget element = (Widget) iter.next();
+ if (element instanceof Label) {
+ result = result + ((Label) element).getText();
+ } else {
+ result = result + ((TextBox) element).getText();
+ }
+ }
+ return result;
+ }
+
+
+
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/breditor/EditableLine.java
___________________________________________________________________
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulenav/RulesNavigatorTree.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulenav/RulesNavigatorTree.java 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/client/rulenav/RulesNavigatorTree.java 2006-09-11 15:58:00 UTC (rev 6144)
@@ -15,6 +15,7 @@
*/
package org.drools.brms.client.rulenav;
+import org.drools.brms.client.ErrorPopup;
import org.drools.brms.client.rpc.RepositoryServiceAsync;
import org.drools.brms.client.rpc.RepositoryServiceFactory;
@@ -51,7 +52,11 @@
new AsyncCallback() {
public void onFailure(Throwable caught) {
- //TODO: work out how to handle it.
+ ErrorPopup popup = ErrorPopup.getInstance();
+ popup.setMessage( "Unable to load categories" );
+ popup.setPopupPosition( 0, 0 );
+ popup.show();
+
}
public void onSuccess(Object result) {
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 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.css 2006-09-11 15:58:00 UTC (rev 6144)
@@ -239,6 +239,13 @@
padding: 4px;
}
+.rule-error-Popup {
+ background-color: red;
+ border: 1px solid #87B3FF;
+ padding: 4px;
+}
+
+
.rule-ListHeader {
background-image: url(images/gray_gradient.gif);
background-repeat: repeat-x;
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 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/public/JBRMS.html 2006-09-11 15:58:00 UTC (rev 6144)
@@ -3,6 +3,8 @@
<meta name='gwt:module' content='org.drools.brms.JBRMS'>
<link rel='stylesheet' href='JBRMS.css'>
<title>JBoss Business Rules Management System</title>
+ <link rel="shortcut icon" href="images/drools.gif" type="image/gif">
+ <link rel="icon" href="images/drools.gif" type="image/gif">
</head>
<body>
<img src="images/drools_logo.png" />
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 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/main/java/org/drools/brms/server/JBRMSServiceServlet.java 2006-09-11 15:58:00 UTC (rev 6144)
@@ -1,7 +1,18 @@
package org.drools.brms.server;
+import java.util.List;
+
+import javax.jcr.LoginException;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.servlet.http.HttpSession;
+
import org.drools.brms.client.rpc.RepositoryService;
import org.drools.brms.client.rpc.TableConfig;
+import org.drools.repository.CategoryItem;
+import org.drools.repository.RepositoryConfigurator;
+import org.drools.repository.RulesRepository;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
@@ -12,42 +23,111 @@
private static final long serialVersionUID = 3150768417428383474L;
public String[] loadChildCategories(String categoryPath) {
- log("loadChildCategories", "loading cat path: " + categoryPath);
- sleep( 500 );
- return new String[] { "Cat 1", "Cat 2", "Cat 3"};
+ RulesRepository repo = this.getRepositoryFrom( getSession() );
+ CategoryItem item = repo.getOrCreateCategory( categoryPath );
+ List children = item.getChildTags();
+
+ String[] list = new String[children.size()];
+
+ for ( int i = 0; i < list.length; i++ ) {
+ list[i] = ((CategoryItem) children.get( i )).getName();
+ }
+
+ log( "loadChildCategories",
+ "loading cat path: " + categoryPath );
+ return list;
}
public String[][] loadRuleListForCategories(String categoryPath,
String status) {
- log("loading rule list", "for cat path: " + categoryPath);
- String[][] data = { { "Rule 1", "Production", "mark", "2" },
- { "Rule 2", "Production", "mark", "2" },
- { "Rule 3", "Production", "mark", "2" }};
+ log( "loading rule list",
+ "for cat path: " + categoryPath );
+ String[][] data = {{"Rule 1", "Production", "mark", "2"}, {"Rule 2", "Production", "mark", "2"}, {"Rule 3", "Production", "mark", "2"}};
return data;
}
public TableConfig loadTableConfig(String listName) {
- log("loading table config", listName);
- sleep(300);
+ log( "loading table config",
+ listName );
+ sleep( 300 );
final TableConfig config = new TableConfig();
- config.headers = new String[] {"name", "status", "last updated by", "version"};
- config.rowsPerPage = 30;
+ config.headers = new String[]{"name", "status", "last updated by", "version"};
+ config.rowsPerPage = 30;
return config;
}
- private void sleep(int ms) {
+ private void sleep(int ms) {
try {
Thread.sleep( ms );
- } catch ( InterruptedException e ) {
+ } catch ( InterruptedException e ) {
e.printStackTrace();
}
}
-
+
private void log(String serviceName,
String message) {
- System.out.println("[" + serviceName + "] " + message);
+ System.out.println( "[" + serviceName + "] " + message );
}
+
+ private HttpSession getSession() {
+ return this.getThreadLocalRequest().getSession();
+ }
+
+ RulesRepository getRepositoryFrom(HttpSession session) {
+ Object obj = session.getAttribute( "drools.repository" );
+ if ( obj == null ) {
+ obj = createNewSession();
+ session.setAttribute( "drools.repository",
+ obj );
+ }
+ return (RulesRepository) obj;
+ }
+
+ /** Initialse the repository, set it up if it is brand new */
+ private RulesRepository createNewSession() {
+
+ RepositoryConfigurator config = new RepositoryConfigurator();
+
+ try {
+
+ Session session;
+ if (repository == null) {
+ long start = System.currentTimeMillis();
+ session = initialiseRepo( config );
+ System.out.println("initialise repo time: " + (System.currentTimeMillis() - start));
+ } else {
+ long start = System.currentTimeMillis();
+ session = config.login( repository );
+ System.out.println("login repo time: " + (System.currentTimeMillis() - start));
+
+ }
+
+ return new RulesRepository( session );
+ } catch ( LoginException e ) {
+ throw new RuntimeException( e );
+ } catch ( RepositoryException e ) {
+ throw new RuntimeException( "Unable to get a repository: " + e.getMessage() );
+ }
+ }
+
+ /** This will create a new repository instance (should only happen once after startup) */
+ private Session initialiseRepo(RepositoryConfigurator config) throws LoginException,
+ RepositoryException {
+ Session session;
+ repository = config.createRepository();
+
+ session = config.login( repository );
+
+
+ config.setupRulesRepository( session );
+ return session;
+ }
+
+ public static Repository repository;
+
+
+
}
Added: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java
===================================================================
--- labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java 2006-09-11 15:47:48 UTC (rev 6143)
+++ labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java 2006-09-11 15:58:00 UTC (rev 6144)
@@ -0,0 +1,109 @@
+package org.drools.brms.server;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpSession;
+import javax.servlet.http.HttpSessionContext;
+
+import org.drools.repository.RulesRepository;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+public class JBRMSServiceServletTest extends TestCase {
+
+ public void testInit() throws Exception {
+ JBRMSServiceServlet serv = new JBRMSServiceServlet();
+ MockHttpSession session = new MockHttpSession();
+ RulesRepository repo = serv.getRepositoryFrom( session );
+ assertTrue(session.sessionData.containsKey( "drools.repository" ));
+ assertEquals(repo, session.getAttribute( "drools.repository" ));
+
+ RulesRepository repo2 = serv.getRepositoryFrom( session );
+ assertSame(repo, repo2);
+
+
+ }
+
+
+ static class MockHttpSession implements HttpSession {
+
+ public Map sessionData = new HashMap();
+
+ public Object getAttribute(String arg0) {
+
+ return sessionData.get( arg0 );
+ }
+
+ public Enumeration getAttributeNames() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public long getCreationTime() {
+ return 0;
+ }
+
+ public String getId() {
+ return null;
+ }
+
+ public long getLastAccessedTime() {
+ return 0;
+ }
+
+ public int getMaxInactiveInterval() {
+ return 0;
+ }
+
+ public ServletContext getServletContext() {
+ return null;
+ }
+
+ public HttpSessionContext getSessionContext() {
+ return null;
+ }
+
+ public Object getValue(String arg0) {
+ return null;
+ }
+
+ public String[] getValueNames() {
+ return null;
+ }
+
+ public void invalidate() {
+ }
+
+ public boolean isNew() {
+ return false;
+ }
+
+ public void putValue(String arg0,
+ Object arg1) {
+ Assert.fail("DO NOT USE THIS METHOD !");
+
+ }
+
+ public void removeAttribute(String arg0) {
+ this.sessionData.remove( arg0 );
+ }
+
+ public void removeValue(String arg0) {
+ }
+
+ public void setAttribute(String arg0,
+ Object arg1) {
+ sessionData.put( arg0, arg1 );
+ }
+
+ public void setMaxInactiveInterval(int arg0) {
+
+
+ }
+
+ }
+}
Property changes on: labs/jbossrules/trunk/drools-jbrms/src/test/java/org/drools/brms/server/JBRMSServiceServletTest.java
___________________________________________________________________
Name: svn:eol-style
+ native
More information about the jboss-svn-commits
mailing list