Commit graph

2132 commits

Author SHA1 Message Date
hns
ab5694092e Use Context.get/putThreadLocal() to register per-thread scopes for DynamicGlobalObject.
This is to fix some very obscure behaviour that was likely caused by the WeakHashMap code.
2005-07-07 15:28:09 +00:00
grob
38b4f265ce Look up variables in per-thread scope first, then in shared global scope. 2005-07-06 14:10:02 +00:00
grob
5ebbfe70a3 Synchronize set/getSubnodeRelation() to prevent problems on multiprocessor machines 2005-07-06 11:42:36 +00:00
grob
d8feb2620b Set req and res fields to volatile to prevent invalid reads on multiprocessor machines 2005-07-06 11:41:20 +00:00
grob
fa38fbc172 Synchronize thread -> scope map 2005-07-06 11:40:16 +00:00
hns
6bdb02ec6a Fix registerUser(): user addNode() instead of setNode() so user nodes are stored as child nodes, not properties. 2005-06-28 10:27:05 +00:00
hns
9e43503ced Remove setDbMapping() which is never used and might be hazardous if it was. 2005-06-28 10:08:18 +00:00
hns
7209fd9709 make class not final 2005-06-28 10:03:55 +00:00
hns
5e2494462a sznchronizing all methods that manipulate/access the buffer field
to avoid bogus rendering on multiprocessor machines.
2005-06-24 13:37:54 +00:00
hns
7991eb888f Add proxy method for Application.getSkin(String protoname, String skinname, Object[] skinpath) 2005-06-22 09:40:45 +00:00
hns
d743c82c89 Go back to old log file rotation code layout a bit, but still only use one thread to gzip all rotated files:
- GZipper class is with FileLogger again and takes either a list of files or a single file
- Log file rotation is done synchronously in the Logging.Runner thread, only gzipping is done in
  a separate thread
2005-06-22 08:37:25 +00:00
hns
365fab6a63 Rewrote log file rotation to use just one thread for zipping all log files. 2005-06-16 19:57:15 +00:00
hns
0c8b653c1e Cleaned up constructor a bit, use direct assignment instead of setter for prototype. 2005-06-16 17:51:04 +00:00
hns
27a31bd736 Do not try to set DbMapping in Node.setPrototype() - it has disastrous effects for prototyped groupby nodes. 2005-06-16 17:45:56 +00:00
hns
8f4bfdd54b Set parent in MultiFileRepository child repositories, otherwise order is lost in Application.addRepository() 2005-06-16 12:12:43 +00:00
hns
0ecfcd0fba - Make sure collections on transient nodes are set to transient when making persitable
to avoid collection objects being loaded from database.
- Allow getKey() to be called on transient nodes iff primary key is set
- Do set DbMapping in setPrototype() method
- Unified Node constructors and initializers a bit
2005-06-15 14:40:57 +00:00
hns
879015efd5 Fix bug 431
http://www.helma.org/bugs/show_bug.cgi?id=431
2005-06-14 10:34:34 +00:00
hns
df88235e04 MultiFileRepository contributed by Barbara Ondrisek:
A subclass of FileRepository that treats all subdirectories as top-level file repositories
(instead of than treating them as prototype directories)
2005-06-10 12:35:10 +00:00
hns
96a8d6f95e ignore-dirs patch contributed by Barbara Ondrisek:
appname.ignore = dir1,dir2 prevents Prototypes to be created for the given directories.
2005-06-10 12:28:27 +00:00
hns
f9ce4c8c07 ResourceComparator is never used with ResourceTrackers 2005-06-10 12:02:16 +00:00
hns
2b2fdf59c1 Simplified getInstance(String) a little bit. 2005-06-09 16:34:00 +00:00
hns
04a1b2cb80 Set thread priority for GZipper threads to MIN_PRIORITY. 2005-06-09 16:32:32 +00:00
hns
0e2aca1c07 - Remove old debug thread dump in getInstance(String)
- Remove double checking to avoid entering synchronized code in getInstance(String)
- Rename newLog(String) to getFileLogger(String) and clean it up a little bit
2005-06-09 11:46:12 +00:00
hns
23efbd457d Make Runner.run() synchronized again, needed by wait() 2005-06-09 11:23:49 +00:00
hns
e95169cfe6 Remove comment about bogus thread safety, not true anymore after last commit. 2005-06-09 11:15:01 +00:00
hns
70edf7bedf - No need to make runner volatile since it is only access in synchronized code
- Do not null out Logging.runner at the end of Runner.run()
- Remove unused Runner.wakeup() method and make runner.run() not synchronized
2005-06-09 11:02:55 +00:00
hns
3a55c1b270 - Make sure we use an absolute path for logdir
- Make all methods that work on the logfile/writer synchronized
- Increase Buffer size in GZipper thread to 8192 bytes
2005-06-09 10:42:51 +00:00
hns
5bc692e923 Make runner variable volatile. 2005-06-06 19:28:14 +00:00
hns
107aaa6a59 - Encapsulate access to static runner into synchronized methods to prevent
spawning of multiple threads.
- Make static runner field non-public.
2005-06-06 15:55:16 +00:00
hns
1a7a054894 Minor patch: get dateLastRendered and dateCache from the same java.util.Date instance. 2005-06-06 15:52:45 +00:00
hns
18dbec3dd8 Fix two minor bugs that keep everything from working. 2005-06-02 20:27:40 +00:00
hns
a8b9ffd154 Make FileRepository(File) constructor public again, it is used from the helma.main and helma.servlet packages. 2005-06-02 19:04:13 +00:00
hns
43b1b5edd8 Many changes and fixes in Prototype skin management:
- Use an ordered TreeSet for prototype's repositories so we
	  know the resources we get are already in the right order.
	- Use SkinMap again for intetracking mapping the prototype's skins
	  internally after cleaning the code up a bit.
	- Add new ScriptableSkinMap object that wraps a skinmap, exposes it as
	  native JavaScript object by extending WrappedMap, and does the
	  Resource to String conversion in get().
	- Move code that loads additional skins from skinpath from
	  SkinManager.getSkinFiles() to SkinMap.loadSkinFiles()
	- Inline addSkinResource() and addCodeResource() methods into
	  checkForUpdates().
	- Make lastUpdate kind of fields volatile.
