You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by to...@apache.org on 2006/08/30 23:39:39 UTC

svn commit: r438648 - in /incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne: ./ CocoaCayenne.xcodeproj/

Author: torehalset
Date: Wed Aug 30 14:39:38 2006
New Revision: 438648

URL: http://svn.apache.org/viewvc?rev=438648&view=rev
Log:
moved class mapping++ from CAYClient to framework

Added:
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m
Modified:
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m
    incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h?rev=438648&r1=438647&r2=438648&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.h Wed Aug 30 14:39:38 2006
@@ -24,6 +24,8 @@
 
 }
 
-- (id) sendMessage:(CAYClientMessage *)message;
+-(void)connect;
+-(id)sendMessage:(CAYClientMessage *)message;
+-(void)updateClassMapping:(NSDictionary *)cm;
 
 @end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m?rev=438648&r1=438647&r2=438648&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYClientConnection.m Wed Aug 30 14:39:38 2006
@@ -28,4 +28,13 @@
 	return nil;
 }
 
+-(void)updateClassMapping:(NSDictionary *)cm
+{
+}
+
+-(void)connect
+{
+	NSLog(@"CAYClientConnection does not implement connect");
+}
+
 @end

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.h?rev=438648&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.h (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.h Wed Aug 30 14:39:38 2006
@@ -0,0 +1,29 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+#import <Cocoa/Cocoa.h>
+
+
+@interface CAYCocoaCayenne : NSObject {
+
+}
+
++(NSMutableDictionary *)classMapping;
+
+@end

Added: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m?rev=438648&view=auto
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m (added)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYCocoaCayenne.m Wed Aug 30 14:39:38 2006
@@ -0,0 +1,54 @@
+/*****************************************************************
+ *   Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ ****************************************************************/
+
+#import "CAYCocoaCayenne.h"
+
+
+@implementation CAYCocoaCayenne
+
++(NSMutableDictionary *)classMapping;
+{
+    NSMutableDictionary *classMapping = [NSMutableDictionary dictionary];
+    //[classMapping setObject:@"CAYRemoteSession" forKey:@"org.objectstyle.cayenne.remote.RemoteSession"];
+    [classMapping setObject:@"CAYNamedQuery" forKey:@"org.objectstyle.cayenne.query.NamedQuery"];
+    [classMapping setObject:@"CAYRelationshipQuery" forKey:@"org.objectstyle.cayenne.query.RelationshipQuery"];
+    [classMapping setObject:@"CAYGenericResponse" forKey:@"org.objectstyle.cayenne.util.GenericResponse"];
+    [classMapping setObject:@"CAYObjectId" forKey:@"org.objectstyle.cayenne.ObjectId"];
+    [classMapping setObject:@"CAYObjEntity" forKey:@"org.objectstyle.cayenne.map.ObjEntity"];
+    [classMapping setObject:@"CAYClientObjRelationship" forKey:@"org.objectstyle.cayenne.map.ClientObjRelationship"];
+    [classMapping setObject:@"CAYEntityResolver" forKey:@"org.objectstyle.cayenne.map.EntityResolver"];
+    [classMapping setObject:@"CAYDataMap" forKey:@"org.objectstyle.cayenne.map.DataMap"];
+    
+    // message
+    [classMapping setObject:@"CAYBootstrapMessage" forKey:@"org.objectstyle.cayenne.remote.BootstrapMessage"];
+    [classMapping setObject:@"CAYQueryMessage" forKey:@"org.objectstyle.cayenne.remote.QueryMessage"];
+    [classMapping setObject:@"CAYSyncMessage" forKey:@"org.objectstyle.cayenne.remote.SyncMessage"];
+    
+    // graph
+    // abstract [classMapping setObject:@"CAYNodeDiff" forKey:@"org.objectstyle.cayenne.graph.NodeDiff"];
+    [classMapping setObject:@"CAYCompoundDiff" forKey:@"org.objectstyle.cayenne.graph.CompoundDiff"];
+    [classMapping setObject:@"CAYNodeCreateOperation" forKey:@"org.objectstyle.cayenne.graph.NodeCreateOperation"];
+    [classMapping setObject:@"CAYNodePropertyChangeOperation" forKey:@"org.objectstyle.cayenne.graph.NodePropertyChangeOperation"];
+    [classMapping setObject:@"CAYNodeDeleteOperation" forKey:@"org.objectstyle.cayenne.graph.NodeDeleteOperation"];
+    [classMapping setObject:@"CAYNodeIdChangeOperation" forKey:@"org.objectstyle.cayenne.graph.NodeIdChangeOperation"];
+    
+    return classMapping;
+}
+
+@end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m?rev=438648&r1=438647&r2=438648&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYEntityResolver.m Wed Aug 30 14:39:38 2006
@@ -20,12 +20,24 @@
 #import "CAYEntityResolver.h"
 #import "CAYDataMap.h"
 #import "CAYObjEntity.h"
+#import "CAYCocoaCayenne.h"
+#import <HessianObjC/BBSHessianObjC.h>
 
 @implementation CAYEntityResolver
 
+-(id)init
+{
+    self = [super init];
+    if(self)
+    {
+        [self setClassMapping:[CAYCocoaCayenne classMapping]];
+    }
+    return self;
+}
+
 -(id)initWithCoder:(NSCoder*)coder
 {
-	[super init];
+	[self init];
 	[self setMaps:[coder decodeObjectForKey:@"maps"]];
 	return self;
 }
@@ -61,7 +73,8 @@
 
 -(void)updateClassMapping
 {
-    NSMutableDictionary *cm = [NSMutableDictionary dictionary];
+    //NSMutableDictionary *cm = [NSMutableDictionary dictionary];
+    NSMutableDictionary *cm = classMapping;
     
     // TODO: handle more than one map?
     CAYDataMap *dataMap = [[self maps] objectAtIndex:0];
@@ -86,7 +99,11 @@
         }
     }
     
