]> err.no Git - sope/commitdiff
started support for non-userspecific server defaults
authorhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 21 Sep 2004 13:50:21 +0000 (13:50 +0000)
committerhelge <helge@e4a50df8-12e2-0310-a44c-efbce7f8a7e3>
Tue, 21 Sep 2004 13:50:21 +0000 (13:50 +0000)
git-svn-id: http://svn.opengroupware.org/SOPE/trunk@150 e4a50df8-12e2-0310-a44c-efbce7f8a7e3

sope-appserver/NGObjWeb/ChangeLog
sope-appserver/NGObjWeb/GNUmakefile
sope-appserver/NGObjWeb/NGObjWeb/WOCoreApplication.h
sope-appserver/NGObjWeb/WOScriptedComponent.m
sope-appserver/NGObjWeb/WOServerDefaults.m [new file with mode: 0644]
sope-appserver/NGObjWeb/WOWatchDogApplicationMain.m

index 9f9e42d30ffb3bf4a9e76d589906c297d425b175..0d49fb0eea9703d4227ee575740144ef8427d253 100644 (file)
@@ -1,3 +1,13 @@
+2004-09-21  Helge Hess  <helge.hess@skyrix.com>
+
+       * v4.3.41
+
+       * WOWatchDogApplicationMain.m: added new function
+         WOWatchDogApplicationMainWithServerDefaults() which installs the
+         WOServerDefaults class as the default NSUserDefaults class
+
+       * added WOServerDefaults class (not implemented yet)
+
 2004-09-21  Marcus Mueller  <znek@mulle-kybernetik.com>
 
        * v4.3.41
index f4242598120d8cc3865826fd966783cf46c63880..6b122734969264c9a2115d224b4f6d0b786e84d4 100644 (file)
@@ -126,6 +126,10 @@ libNGObjWeb_OBJC_FILES = \
        WOStats.m                       \
        WOWatchDogApplicationMain.m     \
 
+ifeq ($(FOUNDATION_LIB),fd)
+NGObjWebCore_OBJC_FILES += WOServerDefaults.m
+endif
+
 # ----- SoCore product for SOPE core registrations
 
 BUNDLE_NAME      = SoCore
index daf6c902576e3095e582229aa05002481549d3ad..6b5837806c0efda00d7bf639d0b1940d78ba5a9e 100644 (file)
@@ -101,6 +101,9 @@ NGObjWeb_EXPORT NSString *WOApplicationDidTerminateNotification;
 int WOApplicationMain(NSString *_appClassName, int argc, const char *argv[]);
 int WOWatchDogApplicationMain
   (NSString *_appClassName, int argc, const char *argv[]);
+int WOWatchDogApplicationMainWithServerDefaults
+  (NSString *_appClassName, int argc, const char *argv[],
+   NSString *globalDomainPath, NSString *appDomainPath);
 
 @interface WOCoreApplication(DeprecatedMethodsInWO4)
 
index f18697107d98d510c3be3e57c32519aeba90361a..cb2edb4d6982c2316e159102b7f9d94e4d0f36d6 100644 (file)
@@ -1,7 +1,7 @@
 /*
-  Copyright (C) 2000-2003 SKYRIX Software AG
+  Copyright (C) 2000-2004 SKYRIX Software AG
 
-  This file is part of OGo
+  This file is part of OpenGroupware.org.
 
   OGo is free software; you can redistribute it and/or modify it under
   the terms of the GNU Lesser General Public License as published by the
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id: WOScriptedComponent.m 1 2004-08-20 10:08:27Z znek $
 
 #include "WOScriptedComponent.h"
 #include <NGObjWeb/WOTemplateBuilder.h>
diff --git a/sope-appserver/NGObjWeb/WOServerDefaults.m b/sope-appserver/NGObjWeb/WOServerDefaults.m
new file mode 100644 (file)
index 0000000..8b1ea46
--- /dev/null
@@ -0,0 +1,44 @@
+/*
+  Copyright (C) 2004 SKYRIX Software AG
+
+  This file is part of OpenGroupware.org.
+
+  OGo is free software; you can redistribute it and/or modify it under
+  the terms of the GNU Lesser General Public License as published by the
+  Free Software Foundation; either version 2, or (at your option) any
+  later version.
+
+  OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
+  License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with OGo; see the file COPYING.  If not, write to the
+  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+  02111-1307, USA.
+*/
+
+#import <Foundation/NSUserDefaults.h>
+
+@interface WOServerDefaults : NSUserDefaults
+{
+  NSUserDefaults *userDefaults;
+  NSString *globalDomainPath;
+  NSString *appDomainPath;
+}
+
+@end
+
+#include "common.h"
+
+@implementation WOServerDefaults
+
++ (id)hackInServerDefaults:(NSUserDefaults *)_ud
+  withAppDomainPath:(NSString *)_appDomainPath
+  globalDomainPath:(NSString *)_globalDomainPath
+{
+  return _ud;
+}
+
+@end /* WOServerDefaults */
index c1a33f9c559eb4f9145002ecf758ef95d183ffb4..a9062d053622042ab15b416efd98f29fa4745c53 100644 (file)
@@ -18,7 +18,6 @@
   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.
 */
-// $Id$
 
 #import <Foundation/Foundation.h>
 #include <NGObjWeb/NGObjWeb.h>
@@ -419,3 +418,44 @@ int WOWatchDogApplicationMain
   }
 }
 #endif
+
+/* main function which initializes server defaults (usually in /etc) */
+
+@interface NSUserDefaults(ServerDefaults)
++ (id)hackInServerDefaults:(NSUserDefaults *)_ud
+  withAppDomainPath:(NSString *)_appDomainPath
+  globalDomainPath:(NSString *)_globalDomainPath;
+@end
+
+int WOWatchDogApplicationMainWithServerDefaults
+(NSString *appName, int argc, const char *argv[],
+ NSString *globalDomainPath, NSString *appDomainPath)
+{
+  NSAutoreleasePool *pool;
+  Class defClass;
+  
+  pool = [[NSAutoreleasePool alloc] init];
+#if LIB_FOUNDATION_LIBRARY || defined(GS_PASS_ARGUMENTS)
+  {
+    extern char **environ;
+    [NSProcessInfo initializeWithArguments:(void*)argv count:argc
+                   environment:(void*)environ];
+  }
+#endif
+  
+  if ((defClass = NSClassFromString(@"WOServerDefaults")) != nil) {
+    NSUserDefaults *ud, *sd;
+    
+    ud = [NSUserDefaults standardUserDefaults];
+    sd = [defClass hackInServerDefaults:ud
+                   withAppDomainPath:appDomainPath
+                   globalDomainPath:globalDomainPath];
+    
+    if (((sd == nil) || (sd == ud)) && (appDomainPath != nil)) {
+      NSLog(@"Note: not using server defaults: '%@' "
+            @"(not supported on this Foundation)", appDomainPath);
+    }
+  }
+  
+  return WOWatchDogApplicationMain(appName, argc, argv);
+}