You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by an...@apache.org on 2009/04/15 17:52:36 UTC

svn commit: r765247 - in /cayenne/main/trunk: docs/doc/src/main/resources/ framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/ framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/ framew...

Author: andrey
Date: Wed Apr 15 15:52:36 2009
New Revision: 765247

URL: http://svn.apache.org/viewvc?rev=765247&view=rev
Log:
CAY-979 ROP client serialization mechanism dependencies
Fix & tests update & release notes

Removed:
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/ServerAbstractQueryDeserializer.java
Modified:
    cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/ServerSerializerFactory.java
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java

Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=765247&r1=765246&r2=765247&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Wed Apr 15 15:52:36 2009
@@ -38,6 +38,7 @@
 
 CAY-940 CayenneModeler fails on load of existing project file or upon creation of new project on IBM's Java 1.6.0 SDK on 32-bit ppc
 CAY-947 Database Schema Migration should sort tokens
+CAY-979 ROP client serialization mechanism dependencies
 CAY-1139 EJBQL condition translation - must track the type of condition
 CAY-1143 CayenneModeler 'Import DataMap' function error
 CAY-1144 EJBQL mixed GROUP BY clause is generated incorrectly

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java?rev=765247&r1=765246&r2=765247&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/query/BaseQueryMetadata.java Wed Apr 15 15:52:36 2009
@@ -98,6 +98,16 @@
             if (root != null) {
                 if (root instanceof Class) {
                     entity = resolver.lookupObjEntity((Class<?>) root);
+                    if (entity == null) { //entity not found, try to resolve it with client resolver
+                        EntityResolver clientResolver = resolver.getClientEntityResolver();
+                        if (clientResolver != resolver) {
+                            ObjEntity clientEntity = clientResolver.lookupObjEntity((Class<?>) root);
+                            
+                            if (clientEntity != null) {
+                                entity = resolver.getObjEntity(clientEntity.getName());
+                            }
+                        }
+                    }
 
                     if (entity != null) {
                         this.dbEntity = entity.getDbEntity();
@@ -138,6 +148,7 @@
 
             this.lastRoot = root;
             this.lastEntityResolver = resolver;
+            
             return true;
         }
 
@@ -324,6 +335,7 @@
     /**
      * @deprecated since 3.0 {@link #getCacheStrategy()} replaces this method.
      */
+    @Deprecated
     public String getCachePolicy() {
         if (cacheStrategy == null) {
             return QueryMetadata.CACHE_POLICY_DEFAULT;
@@ -350,6 +362,7 @@
      * @deprecated since 3.0 {@link #setCacheStrategy(QueryCacheStrategy)} replaces this
      *             method.
      */
+    @Deprecated
     void setCachePolicy(String policy) {
         if (policy == null) {
             cacheStrategy = null;
@@ -428,6 +441,7 @@
     /**
      * @deprecated since 3.0
      */
+    @Deprecated
     public int getFetchStartIndex() {
         return getFetchOffset();
     }
@@ -439,6 +453,7 @@
     /**
      * @deprecated since 3.0. Inheritance resolving is not optional anymore.
      */
+    @Deprecated
     public boolean isResolvingInherited() {
         return true;
     }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/ServerSerializerFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/ServerSerializerFactory.java?rev=765247&r1=765246&r2=765247&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/ServerSerializerFactory.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/remote/hessian/service/ServerSerializerFactory.java Wed Apr 15 15:52:36 2009
@@ -19,12 +19,7 @@
 
 package org.apache.cayenne.remote.hessian.service;
 
-import java.util.HashMap;
-import java.util.Map;
-
 import org.apache.cayenne.DataRow;
-import org.apache.cayenne.map.EntityResolver;
-import org.apache.cayenne.query.AbstractQuery;
 import org.apache.cayenne.util.PersistentObjectList;
 
 import com.caucho.hessian.io.AbstractSerializerFactory;
@@ -38,23 +33,14 @@
  * @since 1.2
  */
 class ServerSerializerFactory extends AbstractSerializerFactory {
-
-    private EntityResolver serverResolver;
-
     private ServerPersistentObjectListSerializer persistentObjectListSerializer;
     private ServerDataRowSerializer dataRowSerilaizer;
-    private Map<Class, Deserializer> deserializers;
 
     ServerSerializerFactory() {
         this.persistentObjectListSerializer = new ServerPersistentObjectListSerializer();
         this.dataRowSerilaizer = new ServerDataRowSerializer();
     }
 
-    // this method is used by HessianCOnfig to inject resolver
-    void setEntityResolver(EntityResolver resolver) {
-        this.serverResolver = resolver;
-    }
-
     @Override
     public Serializer getSerializer(Class cl) throws HessianProtocolException {
 
@@ -70,30 +56,6 @@
 
     @Override
     public Deserializer getDeserializer(Class cl) throws HessianProtocolException {
-        Deserializer deserializer = null;
-
-        if (AbstractQuery.class.isAssignableFrom(cl)) {
-
-            synchronized (this) {
-
-                if (deserializers != null) {
-                    deserializer = deserializers.get(cl);
-                }
-
-                if (deserializer == null) {
-                    deserializer = new ServerAbstractQueryDeserializer(cl, serverResolver
-                            .getClientEntityResolver());
-
-                    if (deserializers == null) {
-                        deserializers = new HashMap<Class, Deserializer>();
-                    }
-
-                    deserializers.put(cl, deserializer);
-                }
-            }
-
-        }
-
-        return deserializer;
+        return null;
     }
 }

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java?rev=765247&r1=765246&r2=765247&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/remote/RemoteCayenneCase.java Wed Apr 15 15:52:36 2009
@@ -35,6 +35,21 @@
     
     protected DataContext parentDataContext;
     
+    /**
+     * Used serialization policy. Per CAY-979 we're testing on all policies
+     */
+    protected int serializationPolicy;
+    
+    @Override
+    public void runBare() throws Throwable {
+        serializationPolicy = LocalConnection.HESSIAN_SERIALIZATION;
+        super.runBare();
+        serializationPolicy = LocalConnection.JAVA_SERIALIZATION;
+        super.runBare();
+        serializationPolicy = LocalConnection.NO_SERIALIZATION;
+        super.runBare();
+    }
+    
     @Override
     public void setUp() throws Exception {
         parentDataContext = createDataContext();
@@ -45,7 +60,7 @@
         ClientServerChannel clientServerChannel = new ClientServerChannel(parentDataContext);
         UnitLocalConnection connection = new UnitLocalConnection(
                 clientServerChannel,
-                LocalConnection.HESSIAN_SERIALIZATION);
+                serializationPolicy);
         ClientChannel channel = new ClientChannel(connection);
         return new CayenneContext(channel, true, true);
     }