[jboss-svn-commits] JBL Code SVN: r28890 - in labs/jbossrules/soa_branches/BRMS-5.0.1: drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven and 10 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Aug 10 11:13:37 EDT 2009
Author: jervisliu
Date: 2009-08-10 11:13:37 -0400 (Mon, 10 Aug 2009)
New Revision: 28890
Added:
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/resources/jarWithSourceFiles.jar
Modified:
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/client/common/FormStylePopup.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/BRMSPackageBuilder.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FeedServlet.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FileManagerUtils.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/resources/atom-feed-template.xml
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java
labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java
Log:
Merged necessary files from trunk to BRMS 5.0.1 branch for following JIRAs: Guvnor-323, Guvnor-299, Guvnor-361, Guvnor-322, Guvnor-327, Guvnor-344, Guvnor-345, Guvnor-367. Merge details can be found from merge log below:
svn merge -r 26591:26943 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/BRMSPackageBuilder.java
svn merge -r 26591:26943 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/test/resources
A jarWithSourceFiles.jar
svn merge -r 26591:26803 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FileManagerUtils.java
svn merge -r 26591:26801 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FeedServlet.java
svn merge -r 26591:26801 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java
svn merge -r 26591:26801 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/resources/atom-feed-template.xml
svn merge -r 26591:26947 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
svn merge -r 26591:26947 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java
svn merge -r 26591:26774 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
svn merge -r 26591:26774 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java
svn merge -r 26591:26759 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java
svn merge -r 26591:26759 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/client/common/FormStylePopup.java
svn merge -r 26591:27011 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
svn merge -r 26591:27011 https://svn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/main/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngine.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -275,23 +275,40 @@
if ( pat.constraintList != null && pat.constraintList.constraints != null ) {
// we may need to check for data dependent enums
- Object _typeField = dataEnumLookupFields.get( pat.factType + "." + field );
- if ( _typeField instanceof String ) {
- String typeField = (String) _typeField;
+ Object _typeFields = dataEnumLookupFields.get( pat.factType + "." + field );
+ if ( _typeFields instanceof String ) {
+ String typeFields = (String) _typeFields;
FieldConstraint[] cons = pat.constraintList.constraints;
- for ( int i = 0; i < cons.length; i++ ) {
- FieldConstraint con = cons[i];
- if ( con instanceof SingleFieldConstraint ) {
- SingleFieldConstraint sfc = (SingleFieldConstraint) con;
- if ( sfc.fieldName.equals( typeField ) ) {
- String key = pat.factType + "." + field + "[" + typeField + "=" + sfc.value + "]";
- return DropDownData.create( (String[]) this.dataEnumLists.get( key ) );
+
+ String key = pat.factType + "." + field + "[";
+
+ String[] splitTypeFields = typeFields.split( "," );
+ for ( int j = 0; j < splitTypeFields.length; j++ ) {
+ String typeField = splitTypeFields[j];
+
+ for ( int i = 0; i < cons.length; i++ ) {
+ FieldConstraint con = cons[i];
+ if ( con instanceof SingleFieldConstraint ) {
+ SingleFieldConstraint sfc = (SingleFieldConstraint) con;
+
+ if ( sfc.fieldName.trim().equals( typeField.trim() ) ) {
+ key += typeField + "=" + sfc.value;
+
+ if ( j != (splitTypeFields.length - 1) ) {
+ key += ",";
+ }
+ }
}
}
}
- } else if ( _typeField != null ) {
+
+ key += "]";
+
+ return DropDownData.create( (String[]) this.dataEnumLists.get( key ) );
+
+ } else if ( _typeFields != null ) {
// these enums are calculated on demand, server side...
- String[] fieldsNeeded = (String[]) _typeField;
+ String[] fieldsNeeded = (String[]) _typeFields;
String queryString = getQueryString( pat.factType,
field,
this.dataEnumLists );
@@ -410,8 +427,18 @@
String predicate = key.substring( ix + 1,
key.indexOf( ']' ) );
if ( predicate.indexOf( '=' ) > -1 ) {
- String typeField = predicate.substring( 0,
- predicate.indexOf( '=' ) );
+
+ String[] bits = predicate.split( "," );
+ String typeField = "";
+
+ for ( int i = 0; i < bits.length; i++ ) {
+ typeField += bits[i].substring( 0,
+ bits[i].indexOf( '=' ) );
+ if ( i != (bits.length - 1) ) {
+ typeField += ",";
+ }
+ }
+
dataEnumLookupFields.put( factField,
typeField );
} else {
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-compiler/src/test/java/org/drools/guvnor/client/modeldriven/SuggestionCompletionEngineTest.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -275,7 +275,67 @@
assertNull(sce.getEnums("Nothing", vals, "value"));
}
+
+ public void testSmartEnumsDependingOfSeveralFieldsTwo() {
+ final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
+ sce.dataEnumLists = new HashMap();
+ sce.dataEnumLists.put("Fact.field1", new String[] {"a1", "a2"});
+ sce.dataEnumLists.put("Fact.field2", new String[] {"b1", "b2"});
+ sce.dataEnumLists.put("Fact.field3[field1=a1,field2=b1]", new String[] {"c1","c2","c3"});
+ sce.dataEnumLists.put("Fact.field4[field1=a1]", new String[] {"d1", "d2"});
+
+ FactPattern pat = new FactPattern("Fact");
+ SingleFieldConstraint sfc = new SingleFieldConstraint("field1");
+ sfc.value = "a1";
+ pat.addConstraint(sfc);
+ SingleFieldConstraint sfc2 = new SingleFieldConstraint("field2");
+ sfc2.value = "b1";
+ pat.addConstraint(sfc2);
+
+ String[] result = sce.getEnums(pat, "field3").fixedList;
+ assertEquals(3, result.length);
+ assertEquals("c1", result[0]);
+ assertEquals("c2", result[1]);
+ assertEquals("c3", result[2]);
+ }
+
+ public void testSmartEnumsDependingOfSeveralFieldsFive() {
+ final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
+ sce.dataEnumLists = new HashMap();
+ sce.dataEnumLists.put("Fact.field1", new String[] {"a1", "a2"});
+ sce.dataEnumLists.put("Fact.field2", new String[] {"b1", "b2"});
+ sce.dataEnumLists.put("Fact.field3", new String[] {"c1","c2","c3"});
+ sce.dataEnumLists.put("Fact.longerField4", new String[] {"d1", "d2"});
+ sce.dataEnumLists.put("Fact.field5", new String[] {"e1", "e2"});
+ sce.dataEnumLists.put("Fact.field6[field1=a1, field2=b2, field3=c3,longerField4=d1,field5=e2]", new String[] {"f1", "f2"});
+
+ FactPattern pat = new FactPattern("Fact");
+ SingleFieldConstraint sfc = new SingleFieldConstraint("field1");
+ sfc.value = "a1";
+ pat.addConstraint(sfc);
+ SingleFieldConstraint sfc2 = new SingleFieldConstraint("field2");
+ sfc2.value = "b2";
+ pat.addConstraint(sfc2);
+ SingleFieldConstraint sfc3 = new SingleFieldConstraint("field3");
+ sfc3.value = "c3";
+ pat.addConstraint(sfc3);
+ SingleFieldConstraint sfc4 = new SingleFieldConstraint("longerField4");
+ sfc4.value = "d1";
+ pat.addConstraint(sfc4);
+
+ assertNull( sce.getEnums(pat, "field6") );
+
+ SingleFieldConstraint sfc5 = new SingleFieldConstraint("field5");
+ sfc5.value = "e2";
+ pat.addConstraint(sfc5);
+
+ String[] result2 = sce.getEnums(pat, "field6").fixedList;
+ assertEquals(2, result2.length);
+ assertEquals("f1", result2[0]);
+ assertEquals("f2", result2[1]);
+ }
+
public void testSmarterLookupEnums() {
final SuggestionCompletionEngine sce = new SuggestionCompletionEngine();
sce.dataEnumLists = new HashMap();
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/client/common/FormStylePopup.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/client/common/FormStylePopup.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/client/common/FormStylePopup.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -80,6 +80,7 @@
}
public void hide() {
+ this.dialog.hide();
this.dialog.destroy();
}
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/client/qa/ScenarioWidget.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -52,7 +52,7 @@
public class ScenarioWidget extends Composite {
- private ListBox availableRules;
+ private String[] availableRules;
private SuggestionCompletionEngine sce;
private ChangeListener ruleSelectionCL;
RuleAsset asset;
@@ -455,77 +455,83 @@
}
-
public Widget getRuleSelectionWidget(final String packageName, final RuleSelectionEvent selected) {
- final HorizontalPanel h = new HorizontalPanel();
- final TextBox t = new TextBox();
- t.setTitle(constants.EnterRuleNameScenario());
- h.add(t);
- if (!(availableRules == null)) {
- availableRules.setSelectedIndex(0);
- availableRules.removeChangeListener(ruleSelectionCL);
- ruleSelectionCL = new ChangeListener() {
- public void onChange(Widget w) {
- t.setText(availableRules.getItemText(availableRules.getSelectedIndex()));
- }
- };
+ final HorizontalPanel h = new HorizontalPanel();
+ final TextBox t = new TextBox();
+ t.setTitle(constants.EnterRuleNameScenario());
+ h.add(t);
+ if (!(availableRules == null)) {
+ final ListBox availableRulesBox = new ListBox();
- availableRules.addChangeListener(ruleSelectionCL);
- h.add(availableRules);
+ availableRulesBox.addItem(constants.pleaseChoose1());
+ for (int i = 0; i < availableRules.length; i++) {
+ availableRulesBox.addItem(availableRules[i]);
+ }
+ availableRulesBox.setSelectedIndex(0);
+ availableRulesBox.removeChangeListener(ruleSelectionCL);
+ ruleSelectionCL = new ChangeListener() {
+ public void onChange(Widget w) {
+ t.setText(availableRulesBox.getItemText(availableRulesBox.getSelectedIndex()));
+ }
+ };
- } else {
+ availableRulesBox.addChangeListener(ruleSelectionCL);
+ h.add(availableRulesBox);
- final Button showList = new Button(constants.showListButton());
- h.add(showList);
- showList.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- h.remove(showList);
- final Image busy = new Image("images/searching.gif"); //NON-NLS
- final Label loading = new SmallLabel(constants.loadingList1());
- h.add(busy);
- h.add(loading);
+ } else {
+ final Button showList = new Button(constants.showListButton());
+ h.add(showList);
+ showList.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ h.remove(showList);
+ final Image busy = new Image("images/searching.gif"); //NON-NLS
+ final Label loading = new SmallLabel(constants.loadingList1());
+ h.add(busy);
+ h.add(loading);
- DeferredCommand.addCommand(new Command() {
- public void execute() {
- RepositoryServiceFactory.getService().listRulesInPackage(packageName, new GenericCallback<String[]>() {
- public void onSuccess(String[] list) {
- availableRules = new ListBox();
- availableRules.addItem(constants.pleaseChoose1());
- for (int i = 0; i < list.length; i++) {
- availableRules.addItem(list[i]);
- }
- ruleSelectionCL = new ChangeListener() {
- public void onChange(Widget w) {
- t.setText(availableRules.getItemText(availableRules.getSelectedIndex()));
- }
- };
- availableRules.addChangeListener(ruleSelectionCL);
- availableRules.setSelectedIndex(0);
- h.add(availableRules);
- h.remove(busy);
- h.remove(loading);
- }
- });
- }
- });
+ DeferredCommand.addCommand(new Command() {
+ public void execute() {
+ RepositoryServiceFactory.getService().listRulesInPackage(packageName, new GenericCallback<String[]>() {
+ public void onSuccess(String[] list) {
+ availableRules = (list);
+ final ListBox availableRulesBox = new ListBox();
+ availableRulesBox.addItem(constants.pleaseChoose1());
+ for (int i = 0; i < list.length; i++) {
+ availableRulesBox.addItem(list[i]);
+ }
+ ruleSelectionCL = new ChangeListener() {
+ public void onChange(Widget w) {
+ t.setText(availableRulesBox.getItemText(availableRulesBox.getSelectedIndex()));
+ }
+ };
+ availableRulesBox.addChangeListener(ruleSelectionCL);
+ availableRulesBox.setSelectedIndex(0);
+ h.add(availableRulesBox);
+ h.remove(busy);
+ h.remove(loading);
+ }
+ });
+ }
+ });
- }
- });
- }
+ }
+ });
- Button ok = new Button(constants.OK());
- ok.addClickListener(new ClickListener() {
- public void onClick(Widget w) {
- selected.ruleSelected(t.getText());
- }
- });
- h.add(ok);
- return h;
- }
+ }
+ Button ok = new Button(constants.OK());
+ ok.addClickListener(new ClickListener() {
+ public void onClick(Widget w) {
+ selected.ruleSelected(t.getText());
+ }
+ });
+ h.add(ok);
+ return h;
+ }
+
public static Widget editableCell(final ValueChanged changeEvent, String factType, String fieldName, String initialValue, SuggestionCompletionEngine sce) {
String key = factType + "." + fieldName;
String flType = sce.fieldTypes.get(key);
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -162,7 +162,7 @@
* Used for a simple cache of binary packages to avoid serialization from
* the database - for test scenarios.
*/
- static Map<String, RuleBase> ruleBaseCache = Collections.synchronizedMap( new HashMap<String, RuleBase>() );
+ public static Map<String, RuleBase> ruleBaseCache = Collections.synchronizedMap( new HashMap<String, RuleBase>() );
public RulesRepository getRulesRepository() {
return this.repository;
@@ -774,6 +774,7 @@
data.catRules = item.getCategoryRules();
//System.out.println("Cat Rules: " + data.catRules.toString());
data.description = item.getDescription();
+ data.archived = item.isArchived();
data.name = item.getName();
data.lastModified = item.getLastModified().getTime();
data.dateCreated = item.getCreatedDate().getTime();
@@ -832,6 +833,11 @@
log.info( "USER:" + repository.getSession().getUserID() + " SAVING package [" + data.name + "]" );
PackageItem item = repository.loadPackage( data.name );
+
+ // If package is being unarchived.
+ boolean unarchived = (data.archived == false && item.isArchived() == true);
+ Calendar packageLastModified = item.getLastModified();
+
updateDroolsHeader( data.header,
item );
@@ -851,9 +857,21 @@
if ( data.archived ) {
for ( Iterator<AssetItem> iter = item.getAssets(); iter.hasNext(); ) {
AssetItem assetItem = iter.next();
- assetItem.archiveItem( true );
- assetItem.checkin( data.description );
+ if ( !assetItem.isArchived() ) {
+ assetItem.archiveItem( true );
+ assetItem.checkin( data.description );
+ }
}
+ } else if ( unarchived ) {
+ for ( Iterator<AssetItem> iter = item.getAssets(); iter.hasNext(); ) {
+ AssetItem assetItem = iter.next();
+ // Unarchive the assets archived after the package
+ // ( == at the same time that the package was archived)
+ if ( assetItem.getLastModified().compareTo( packageLastModified ) >= 0 ) {
+ assetItem.archiveItem( false );
+ assetItem.checkin( data.description );
+ }
+ }
}
BRMSSuggestionCompletionLoader loader = new BRMSSuggestionCompletionLoader();
@@ -1797,17 +1815,21 @@
ClassLoader cl = ((InternalRuleBase) this.ruleBaseCache.get( item.getUUID() )).getRootClassLoader();
Thread.currentThread().setContextClassLoader( cl );
- result= runScenario( scenario,
- item,
- cl,
- rb,
- coverage );
+ result = runScenario( scenario,
+ item,
+ cl,
+ rb,
+ coverage );
} catch (Exception e) {
if (e instanceof DetailedSerializableException){
DetailedSerializableException err = (DetailedSerializableException)e;
result = new SingleScenarioResult();
- result.result = new ScenarioRunResult( err.getErrs(),
- null );
+ if (err.getErrs() != null) {
+ result.result = new ScenarioRunResult( err.getErrs(),
+ null );
+ } else {
+ throw err;
+ }
}
} finally {
Thread.currentThread().setContextClassLoader(originalCL);
@@ -2147,12 +2169,14 @@
if ( pkg.containsAsset( "drools" ) ) {
conf = pkg.loadAsset( "drools" );
conf.updateContent( string );
+
conf.checkin( "" );
} else {
conf = pkg.addAsset( "drools",
"" );
conf.updateFormat( "package" );
conf.updateContent( string );
+
conf.checkin( "" );
}
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/BRMSPackageBuilder.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/BRMSPackageBuilder.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/BRMSPackageBuilder.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -116,7 +116,7 @@
byte[] buf = new byte[1024];
int len = 0;
while ( (entry = jis.getNextJarEntry()) != null ) {
- if ( !entry.isDirectory() ) {
+ if ( !entry.isDirectory() && !entry.getName().endsWith( ".java" ) ) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
while ( (len = jis.read( buf )) >= 0 ) {
out.write( buf, 0, len );
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/builder/ContentPackageAssembler.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -22,7 +22,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
-import java.util.jar.JarInputStream;
import org.drools.builder.conf.DefaultPackageNameOption;
import org.drools.compiler.DroolsError;
@@ -301,7 +300,7 @@
}
private void addDrl(String drl) {
- if ("".equals(drl)) {
+ if ( "".equals( drl.trim() ) ) {
return;
}
try {
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FeedServlet.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FeedServlet.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FeedServlet.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -25,6 +25,8 @@
*/
public class FeedServlet extends RepositoryServlet {
+ private static final String VIEW_URL = "viewUrl";
+
@Override
protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
try {
@@ -59,7 +61,7 @@
Iterator<AssetItem> it = pg.assets.iterator();
List<AtomFeed.AtomEntry> entries = new ArrayList<AtomFeed.AtomEntry>();
buildEntries(request, entries, it, status);
- AtomFeed feed = new AtomFeed("Category: " + cat, Calendar.getInstance(), request.getServerName() + cat, request.getServletPath(), request.getRequestURI(), entries, "Guvnor category of items: " + cat);
+ AtomFeed feed = new AtomFeed("Category: " + cat, Calendar.getInstance(), request.getServerName() + cat, request.getParameter(VIEW_URL), request.getRequestURL().toString(), entries, "Guvnor category of items: " + cat);
response.setContentType("application/atom+xml");
response.getOutputStream().print(feed.getAtom());
}
@@ -81,7 +83,7 @@
Iterator<AssetItem> it = pkg.getAssets();
buildEntries(request, entries, it, request.getParameter("status"));
- AtomFeed feed = new AtomFeed("Knowledge package: " + pkg.getName(), pkg.getLastModified(), pkg.getUUID(), request.getServletPath(), request.getRequestURI(), entries, pkg.getDescription());
+ AtomFeed feed = new AtomFeed("Knowledge package: " + pkg.getName(), pkg.getLastModified(), pkg.getUUID(), request.getParameter(VIEW_URL), request.getRequestURL().toString(), entries, pkg.getDescription());
response.setContentType("application/atom+xml");
response.getOutputStream().print(feed.getAtom());
}
@@ -175,10 +177,11 @@
private String checkinComment;
private String format;
+
public AtomEntry(HttpServletRequest req, AssetItem asset) {
this.name = asset.getName();
this.format = asset.getFormat();
- this.webURL = req.getParameter("viewUrl") + "#asset=" + asset.getUUID() + "&nochrome";
+ this.webURL = req.getParameter(VIEW_URL) + "#asset=" + asset.getUUID() + "&nochrome";
this.id = asset.getUUID() + "&version=" + asset.getVersionNumber();
this.updated = ISO8601.format(asset.getLastModified());
this.published = ISO8601.format(asset.getCreatedDate());
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FileManagerUtils.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FileManagerUtils.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/java/org/drools/guvnor/server/files/FileManagerUtils.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -262,6 +262,7 @@
if ( MigrateRepository.needsRuleflowMigration( repository ) ) {
MigrateRepository.migrateRuleflows( repository );
}
+ ServiceImplementation.ruleBaseCache.clear();
} catch ( RepositoryException e ) {
e.printStackTrace();
throw new RulesRepositoryException( e );
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/resources/atom-feed-template.xml
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/resources/atom-feed-template.xml 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/main/resources/atom-feed-template.xml 2009-08-10 15:13:37 UTC (rev 28890)
@@ -24,8 +24,7 @@
<name>@{entry.contributor}</name>
</contributor>
<category term="@{entry.format}" />
- <content type="xhtml" xml:lang="en"
- xml:base="http://diveintomark.org/">
+ <content type="xhtml" xml:lang="en">
<div xmlns="http://www.w3.org/1999/xhtml">
<p>[Description: @{entry.description}]</p>
<p><i>[Note: @{entry.checkinComment}]</i></p>
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/ServiceImplementationTest.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -575,7 +575,50 @@
assertFalse(original.equals(data.lastModified));
assertEquals("ya", data.checkinComment);
}
+
+ public void testArchiveAndUnarchivePackageAndHeader() throws Exception {
+ ServiceImplementation impl = getService();
+ String uuid = impl.createPackage( "testArchiveAndUnarchivePackageAndHeader",
+ "a desc" );
+ PackageConfigData data = impl.loadPackageConfig( uuid );
+ PackageItem it = impl.repository.loadPackageByUUID( uuid );
+ data.archived = true;
+
+ AssetItem rule1 = it.addAsset("rule_1", "");
+ rule1.updateFormat(AssetFormats.DRL);
+ rule1
+ .updateContent("rule 'rule1' \n when \np : Person() \n then \np.setAge(42); \n end");
+ rule1.archiveItem( true );
+ rule1.checkin("");
+ impl.repository.save();
+
+ impl.savePackage( data );
+ data = impl.loadPackageConfig( uuid );
+ it = impl.repository.loadPackage( data.name );
+ assertTrue( data.archived );
+ assertTrue( it.loadAsset( "drools" ).isArchived() );
+ assertTrue( it.loadAsset( "rule_1" ).isArchived() );
+ data.archived = false;
+
+ impl.savePackage( data );
+ data = impl.loadPackageConfig( uuid );
+ it = impl.repository.loadPackage( data.name );
+ assertFalse( data.archived );
+ assertFalse( it.loadAsset( "drools" ).isArchived() );
+ assertTrue( it.loadAsset( "rule_1" ).isArchived() );
+
+ data.archived = true;
+
+ impl.savePackage( data );
+ data = impl.loadPackageConfig( uuid );
+ it = impl.repository.loadPackage( data.name );
+ assertTrue( data.archived );
+ assertTrue( it.loadAsset( "drools" ).isArchived() );
+ assertTrue( it.loadAsset( "rule_1" ).isArchived() );
+
+ }
+
public void testPackageConfSave() throws Exception {
RepositoryService impl = getService();
String uuid = impl.createPackage("testPackageConfSave", "a desc");
@@ -2105,6 +2148,67 @@
}
+
+ public void testRunScenarioWithJarThatHasSourceFiles() throws Exception {
+ ServiceImplementation impl = getService();
+ RulesRepository repo = impl.repository;
+
+ // create our package
+ PackageItem pkg = repo.createPackage("testRunScenarioWithJarThatHasSourceFiles", "");
+ AssetItem model = pkg.addAsset("MyModel", "");
+ model.updateFormat(AssetFormats.MODEL);
+ model.updateBinaryContentAttachment(this.getClass()
+ .getResourceAsStream("/jarWithSourceFiles.jar"));
+ model.checkin("");
+
+ ServiceImplementation.updateDroolsHeader("import org.test.Person; \n import org.test.Banana; \n ", pkg);
+
+ AssetItem asset = pkg.addAsset("testRule", "");
+ asset.updateFormat(AssetFormats.DRL);
+ asset.updateContent("rule 'MyGoodRule' \n dialect 'mvel' \n when \n Person() \n then \n insert( new Banana() ); \n end");
+ asset.checkin("");
+ repo.save();
+
+ Scenario sc = new Scenario();
+ FactData person = new FactData();
+ person.name = "p";
+ person.type = "Person";
+
+
+ sc.fixtures.add(person);
+ sc.fixtures.add(new ExecutionTrace());
+ VerifyRuleFired vr = new VerifyRuleFired("MyGoodRule", 1, null);
+ sc.fixtures.add(vr);
+
+
+ ScenarioRunResult res = null;
+ try {
+ res = impl.runScenario( pkg.getName(),
+ sc ).result;
+ } catch ( ClassFormatError e ) {
+ fail( "Probably failed when loading a source file instead of class file. " + e );
+ }
+ assertEquals(null, res.errors);
+ assertNotNull(res.scenario);
+ assertTrue(vr.wasSuccessful());
+
+
+ res = impl.runScenario(pkg.getName(), sc).result;
+ assertEquals(null, res.errors);
+ assertNotNull(res.scenario);
+ assertTrue(vr.wasSuccessful());
+
+ impl.ruleBaseCache.clear();
+
+ res = impl.runScenario(pkg.getName(), sc).result;
+ assertEquals(null, res.errors);
+ assertNotNull(res.scenario);
+ assertTrue(vr.wasSuccessful());
+
+
+
+
+ }
public void testRunPackageScenarios() throws Exception {
ServiceImplementation impl = getService();
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/builder/ContentPackageAssemblerTest.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -620,8 +620,34 @@
assertEquals(-1, drl.indexOf("garbage"));
}
+
+ public void testBuildPackageWithEmptyHeader() throws Exception {
+ RulesRepository repo = getRepo();
+ //first, setup the package correctly:
+ PackageItem pkg = repo.createPackage( "testBuildPackageWithEmptyHeader",
+ "" );
+ ServiceImplementation.updateDroolsHeader( "\n",
+ pkg );
+ repo.save();
+
+ ContentPackageAssembler asm = null;
+ try {
+ asm = new ContentPackageAssembler( pkg );
+ } catch ( NullPointerException e ) {
+ // Possible cause: Header has only white spaces "\n\t".
+ fail( e.toString() );
+ }
+ String drl = asm.getDRL();
+
+ assertNotNull( drl );
+ assertEquals( "package testBuildPackageWithEmptyHeader",
+ drl.trim() );
+
+ }
+
+
public void testSkipDisabledPackageStuff() throws Exception {
RulesRepository repo = getRepo();
Modified: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java
===================================================================
--- labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java 2009-08-10 13:08:44 UTC (rev 28889)
+++ labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/java/org/drools/guvnor/server/files/MockHTTPRequest.java 2009-08-10 15:13:37 UTC (rev 28890)
@@ -110,8 +110,8 @@
}
public StringBuffer getRequestURL() {
- // TODO Auto-generated method stub
- return null;
+
+ return new StringBuffer("http://foo.com");
}
public String getRequestedSessionId() {
Copied: labs/jbossrules/soa_branches/BRMS-5.0.1/drools-guvnor/src/test/resources/jarWithSourceFiles.jar (from rev 26943, labs/jbossrules/trunk/drools-guvnor/src/test/resources/jarWithSourceFiles.jar)
===================================================================
(Binary files differ)
More information about the jboss-svn-commits
mailing list