[jboss-svn-commits] JBL Code SVN: r9620 - in labs/jbossrules/trunk: drools-compiler/src/test/java/org/drools/integrationtests and 3 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Feb 19 16:43:17 EST 2007
Author: tirelli
Date: 2007-02-19 16:43:17 -0500 (Mon, 19 Feb 2007)
New Revision: 9620
Added:
labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_logicalAssertions3.drl
Modified:
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java
labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java
labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java
Log:
JBRULES-614: fixing equals method generation for shadow proxy, to fix TMS problem
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java 2007-02-19 21:03:17 UTC (rev 9619)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/Alarm.java 2007-02-19 21:43:17 UTC (rev 9620)
@@ -49,4 +49,18 @@
return true;
}
+ /**
+ * @return the message
+ */
+ public String getMessage() {
+ return message;
+ }
+
+ /**
+ * @param message the message to set
+ */
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
}
Modified: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2007-02-19 21:03:17 UTC (rev 9619)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/integrationtests/IntegrationCases.java 2007-02-19 21:43:17 UTC (rev 9620)
@@ -2264,7 +2264,7 @@
workingMemory.getObjects().get( 1 ) );
}
- public void FIXME_testLogicalAssertions() throws Exception {
+ public void testLogicalAssertions() throws Exception {
final PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LogicalAssertions.drl" ) ) );
final Package pkg = builder.getPackage();
@@ -3910,4 +3910,55 @@
}
}
+ public void testLogicalAssertions3() throws Exception {
+ final PackageBuilder builder = new PackageBuilder();
+ builder.addPackageFromDrl( new InputStreamReader( getClass().getResourceAsStream( "test_LogicalAssertions3.drl" ) ) );
+ final Package pkg = builder.getPackage();
+
+ final RuleBase ruleBase = getRuleBase();
+ ruleBase.addPackage( pkg );
+ final WorkingMemory workingMemory = ruleBase.newWorkingMemory();
+
+ final List list = new ArrayList();
+ workingMemory.setGlobal( "events",
+ list );
+
+ // asserting the sensor object
+ final Sensor sensor = new Sensor( 150,
+ 100 );
+ final FactHandle sensorHandle = workingMemory.assertObject( sensor );
+
+ workingMemory.fireAllRules();
+
+ // alarm must sound
+ assertEquals( 2,
+ list.size() );
+ assertEquals( 2,
+ workingMemory.getObjects().size() );
+
+ // modifying sensor
+ sensor.setTemperature( 125 );
+ workingMemory.modifyObject( sensorHandle, sensor );
+ workingMemory.fireAllRules();
+
+ // alarm must continue to sound
+ assertEquals( 4,
+ list.size() );
+ assertEquals( 2,
+ workingMemory.getObjects().size() );
+
+
+ // modifying sensor
+ sensor.setTemperature( 80 );
+ workingMemory.modifyObject( sensorHandle, sensor );
+ workingMemory.fireAllRules();
+
+ // no alarms anymore
+ assertEquals( 4,
+ list.size() );
+ assertEquals( 1,
+ workingMemory.getObjects().size() );
+
+ }
+
}
Added: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_logicalAssertions3.drl
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_logicalAssertions3.drl (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_logicalAssertions3.drl 2007-02-19 21:43:17 UTC (rev 9620)
@@ -0,0 +1,20 @@
+package org.drools
+
+global java.util.List events;
+
+rule "#1: hot"
+when
+ $s : Sensor( temperature > 100 )
+then
+ events.add( "It is hot: " + $s );
+ System.out.println("It is hot: " + $s);
+ assertLogical(new Alarm("FIRE"));
+end
+
+rule "#2: print out"
+when
+ Alarm( message == "FIRE" )
+then
+ events.add( "Fire alarm is ON" );
+ System.out.println("Fire alarm is ON");
+end
\ No newline at end of file
Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/resources/org/drools/integrationtests/test_logicalAssertions3.drl
___________________________________________________________________
Name: svn:executable
+ *
Name: svn:eol-style
+ native
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java 2007-02-19 21:03:17 UTC (rev 9619)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java 2007-02-19 21:43:17 UTC (rev 9620)
@@ -689,7 +689,7 @@
mv.visitVarInsn( Opcodes.ALOAD,
1 );
mv.visitTypeInsn( Opcodes.INSTANCEOF,
- className );
+ Type.getInternalName( clazz ) );
Label l4 = new Label();
mv.visitJumpInsn( Opcodes.IFNE,
l4 );
@@ -704,7 +704,7 @@
mv.visitVarInsn( Opcodes.ALOAD,
1 );
mv.visitTypeInsn( Opcodes.CHECKCAST,
- className );
+ Type.getInternalName( clazz ) );
mv.visitVarInsn( Opcodes.ASTORE,
2 );
@@ -785,12 +785,12 @@
2 );
if ( clazz.isInterface() ) {
mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
- className,
+ Type.getInternalName( clazz ),
method.getName(),
Type.getMethodDescriptor( method ) );
} else {
mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
- className,
+ Type.getInternalName( clazz ),
method.getName(),
Type.getMethodDescriptor( method ) );
}
@@ -835,12 +835,12 @@
2 );
if ( clazz.isInterface() ) {
mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
- className,
+ Type.getInternalName( clazz ),
method.getName(),
Type.getMethodDescriptor( method ) );
} else {
mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
- className,
+ Type.getInternalName( clazz ),
method.getName(),
Type.getMethodDescriptor( method ) );
}
@@ -866,12 +866,12 @@
2 );
if ( clazz.isInterface() ) {
mv.visitMethodInsn( Opcodes.INVOKEINTERFACE,
- className,
+ Type.getInternalName( clazz ),
method.getName(),
Type.getMethodDescriptor( method ) );
} else {
mv.visitMethodInsn( Opcodes.INVOKEVIRTUAL,
- className,
+ Type.getInternalName( clazz ),
method.getName(),
Type.getMethodDescriptor( method ) );
}
@@ -923,7 +923,7 @@
lastLabel,
1 );
mv.visitLocalVariable( "other",
- "L" + className + ";",
+ Type.getDescriptor( clazz ),
null,
l0,
lastLabel,
Modified: labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java 2007-02-19 21:03:17 UTC (rev 9619)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java 2007-02-19 21:43:17 UTC (rev 9620)
@@ -37,6 +37,10 @@
Assert.assertEquals( originalPrice,
cheeseProxy.getPrice() );
Assert.assertSame( cheese, ((ShadowProxy)cheeseProxy).getShadowedObject() );
+
+ // proxy must recongnize the original object on equals()/hashcode() calls
+ //Assert.assertEquals( cheeseProxy.hashCode(), cheese.hashCode() );
+ Assert.assertEquals( cheeseProxy, cheese );
// changing original values
final String actualType = "rotten stilton";
More information about the jboss-svn-commits
mailing list