-    [self setClassMapping:cm];
+    // hack to update hessian proxy with latest class mapping. 
+    // TODO: move to hessian connection 
+    //[BBSHessianProxy setClassMapping:[self classMapping]];
+
+    //[self setClassMapping:cm];
 }
 
 -(CAYObjEntity *)objEntityForClass:(Class)cl

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h?rev=438648&r1=438647&r2=438648&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.h Wed Aug 30 14:39:38 2006
@@ -25,6 +25,8 @@
 	BBSHessianProxy *proxy;
 }
 
+-(id)initWithUrl:(NSURL *)url;
+
 -(void) setProxy:(BBSHessianProxy *)p;
 -(BBSHessianProxy *) proxy;
 

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m?rev=438648&r1=438647&r2=438648&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYHessianConnection.m Wed Aug 30 14:39:38 2006
@@ -19,9 +19,40 @@
 
 #import "CAYHessianConnection.h"
 #import "CAYClientMessage.h"
+#import "CAYCocoaCayenne.h"
 
 @implementation CAYHessianConnection
 
+-(id)init
+{
+    self = [super init];
+    if(self)
+    {
+        [self updateClassMapping:[CAYCocoaCayenne classMapping]];
+    }
+    return self;
+}
+
+-(id)initWithUrl:(NSURL *)url
+{
+    [self init];
+    BBSHessianProxy *px = [[BBSHessianProxy alloc] initWithUrl:url];
+    [self setProxy:px];
+    [px release];
+    return self;
+}
+
+-(void)connect
+{
+    id result1 = [[self proxy] callSynchronous:@"establishSession" withParameters:nil];
+    NSLog(@"establishSession result: %@", result1);
+}
+
+-(void)updateClassMapping:(NSDictionary *)cm
+{
+    [BBSHessianProxy setClassMapping:cm];
+}
+
 - (id) sendMessage:(CAYClientMessage *)message
 {
 	NSArray *parameters = [NSArray arrayWithObject:message];
@@ -43,7 +74,7 @@
 
 -(void)dealloc
 {
-	[proxy release];
+	[self setProxy:nil];
 	[super dealloc];
 }
 

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h?rev=438648&r1=438647&r2=438648&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.h Wed Aug 30 14:39:38 2006
@@ -46,4 +46,6 @@
 -(void)deleteObject:(CAYPersistentObject *)o;
 -(void)registerNewObject:(CAYPersistentObject *)o;
 
+-(void)updateClassMapping;
+
 @end

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m?rev=438648&r1=438647&r2=438648&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CAYObjectContext.m Wed Aug 30 14:39:38 2006
@@ -32,6 +32,8 @@
 #import "CAYToOneFault.h"
 #import "CAYNodeCreateOperation.h"
 #import "CAYNodeDeleteOperation.h"
+#import "CAYCocoaCayenne.h"
+#import "CAYBootstrapMessage.h"
 
 @implementation CAYObjectContext
 
@@ -116,6 +118,27 @@
 	[c retain];
 	[connection release];
 	connection = c;
+    
+    // TODO: move the rest of this method out of the setter?
+    // send bootstrap message to get the EntityResolver
+    CAYBootstrapMessage *bootstrapMsg = [[CAYBootstrapMessage alloc] init];
+    id bootresult = [[self connection] sendMessage:bootstrapMsg];
+    if([bootresult isKindOfClass:[CAYEntityResolver class]])
+    {
+        NSLog(@" ****** got an CATEntityResolver");
+        CAYEntityResolver *resolver = (CAYEntityResolver *)bootresult;
+        [self setEntityResolver:resolver];
+    }
+    else
+    {
+        NSLog(@"ERROR: bootstrap answer not of type CATEntityResolver, but %@", [bootresult class]);
+    }
+    [bootstrapMsg release];
+    
+    // update class mapping based on EntityResolver
+    //[[self entityResolver] updateClassMapping];
+    //[[self connection] updateClassMapping];
+    [self updateClassMapping];
 }
 
 -(CAYClientConnection *)connection
