Commit graph

2327 commits

Author SHA1 Message Date
hns
9a6757f75b * Two fixes for case insensitive maps in containsKey() and get(). 2006-08-09 11:04:29 +00:00
hns
16eca87022 * Implement both ETag and Last-Modified based conditional requests as some browsers
(e.g. Safari) don't seem to support ETags for embedded images and stuff.
2006-08-09 10:24:31 +00:00
hns
9491159dbb * Add comment to Properties keyMap field 2006-08-09 09:57:05 +00:00
hns
d47a2de6ff * Implement new case insensitive mapping that uses an in-between key lookup
table and preserves capitalization of property keys.
2006-08-09 09:55:24 +00:00
hns
4ee8b35d80 * Store property to relation mapping with lower case property name as
ResourceProperties will preserve key capitalization from now on.
2006-08-09 09:52:10 +00:00
hns
56f83cb75b * From Manfred's last patch for bug 468:
- Factor out repetitive SQL query building tasks into DbMapping.appendCondition()
  - Implement automatic extended prototype filter for collections
  - add prototype ids, but with simplified implementation (be agnostic
    about numeric ids vs. prototype names)
* Rewrite relational node insertion code
* Make better use of DbColumn class wherever possible
* Minor code improvements throughout the place
2006-08-08 15:37:09 +00:00
zumbrunn
37f26241c4 increased version number to 1.5.1 2006-08-07 13:49:14 +00:00
hns
2c2e9fbbb5 * Remove READONLY attribute from native HopObject methods. 2006-08-04 08:31:41 +00:00
hns
f5b90c23f1 Cumulative patch:
* Factor out invokeOnInit() method from Node.init() in order to implement onInit() invocation
  for the embedded database.
* Make properties starting with an _underscore transient in the embedded database,
  mirroring the behaviour of the object relational storage.
* Keep filter.additionalTables from being included in prefetchNode() queries, fixing bug 472.
* Some minor code cleanup and simplification.
2006-07-29 12:01:52 +00:00
hns
21be4d8651 * Add -h $HELMA_HOME to helma command line arguments. 2006-07-24 18:08:13 +00:00
hns
69cad60e86 * Keep in mind that repository list may grow while we're looping over it in checkRepositories().
Use a hashmap instead of a long[] to track last scan times. (fixes bug 470)
2006-07-24 14:57:49 +00:00
hns
9405046ee5 * Consolidate location for launcher.jar to HELMA_INSTALL (bug 471) 2006-07-24 13:44:15 +00:00
hns
e85a87f8d2 * Update to jakarta commons-fileupload 1.1.1. 2006-06-21 08:55:03 +00:00
hns
ddb6119b4d * Update to jakarta commons-io 1.2. 2006-06-21 08:54:44 +00:00
hns
83dd1e7c1f * Make sure we do not remove HopObject constructors if they aren't referenced during
global code compilation anymore. Fixes bug 464 <http://helma.org/bugs/show_bug.cgi?id=464>
2006-06-19 18:58:38 +00:00
hns
6a96d0c7a0 * Implement getResource() and getResources() for scripted java objects. 2006-06-19 13:56:57 +00:00
hns
7c658fa9db * Add support for ID generation using PostgreSQL sequence syntax 2006-06-17 11:52:46 +00:00
hns
1213c464e3 * Add isPostgreSQL() method to DbSource and DbMapping. 2006-06-17 11:50:59 +00:00
hns
332f98cbd0 * Always use select max id generator for MySQL databases since they
don't support sequences.
2006-06-16 17:33:35 +00:00
hns
118c9d9f2b * Implement isMySQL() methods to query if the db behind the mapping/source is MySQL. 2006-06-16 17:31:29 +00:00
hns
46a14e1941 * Use logError() instead of logEvent() to log exceptions.
* Use Exception constructor that takes original exception as second argument
  to propagate errors. This is safe since we now require Java 1.4 anyways.
2006-06-16 17:18:51 +00:00
hns
0ccb0f1010 * Convert file names to absolute paths in serialize()/deserialize() to avoid
names being interpreted relative to root on Mac OS X.
2006-06-13 10:46:50 +00:00
hns
9eb4285880 * Update to Javamail 1.4. 2006-06-07 12:44:17 +00:00
hns
5910237039 * Update to Java Activation Framework 1.1. 2006-06-07 12:43:25 +00:00
hns
1c51121bdc * Implement ETag based conditional GET for forwarded resources.
(ETag is based on last modified date and file size)
2006-06-03 07:13:06 +00:00
hns
cab28b406a * Fold default properties checksum calculation into getChecksum() so changes in
default properties will get picked up even if they were already consumed by other
  child properties.
* Reimplement update algorithm using a temporary ResourceProperties object to
  avoid getting into unconsistent state by invoking clear().