2005-06-02 12:06:57 +00:00
hns
1c9bdff6af Rename getSkinInternal() to getSkinInPath() 2005-06-02 08:18:44 +00:00
hns
a9aadfe00c - Make sure our file has an absolute path, otherwise we run into inconsistent behaviour
of File.exists()
2005-06-01 15:09:52 +00:00
hns
ceebcdb96e - Make sure our directory has an absolute path, otherwise we run into inconsistent behaviour
of File.exists()
- Throw exception if directory exists and is not a directory
- Rename dir instance variable to directory
2005-06-01 15:09:35 +00:00
hns
828ba529dd Make constructor public. 2005-06-01 14:54:50 +00:00
hns
e9c32f20a1 Enhanced/fixed Javadoc for getRootRepository() 2005-05-24 14:32:45 +00:00
hns
962d53336c Make sure skinmaps are loaded even if prototype's resources haven't been checked yet.
Fixes bug 428.
2005-05-24 14:18:19 +00:00
hns
fe455cb556 - Implemented notifyPropertyChange() function which is called from all property setters in order to fix bug 424.
- Refactored DbMapping related checks in setString() a little bit.
2005-05-24 10:21:48 +00:00
hns
f671a6b838 - Return the logical/script root in AbstractRepository.getRootRepository(). Fixes bug 425.
- Added some Javadoc comments.
2005-05-20 09:55:10 +00:00
hns
e284f39be5 getRootNode(): Set DbMapping and prototype name to app.getRootMapping() 2005-05-18 08:44:43 +00:00
hns
0eb623afd5 Use NodeManager.getRootNode() to get our root node. 2005-05-18 08:42:17 +00:00
hns
d26b968ae8 Always use directly mapped property as first choice when resolving ${column_name} in appendFilter().
Only use id/name/prototype if that doesn't give us a value.
2005-05-18 08:33:47 +00:00
hns
3c8f9f8890 Throw exception in init() when rootPrototype or userPrototype does not exist. 2005-05-13 15:33:01 +00:00
hns
525739eaa5 Minor code improvement in isStorageCompatible() 2005-05-13 15:26:55 +00:00
hns
0deb7c3a53 Read rootPrototype and userPrototype in init() instead of in updateProperties() 2005-05-13 15:25:58 +00:00
hns
70ea9f7aa3 Application.java:
- Update rootMapping and userMapping in updateProperties()
- Replace getRootPrototype() with getRootMapping()
DbMapping():
- Implement static areStorageCompatible() method to check
  two DbMappings, both of which may be null
NodeManager:
- Update to use new methods
2005-05-13 15:20:16 +00:00
hns
4def8eed1e Implement NodeManager.getRootNode() and NodeManager.isRootNode() that
allow to get the app's root node and check if a node is the root node, respectively
2005-05-13 14:45:42 +00:00
hns
022bc2a2d8 - Renamed former rootPrototype property to hrefRootProperty,
since it defines the root object only as far as href() function is
  concerned
- Add rootPrototype and userPrototype properties that allow to
  set the prototypes for the root and user objects, respectively
- Implement Application.getRootPrototype() and Application.getRootId()
  that allow to get the prototype and id of the app's root node
2005-05-13 14:44:45 +00:00