2004-08-24 Helge Hess <helge.hess@opengroupware.org>
+ * v4.3.10
+
+ * GNUmakefile: install SoCore.sxp in Library/SoProducts/4.3/
+
+ * Templates/WOxTemplateBuilder.m: moved WOApplication category to an
+ own file, preload builder bundles in Library/WOxElemBuilders/4.3
+
+ * SoObjects/SoProductRegistry.m: look for products in
+ Library/SoProducts/4.3
+
* v4.3.9
* DynamicElements/WOConditional.m: added specific WOx initializer to
BUNDLE_NAME = SoCore
BUNDLE_EXTENSION = .sxp
-BUNDLE_INSTALL_DIR = $(GNUSTEP_INSTALLATION_DIR)/Library/SoProducts
+BUNDLE_INSTALL_DIR = $(GNUSTEP_INSTALLATION_DIR)/Library/SoProducts/4.3/
SoCore_OBJC_FILES = SoCoreProduct.m
SoCore_RESOURCE_FILES = SoObjects/product.plist Version
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
-// $Id$
#include "SoProductRegistry.h"
#include "SoProduct.h"
lPath = [lPath stringByAppendingPathComponent:@"Library"];
#endif
lPath = [lPath stringByAppendingPathComponent:@"SoProducts"];
+ lPath = [lPath stringByAppendingPathComponent:@"4.3"];
if (![fm fileExistsAtPath:lPath isDirectory:&isDir])
continue;
WOxComponentElemBuilder.m \
WOxTemplateBuilder.m \
WOxElemBuilder.m \
+ WOApplication+Builders.m \
-include GNUmakefile.preamble
include $(GNUSTEP_MAKEFILES)/subproject.make
--- /dev/null
+/*
+ Copyright (C) 2000-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.
+*/
+
+#include <NGObjWeb/WOApplication.h>
+#include "WOxTemplateBuilder.h"
+#include <NGObjWeb/WOxElemBuilder.h>
+#include "common.h"
+
+@implementation WOApplication(BuilderStack)
+
+- (void)scanForBuilderBundlesInDirectory:(NSString *)_path {
+ NGBundleManager *bm;
+ NSFileManager *fm;
+ NSEnumerator *pathes;
+ NSString *lPath;
+
+ bm = [NGBundleManager defaultBundleManager];
+
+ fm = [NSFileManager defaultManager];
+ pathes = [[fm directoryContentsAtPath:_path] objectEnumerator];
+ while ((lPath = [pathes nextObject])) {
+ NSBundle *bundle;
+ BOOL isDir;
+
+ lPath = [_path stringByAppendingPathComponent:lPath];
+
+ if (![fm fileExistsAtPath:lPath isDirectory:&isDir])
+ continue;
+ if (!isDir)
+ continue;
+
+ if ((bundle = [bm bundleWithPath:lPath]) == nil) {
+ [self logWithFormat:@"WARNING: could not get bundle for path: '%@'",
+ lPath];
+ continue;
+ }
+
+ if (![bundle load]) {
+ [self logWithFormat:@"WARNING: could not load bundle: '%@'", lPath];
+ continue;
+ }
+
+ [self debugWithFormat:@"loaded elem builder bundle: %@",
+ [lPath lastPathComponent]];
+ }
+}
+
+- (void)loadBuilderBundles {
+ NSFileManager *fm;
+ NSProcessInfo *pi;
+ NSArray *pathes;
+ unsigned i;
+
+ /* scan library pathes */
+
+ fm = [NSFileManager defaultManager];
+ pi = [NSProcessInfo processInfo];
+
+#if COCOA_Foundation_LIBRARY
+ /*
+ TODO: (like COMPILE_FOR_GNUSTEP)
+ This should actually check whether we are compiling in the
+ GNUstep environment since this modifies the location of bundles.
+ */
+ pathes = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,
+ NSAllDomainsMask,
+ YES);
+#else
+ pathes = [[pi environment] objectForKey:@"GNUSTEP_PATHPREFIX_LIST"];
+ if (pathes == nil)
+ pathes = [[pi environment] objectForKey:@"GNUSTEP_PATHLIST"];
+
+ pathes = [[pathes stringValue] componentsSeparatedByString:@":"];
+#endif
+
+ if ([pathes count] == 0) {
+ [self debugWithFormat:@"found no builder bundle pathes."];
+ return;
+ }
+
+ [self debugWithFormat:@"scanning for builder bundles ..."];
+
+ for (i = 0; i < [pathes count]; i++) {
+ NSString *lPath;
+ BOOL isDir;
+
+ lPath = [pathes objectAtIndex:i];
+#if !COCOA_Foundation_LIBRARY
+ lPath = [lPath stringByAppendingPathComponent:@"Library"];
+#endif
+ lPath = [lPath stringByAppendingPathComponent:@"WOxElemBuilders"];
+ lPath = [lPath stringByAppendingPathComponent:@"4.3"];
+
+ if (![fm fileExistsAtPath:lPath isDirectory:&isDir])
+ continue;
+ if (!isDir)
+ continue;
+
+ [self debugWithFormat:@" directory %@", lPath];
+ [self scanForBuilderBundlesInDirectory:lPath];
+ }
+
+ [self debugWithFormat:@"finished scan for builders."];
+}
+
+- (WOxElemBuilder *)builderForDocument:(id<DOMDocument>)_document {
+ static WOxElemBuilder *builder = nil;
+ static NSArray *defClasses = nil;
+ NSUserDefaults *ud;
+ NSArray *classes = nil;
+ NSArray *infos;
+
+ if (builder != nil)
+ return builder;
+
+ ud = [NSUserDefaults standardUserDefaults];
+ if (defClasses == nil)
+ defClasses = [[ud arrayForKey:@"WOxBuilderClasses"] copy];
+
+ /* ensure that bundles are loaded */
+ [self loadBuilderBundles];
+
+ infos = [[NGBundleManager defaultBundleManager]
+ providedResourcesOfType:@"WOxElemBuilder"];
+ if ([infos count] > 0) {
+ classes = [NSMutableArray arrayWithCapacity:24];
+ [(id)classes addObjectsFromArray:[infos valueForKey:@"name"]];
+ [(id)classes addObjectsFromArray:defClasses];
+ }
+ else
+ classes = defClasses;
+
+ if ([ud boolForKey:@"WOxLogBuilderQueue"]) {
+ NSEnumerator *e;
+ NSString *b;
+
+ if ([classes count] > 0) {
+ [self debugWithFormat:@"builder stack:"];
+ e = [classes objectEnumerator];
+ while ((b = [e nextObject]))
+ [self logWithFormat:@" %@", b];
+ }
+ else {
+ [self debugWithFormat:@"empty wox-element builder stack !"];
+ }
+ }
+
+ builder = [[WOxElemBuilder createBuilderQueue:classes] retain];
+ return builder;
+}
+
+@end /* WOApplication(BuilderStack) */
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
-// $Id$
#include "WOxTemplateBuilder.h"
#include <NGObjWeb/WOxElemBuilder.h>
}
@end /* WOxTemplateBuilder */
-
-@implementation WOApplication(BuilderStack)
-
-- (WOxElemBuilder *)builderForDocument:(id<DOMDocument>)_document {
- static WOxElemBuilder *builder = nil;
- static NSArray *defClasses = nil;
- NSUserDefaults *ud;
- NSArray *classes = nil;
- NSArray *infos;
-
- if (builder != nil)
- return builder;
-
- ud = [NSUserDefaults standardUserDefaults];
- if (defClasses == nil)
- defClasses = [[ud arrayForKey:@"WOxBuilderClasses"] copy];
-
-#warning TODO: remove that for SOPE 4.4! (use a fix bundle location)
- infos = [[NGBundleManager defaultBundleManager]
- providedResourcesOfType:@"WOxElemBuilder"];
- if ([infos count] > 0) {
- classes = [NSMutableArray arrayWithCapacity:24];
- [(id)classes addObjectsFromArray:[infos valueForKey:@"name"]];
- [(id)classes addObjectsFromArray:defClasses];
- }
- else
- classes = defClasses;
-
- if ([ud boolForKey:@"WOxLogBuilderQueue"]) {
- NSEnumerator *e;
- NSString *b;
-
- if ([classes count] > 0) {
- [self debugWithFormat:@"builder stack:"];
- e = [classes objectEnumerator];
- while ((b = [e nextObject]))
- [self logWithFormat:@" %@", b];
- }
- else {
- [self debugWithFormat:@"empty wox-element builder stack !"];
- }
- }
-
- builder = [[WOxElemBuilder createBuilderQueue:classes] retain];
- return builder;
-}
-
-@end /* WOApplication(BuilderStack) */
+2004-08-24 Helge Hess <helge.hess@skyrix.com>
+
+ * install product in Library/SoProducts/4.3/ (v4.3.4)
+
2004-08-23 Helge Hess <helge.hess@opengroupware.org>
* GNUmakefile.preamble: removed libjs linking path (v4.3.3)
BUNDLE_NAME = SoOFS
BUNDLE_EXTENSION = .sxp
-BUNDLE_INSTALL_DIR = $(GNUSTEP_INSTALLATION_DIR)/Library/SoProducts
+BUNDLE_INSTALL_DIR = $(GNUSTEP_INSTALLATION_DIR)/Library/SoProducts/4.3/
SoOFS_OBJC_FILES = SoOFSProduct.m
SoOFS_RESOURCE_FILES = product.plist Version
# version file
-SUBMINOR_VERSION:=3
+SUBMINOR_VERSION:=4
+2004-08-24 Helge Hess <helge.hess@skyrix.com>
+
+ * install (elem builder) bundle in Library/WOxElemBuilders/4.3/
+ (v4.3.56)
+
2004-08-20 Helge Hess <helge.hess@opengroupware.org>
- * fixed for SOPE 3.3 directory layout (v4.3.55)
+ * fixed for SOPE 4.3 directory layout (v4.3.55)
* moved to SOPE 4.3 (v4.3.54)
LIBRARY_NAME = libWEExtensions
BUNDLE_NAME = WEExtensions
+BUNDLE_INSTALL_DIR = $(GNUSTEP_INSTALLATION_DIR)/Library/WOxElemBuilders/4.3/
libWEExtensions_HEADER_FILES_DIR = .
libWEExtensions_HEADER_FILES_INSTALL_DIR = /WEExtensions
# $Id$
-SUBMINOR_VERSION:=55
+SUBMINOR_VERSION:=56
+2004-08-24 Helge Hess <helge.hess@skyrix.com>
+
+ * v4.3.56
+
+ * added a bundle manager class (WOExtensionsBuilderModule)
+
+ * install (elem builder) bundle in Library/WOxElemBuilders/4.3/
+
+ * added a GNUmakefile.postamble
+
2004-08-20 Helge Hess <helge.hess@opengroupware.org>
- * fixed for SOPE 3.3 directory layout (v4.3.16)
+ * fixed for SOPE 4.3 directory layout (v4.3.16)
* moved to SOPE 4.3 (v4.3.15)
LIBRARY_NAME = libWOExtensions
BUNDLE_NAME = WOExtensions
+BUNDLE_INSTALL_DIR = $(GNUSTEP_INSTALLATION_DIR)/Library/WOxElemBuilders/4.3/
libWOExtensions_HEADER_FILES_DIR = .
libWOExtensions_HEADER_FILES_INSTALL_DIR = /WOExtensions
WORadioButtonMatrix.m \
WOCheckBoxMatrix.m \
-WOExtensions_OBJC_FILES += dummy.m
-WOExtensions_PRINCIPAL_CLASS = WOxExtElemBuilder
-
-ifneq ($(GNUSTEP_BUILD_DIR),)
-after-WOExtensions-all ::
- @(cp bundle-info.plist \
- $(GNUSTEP_BUILD_DIR)/$(BUNDLE_NAME)$(BUNDLE_EXTENSION))
-else
-after-WOExtensions-all ::
- @(cd $(BUNDLE_NAME)$(BUNDLE_EXTENSION);\
- cp ../bundle-info.plist .)
-endif
+WOExtensions_OBJC_FILES += WOExtensionsBuilderModule.m
+WOExtensions_PRINCIPAL_CLASS = WOExtensionsBuilderModule
-include GNUmakefile.preamble
include $(GNUSTEP_MAKEFILES)/library.make
--- /dev/null
+# postprocessing
+
+ifneq ($(GNUSTEP_BUILD_DIR),)
+after-WOExtensions-all ::
+ @(cp bundle-info.plist \
+ $(GNUSTEP_BUILD_DIR)/$(BUNDLE_NAME)$(BUNDLE_EXTENSION))
+else
+after-WOExtensions-all ::
+ @(cd $(BUNDLE_NAME)$(BUNDLE_EXTENSION);\
+ cp ../bundle-info.plist .)
+endif
--- /dev/null
+/*
+ Copyright (C) 2000-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/NSObject.h>
+
+@interface WOExtensionsBuilderModule : NSObject
+@end
+
+@implementation WOExtensionsBuilderModule
+@end /* WOExtensionsBuilderModule */
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
-// $Id$
#include <NGObjWeb/WOxElemBuilder.h>
{
- CVSID = "$Id$";
-
requires = {
bundleManagerVersion = 1;
);
classes = (
+ { name = "WOExtensionsBuilderModule"; },
{ name = "WOxExtElemBuilder"; },
{ name = "JSAlertPanel"; },