[jboss-svn-commits] JBL Code SVN: r7058 - in labs/jbossrules/trunk/drools-core/src: main/java/org/drools/base main/java/org/drools/spi test/java/org/drools/base

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Oct 23 21:20:16 EDT 2006


Author: tirelli
Date: 2006-10-23 21:19:58 -0400 (Mon, 23 Oct 2006)
New Revision: 7058

Modified:
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxy.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java
   labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
   labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java
Log:
Fixing integration tests

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxy.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxy.java	2006-10-24 01:02:26 UTC (rev 7057)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxy.java	2006-10-24 01:19:58 UTC (rev 7058)
@@ -22,5 +22,7 @@
 public interface ShadowProxy {
 
     public void updateProxy();
+    
+    public Object getShadowedObject();
 
 }

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	2006-10-24 01:02:26 UTC (rev 7057)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ShadowProxyFactory.java	2006-10-24 01:19:58 UTC (rev 7058)
@@ -42,7 +42,7 @@
 
     private static final String FIELD_SET_FLAG      = "IsSet";
 
-    private static final String DELEGATE_FIELD_NAME = "__delegate";
+    private static final String DELEGATE_FIELD_NAME = "delegate";
 
     public static Class getProxy(final Class clazz) {
         try {
@@ -101,6 +101,15 @@
                     Type.getDescriptor( clazz ),
                     cw );
 
+        Method getShadowed = ShadowProxy.class.getDeclaredMethod( "getShadowedObject",
+                                                                  new Class[]{} );
+        buildSimpleGetMethod( ShadowProxyFactory.DELEGATE_FIELD_NAME,
+                              clazz,
+                              getShadowed,
+                              className,
+                              clazz,
+                              cw );
+
         final Map fieldTypes = new HashMap();
         final Method[] methods = clazz.getMethods();
         for ( int i = 0; i < methods.length; i++ ) {
@@ -176,7 +185,6 @@
 
                     buildSimpleGetMethod( /*FIELD_NAME_PREFIX +*/fieldName,
                                           methods[i].getReturnType(),
-                                          /*FIELD_NAME_PREFIX +*/fieldName + ShadowProxyFactory.FIELD_SET_FLAG,
                                           methods[i],
                                           className,
                                           clazz,
@@ -445,10 +453,10 @@
         final Class[] exceptionTypes = method.getExceptionTypes();
         final String[] exceptions = getExceptionArrayAsString( exceptionTypes );
         final MethodVisitor mv = cw.visitMethod( Opcodes.ACC_PUBLIC,
-                                           method.getName(),
-                                           Type.getMethodDescriptor( method ),
-                                           null,
-                                           exceptions );
+                                                 method.getName(),
+                                                 Type.getMethodDescriptor( method ),
+                                                 null,
+                                                 exceptions );
         mv.visitCode();
 
         // if ( ! _fieldIsSet ) {
@@ -537,19 +545,19 @@
      */
     protected static void buildSimpleGetMethod(final String fieldName,
                                                final Class fieldType,
-                                               final String fieldFlag,
                                                final Method method,
                                                final String className,
                                                final Class clazz,
                                                final ClassWriter cw) {
+
+        final Class[] exceptionTypes = method.getExceptionTypes();
+        String[] exceptions = getExceptionArrayAsString( exceptionTypes );
         // method signature 
-        final Class[] exceptionTypes = method.getExceptionTypes();
-        final String[] exceptions = getExceptionArrayAsString( exceptionTypes );
         final MethodVisitor mv = cw.visitMethod( Opcodes.ACC_PUBLIC,
-                                           method.getName(),
-                                           Type.getMethodDescriptor( method ),
-                                           null,
-                                           exceptions );
+                                                 method.getName(),
+                                                 Type.getMethodDescriptor( method ),
+                                                 null,
+                                                 exceptions );
         mv.visitCode();
 
         // return __field;
@@ -583,11 +591,11 @@
                                                       final String className,
                                                       final ClassWriter cw) {
         final MethodVisitor mv = cw.visitMethod( Opcodes.ACC_PUBLIC,
-                                           ShadowProxyFactory.UPDATE_PROXY,
-                                           Type.getMethodDescriptor( Type.VOID_TYPE,
-                                                                     new Type[]{} ),
-                                           null,
-                                           null );
+                                                 ShadowProxyFactory.UPDATE_PROXY,
+                                                 Type.getMethodDescriptor( Type.VOID_TYPE,
+                                                                           new Type[]{} ),
+                                                 null,
+                                                 null );
         mv.visitCode();
         final Label l0 = new Label();
         mv.visitLabel( l0 );
@@ -645,11 +653,11 @@
                                                  final String className,
                                                  final ClassWriter cw) {
         final MethodVisitor mv = cw.visitMethod( Opcodes.ACC_PUBLIC,
-                                           ShadowProxyFactory.UPDATE_PROXY,
-                                           Type.getMethodDescriptor( Type.VOID_TYPE,
-                                                                     new Type[]{} ),
-                                           null,
-                                           null );
+                                                 ShadowProxyFactory.UPDATE_PROXY,
+                                                 Type.getMethodDescriptor( Type.VOID_TYPE,
+                                                                           new Type[]{} ),
+                                                 null,
+                                                 null );
         mv.visitCode();
         final Label l0 = new Label();
         mv.visitLabel( l0 );