* Use uppercase name for final CACHE_TIME field.
* Make update() synchronized as concurrent invocation could be absolutely harmful.
2006-05-26 14:41:50 +00:00
hns
f122e203b3 * Add IPv6 localhost to default allowAdmin addresses, remove 192.168.0.1. Enhance comment. 2006-05-26 12:48:24 +00:00
hns
412ba832d2 * Unify check for JAVA_HOME and JAVACMD executable. The latter didn't work on Mac OS X. 2006-05-26 10:34:44 +00:00
hns
e7a7969e9d * Bring default path names a bit up to date. 2006-05-25 19:46:34 +00:00
hns
63fc1fda7e * Use ScriptingEngine.serialize()/deserialize() to save and restore sessions.
Fixes bug 461.
2006-05-24 12:29:09 +00:00
zumbrunn
22678cc604 Added a "# logDir = console" entry along with a suggestion of when to use it 2006-05-24 11:33:18 +00:00
zumbrunn
9d6d477e4e Updated readme file to reflect the changed requirement for a JRE 1.4 or higher 2006-05-23 14:18:39 +00:00
hns
3204eb14a6 * Helma 1.5 de facto requires Java 1.4 or greater. 2006-05-23 10:47:22 +00:00
hns
b203fcc43e * Switch build version to 1.5.0 2006-05-22 09:54:37 +00:00
hns
836ef1bb04 * Delete obsolete helma.objectmodel.db.Server class. 2006-05-22 09:52:54 +00:00
hns
1121dcbfdc * Consider conditional GET headers in RequestTrans.equals(). This fixes a bug
where Mozilla/Firefox displayed an empty page when fetching the same page
  with different headers within a short timeframe.
* Fix Last-Modified handler heading which was broken in more than one way.
* Don't generate ETag headers for error pages.
* Rename ResponseTrans.writeErrorReport() to reportError().
* Set response status to 500 (internal server error) in ResponseTrans.reportError().
2006-05-18 20:54:08 +00:00
hns
c8a3c3d702 * Implement conditional GET based on file last modified date in sendForward(). 2006-05-18 18:25:14 +00:00
hns
7b232f7eb1 * Use WeakReferences to store java object wrappers. Since they hold a reference to
the wrapped objects, they prevent them from being garbage collected if stored as
  WeakHashMap values.
* Clean up parsing of rhino.optlevel property. Don't run into exceptions and log
  an error message if it couldn't be parsed.
* Remove some variable initializers that weren't necessary after all.
2006-05-12 13:30:47 +00:00
hns
676f4a06f0 * Make usage of deprecated Thread.stop() dependent on setting of
requestTimeoutStop = true|false app property
2006-05-11 19:22:07 +00:00
hns
5c1714d855 * Implement getRepositories() method that returns an array containing the
prototype's repositories
* Some minor and/or cosmetic changes
2006-05-11 19:20:31 +00:00
hns
16046c5e71 * Add test if SQL connections are alive before returning them in getConnection().
* Add some javadoc comments and rename sqlCon to sqlConnections.
2006-05-11 18:36:56 +00:00
hns
7298b70d3b * Copy java source files over to work/src before compiling. This has the following implications:
- It allows us to replace the __builddate__ token in Server.java without changing the original file.
  - It makes sure all files are recompiled each time, avoiding compatible type change errors.
2006-04-28 22:24:54 +00:00
hns
3902f06136 * Exit Helma if something important such as binding to a server port fails, rather than just logging the error.
* Replace date in version string with __builddate__ replacement token.
* Increase version number to 1.5.0.
2006-04-28 21:39:22 +00:00
hns
1b26370377 * Set thread field in updatePrototypes() already so
it is already set when the RequestEvaluator calls
  Application.getDataRoot(), which may result in a function
  invocation (chicken and egg problem, sort of)
2006-04-28 13:58:01 +00:00
hns
7b622f8c54 * Only synchronize internal getter for per-thread scope, don't synchronize public get() or put()
to avoid deadlocks.
* Do not synchronize PropertyRecorder methods, instead mark fields as volatile.
* Check for "global" reference before doing the default lookup in get().
2006-04-26 15:52:25 +00:00
hns
ae6d3738d2 * Make markAs(), setState() and getState() unsynchronized again,
and make state field volatile instead, in order to prevent deadlocks.
2006-04-26 13:23:36 +00:00
zumbrunn
1611d75c3c changed apps.properties and the build script to include "modules" instead of helmaLib 2006-04-24 08:44:13 +00:00
zumbrunn
7b82ff2e81 changed version string to indicate CVS as the source for a build by default instead of an old date 2006-04-24 08:42:00 +00:00
zumbrunn
8edbd4e2bd changed license copyright date range to include 2006 2006-04-24 08:40:17 +00:00
hns
75ebaa75be * ALWAYS try to tetermine the proper thread scope dynamically in GlobalObject.get(),
otherwise we risk to run on the wrong thread scope for nested functions, which will
  result in buggy behaviour _only_ if the baked-in thread scope is currently active in
  another request (otherwise most of its properties will be unset and the lookup forwarded
  to the shared global object, which will proxy it to the proper thread scope).

  This means we do dynamic lookup in both the shared and the thread scopes, which
  means we can use the same class for both cases and dump DynamicGlobalObject.
  In return, dynamic lookup should be somewhat optimized, so we don't do double
  lookups for both thread and shared scope.
2006-04-19 13:52:50 +00:00