@@ -203,6 +226,23 @@
     // cleanup and remove
     [o setObjectContext:nil];
     [o setObjectId:nil];
+}
+
+-(void)updateClassMapping
+{
+    if([self entityResolver])
+    {
+        // full class mapping for cayenne classes and all entities
+        NSLog(@"update class mapping from entity resolver");
+        [[self entityResolver] updateClassMapping];
+        [[self connection] updateClassMapping:[[self entityResolver] classMapping]];
+    }
+    else
+    {
+        // basic class mapping for the cayenne classes
+        NSLog(@"update cayenne class");
+        [[self connection] updateClassMapping:[CAYCocoaCayenne classMapping]];
+    }
 }
 
 -(void)dealloc

Modified: incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj
URL: http://svn.apache.org/viewvc/incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj?rev=438648&r1=438647&r2=438648&view=diff
==============================================================================
--- incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj (original)
+++ incubator/cayenne/sandbox/CocoaCayenne/CocoaCayenne/CocoaCayenne.xcodeproj/project.pbxproj Wed Aug 30 14:39:38 2006
@@ -7,7 +7,7 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
-		4421E61E0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4421E61C0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h */; };
+		4421E61E0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4421E61C0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		4421E61F0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4421E61D0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.m */; };
 		442607380AA4B8DE00F0A01F /* CAYNodeCreateOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 442607360AA4B8DE00F0A01F /* CAYNodeCreateOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		442607390AA4B8DE00F0A01F /* CAYNodeCreateOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 442607370AA4B8DE00F0A01F /* CAYNodeCreateOperation.m */; };
@@ -61,6 +61,8 @@
 		44463DCA0AA37577006BAA58 /* CAYToOneFault.m in Sources */ = {isa = PBXBuildFile; fileRef = 44463D9A0AA37577006BAA58 /* CAYToOneFault.m */; };
 		4448AA430AA4C55F002C2FA7 /* CAYNodeDeleteOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4448AA410AA4C55F002C2FA7 /* CAYNodeDeleteOperation.h */; settings = {ATTRIBUTES = (Public, ); }; };
 		4448AA440AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4448AA420AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m */; };
+		444DA8050AA61E54006E1768 /* CAYCocoaCayenne.h in Headers */ = {isa = PBXBuildFile; fileRef = 444DA8030AA61E54006E1768 /* CAYCocoaCayenne.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		444DA8060AA61E54006E1768 /* CAYCocoaCayenne.m in Sources */ = {isa = PBXBuildFile; fileRef = 444DA8040AA61E54006E1768 /* CAYCocoaCayenne.m */; };
 		44FE798F0AA3790C0040BB78 /* HessianObjC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 44FE798E0AA3790C0040BB78 /* HessianObjC.framework */; };
 		8DC2EF530486A6940098B216 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C1666FE841158C02AAC07 /* InfoPlist.strings */; };
 		8DC2EF570486A6940098B216 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7B1FEA5585E11CA2CBB /* Cocoa.framework */; };