@@ -713,10 +721,10 @@
         // creating method visitor
         final String[] exceptions = getExceptionArrayAsString( method.getExceptionTypes() );
         final MethodVisitor mv = cw.visitMethod( Opcodes.ACC_PUBLIC,
-                                           method.getName(),
-                                           Type.getMethodDescriptor( method ),
-                                           null,
-                                           exceptions );
+                                                 method.getName(),
+                                                 Type.getMethodDescriptor( method ),
+                                                 null,
+                                                 exceptions );
         mv.visitCode();
 
         // return this.delegate.method(...);

Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java	2006-10-24 01:02:26 UTC (rev 7057)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/spi/ColumnExtractor.java	2006-10-24 01:19:58 UTC (rev 7058)
@@ -4,6 +4,7 @@
 
 import org.drools.RuntimeDroolsException;
 import org.drools.base.ClassObjectType;
+import org.drools.base.ShadowProxy;
 import org.drools.base.ValueType;
 import org.drools.facttemplates.Fact;
 
@@ -38,7 +39,7 @@
     }
 
     public Object getValue(final Object object) {
-        return object;
+        return ( object instanceof ShadowProxy ) ? ((ShadowProxy)object).getShadowedObject() : object;
     }
 
     public ObjectType getObjectType() {

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	2006-10-24 01:02:26 UTC (rev 7057)
+++ labs/jbossrules/trunk/drools-core/src/test/java/org/drools/base/ShadowProxyFactoryTest.java	2006-10-24 01:19:58 UTC (rev 7058)
@@ -36,6 +36,7 @@
                                  cheeseProxy.getType() );
             Assert.assertEquals( originalPrice,
                                  cheeseProxy.getPrice() );
+            Assert.assertSame( cheese, ((ShadowProxy)cheeseProxy).getShadowedObject() );
 
             // changing original values
             final String actualType = "rotten stilton";
@@ -92,6 +93,7 @@
                                  cheeseProxy.getType() );
             Assert.assertEquals( originalPrice,
                                  cheeseProxy.getPrice() );
+            Assert.assertSame( cheese, ((ShadowProxy)cheeseProxy).getShadowedObject() );
 
             // changing original values
             final String actualType = "rotten stilton";
@@ -143,6 +145,7 @@
             // proxy is proxying the values
             Assert.assertEquals( list,
                                  listProxy );
+            Assert.assertSame( list, ((ShadowProxy)listProxy).getShadowedObject() );
 
         } catch ( final Exception e ) {
             fail( "Error: " + e.getMessage() );




More information about the jboss-svn-commits mailing list