@@ -126,6 +128,8 @@
 		44463D9A0AA37577006BAA58 /* CAYToOneFault.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = CAYToOneFault.m; sourceTree = "<group>"; };
 		4448AA410AA4C55F002C2FA7 /* CAYNodeDeleteOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAYNodeDeleteOperation.h; sourceTree = "<group>"; };
 		4448AA420AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAYNodeDeleteOperation.m; sourceTree = "<group>"; };
+		444DA8030AA61E54006E1768 /* CAYCocoaCayenne.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAYCocoaCayenne.h; sourceTree = "<group>"; };
+		444DA8040AA61E54006E1768 /* CAYCocoaCayenne.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CAYCocoaCayenne.m; sourceTree = "<group>"; };
 		44FE798E0AA3790C0040BB78 /* HessianObjC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = HessianObjC.framework; path = /Library/Frameworks/HessianObjC.framework; sourceTree = "<absolute>"; };
 		8DC2EF5A0486A6940098B216 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
 		8DC2EF5B0486A6940098B216 /* CocoaCayenne.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CocoaCayenne.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -187,12 +191,11 @@
 		08FB77AEFE84172EC02AAC07 /* Classes */ = {
 			isa = PBXGroup;
 			children = (
+				444DA8AC0AA62727006E1768 /* connection */,
 				44463DCB0AA3757F006BAA58 /* fault */,
 				44463DCC0AA37586006BAA58 /* message */,
 				44463DCD0AA37590006BAA58 /* graph */,
 				44463DCE0AA375F8006BAA58 /* query */,
-				44463D6D0AA37577006BAA58 /* CAYClientConnection.h */,
-				44463D6E0AA37577006BAA58 /* CAYClientConnection.m */,
 				44463D710AA37577006BAA58 /* CAYClientObjRelationship.h */,
 				44463D720AA37577006BAA58 /* CAYClientObjRelationship.m */,
 				44463D750AA37577006BAA58 /* CAYDataMap.h */,
@@ -201,8 +204,6 @@
 				44463D780AA37577006BAA58 /* CAYEntityResolver.m */,
 				44463D7B0AA37577006BAA58 /* CAYGenericResponse.h */,
 				44463D7C0AA37577006BAA58 /* CAYGenericResponse.m */,
-				44463D7D0AA37577006BAA58 /* CAYHessianConnection.h */,
-				44463D7E0AA37577006BAA58 /* CAYHessianConnection.m */,
 				44463D850AA37577006BAA58 /* CAYObjectContext.h */,
 				44463D860AA37577006BAA58 /* CAYObjectContext.m */,
 				44463D870AA37577006BAA58 /* CAYObjectId.h */,
@@ -213,6 +214,8 @@
 				44463D8C0AA37577006BAA58 /* CAYPersistentObject.m */,
 				44463D930AA37577006BAA58 /* CAYRemoteSession.h */,
 				44463D940AA37577006BAA58 /* CAYRemoteSession.m */,
+				444DA8030AA61E54006E1768 /* CAYCocoaCayenne.h */,
+				444DA8040AA61E54006E1768 /* CAYCocoaCayenne.m */,
 			);
 			name = Classes;
 			sourceTree = "<group>";
@@ -303,6 +306,17 @@
 			name = query;
 			sourceTree = "<group>";
 		};
+		444DA8AC0AA62727006E1768 /* connection */ = {
+			isa = PBXGroup;
+			children = (
+				44463D6D0AA37577006BAA58 /* CAYClientConnection.h */,
+				44463D6E0AA37577006BAA58 /* CAYClientConnection.m */,
+				44463D7D0AA37577006BAA58 /* CAYHessianConnection.h */,
+				44463D7E0AA37577006BAA58 /* CAYHessianConnection.m */,
+			);
+			name = connection;
+			sourceTree = "<group>";
+		};
 /* End PBXGroup section */
 
 /* Begin PBXHeadersBuildPhase section */
@@ -337,6 +351,7 @@
 				442607380AA4B8DE00F0A01F /* CAYNodeCreateOperation.h in Headers */,
 				4448AA430AA4C55F002C2FA7 /* CAYNodeDeleteOperation.h in Headers */,
 				4421E61E0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.h in Headers */,
+				444DA8050AA61E54006E1768 /* CAYCocoaCayenne.h in Headers */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
@@ -421,6 +436,7 @@
 				442607390AA4B8DE00F0A01F /* CAYNodeCreateOperation.m in Sources */,
 				4448AA440AA4C55F002C2FA7 /* CAYNodeDeleteOperation.m in Sources */,
 				4421E61F0AA4EE2D00FBE975 /* CAYNodeIdChangeOperation.m in Sources */,
+				444DA8060AA61E54006E1768 /* CAYCocoaCayenne.m in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};