Index: openacs-4/packages/acs-core-docs/www/apm-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-design.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/apm-design.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/apm-design.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 @@ -635,7 +635,7 @@ centralization, but splitting this information into several files allows for flexible extensions to the APM architecture over time.
APM packages currently lack provisions to verify security -information. There are plans to add MD5 time stamps and PGP +information. There are plans to add MD5 timestamps and PGP signatures to packages to enable secure authentication of packages. These steps are necessary for APM to be usable as a scalable method to distribute packages on multiple repositories worldwide.
Another anticipated change is to split the APM UI into separate Index: openacs-4/packages/acs-core-docs/www/apm-requirements.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/apm-requirements.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/apm-requirements.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/apm-requirements.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 @@ -71,8 +71,7 @@
A registry of installed -packages, database-backed and integrated with file -system-based version control
Web-based tools for package development:
Creating new packages locally
Releasing new versions of locally-created packages
Uploading packages to a global package repository on the web
Use of these tools should be safe, i.e. installing or removing a @@ -262,7 +261,7 @@ identified.
4.600.1 Each -package will have a PGP signature and there will be MD5 time stamps +package will have a PGP signature and there will be MD5 timestamps for each file within the package.
4.600.5 The APM will provide a facility to validate both the PGP signature and MD5 @@ -310,18 +309,17 @@ package
20.1 The developer must be able to add files to the package. This is done by copying -the files into the package directory in the host OS's file -system. Files can be added at any point after package creation.
+the files into the package directory in the host OS's filesystem. Files can be added at any point after package creation.
20.3 Once a package has been versioned and distributed, no new files should be added to the package without incrementing the version number.
20.5 The APM's UI should facilitate the process of adding new files, by scanning -the file system for new files automatically, and allowing the +the filesystem for new files automatically, and allowing the developer to confirm adding them.
20.10 The developer cannot add files to a given package via the UI that do not exist in -the file system already.
+the filesystem already.
20.15 Package file structure must follow a specified convention. Please see the design document for what we do @@ -335,12 +333,12 @@ 30.1 Access the APM UI, browse the file list, and remove files.
30.1.1If a file is -removed from the package list, but not from the file system, an +removed from the package list, but not from the filesystem, an error should be generated at package load time.
30.5 Remove the -file from file system.
+file from filesystem.
30.5.1 The APM UI should take note of the fact that the file is gone and offer the developer an option to confirm the file's deletion.
@@ -351,7 +349,7 @@ 40.0 Modify files in a package.40.1 The developer -should be able to modify files in the file system. The APM UI +should be able to modify files in the filesystem. The APM UI should not interfere with this.
40.5 However, if the developer modifies files containing procedural definitions, APM @@ -393,7 +391,7 @@ all package information.
70.0 Write an XML package -specification to the file system
+specification to the filesystem
70.1 The developer should be able to write an up-to-date XML specification to disk.
@@ -561,7 +559,7 @@ 110.1.1 Running any data model scripts necessary to drop the package.
110.1.5 Moving all -of the files into a separate location in the file system from the +of the files into a separate location in the filesystem from the installed packages.
4.110.1.10 If the package is a compound package, then the administrator must confirm @@ -590,10 +588,10 @@
150.0 Scan for new or modified packages
150.1 The -administrator should be able to scan the file system for any +administrator should be able to scan the filesystem for any changes made in any of the installed package files.
150.5 The -administrator should be able to scan the file system for any newly +administrator should be able to scan the filesystem for any newly installed packages.
Level 4: Deprecated. The package was in some earlier version -is use, but was probably replaced by a another package. The package +is use, but was probably replaced by another package. The package description should point to a preferred version.
Users will log in using a username, a authority, and a password. +
Users will log in using a username, an authority, and a password. The authority is the source for user/password verification. OpenACS can be an authority itself.
Each user in OpenACS will belong to exactly one authority, which can either be the "local" OpenACS users table, in which @@ -177,7 +177,7 @@
Each authority is defined like this:
Authority pretty-name, e.g. "URZ"
Authentication Driver, e.g. "RADIUS". In practice, -this would be a reference to a service contract implementation.
Authentication Driver configuration settings, e.g. host name, +this would be a reference to a service contract implementation.
Authentication Driver configuration settings, e.g. hostname, port, etc., as required by the particular driver. Note that this is per authority, not per driver, i.e., you can have multiple authorities with the same driver but different configuration @@ -191,7 +191,7 @@ this would be a reference to a service contract implementation. The reason we have separate drivers for authentication and account creation is that organizations are likely to have a home-grown -account registration process.
Account Creation Driver configuration settings, e.g. host name, +account registration process.
Account Creation Driver configuration settings, e.g. hostname, port, etc., as required by the particular driver. Note that this is per authority, not per driver, i.e., you can have multiple authorities with the same driver but different configuration @@ -283,7 +283,7 @@ Account Registration
If a user doesn't have an account, the site-wide configuration can allow the user to register for one, as defined in the configuration discussed above. This section is about normal -account registration through a authority driver.
The account creation service contract implementation will need +account registration through an authority driver.
The account creation service contract implementation will need to tell us which information to ask the user for:
Required Fields: A list of fields which are required.
Optional Fields: A list of fields which are optional.
The fields to choose from are these:
The data model should enforce these constraints:
40.10 A user must -have a non-empty email address.
+have a nonempty email address.
40.20 Two different users may not have the same email address on a single OpenACS installation; i.e., an email address identifies a single user on Index: openacs-4/packages/acs-core-docs/www/i18n-introduction.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-introduction.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/i18n-introduction.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/i18n-introduction.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 @@ -36,7 +36,7 @@ and localized ADP files. For ADP pages which are mostly code, replacing the message text with message key placeholders is simpler. This approach also allows new translation in the database, -without affecting the file system. For ADP pages which are static +without affecting the filesystem. For ADP pages which are static and mostly text, it may be easier to create a new ADP page for each language. In this case, the pages are distinguished by a file naming convention.
Typical static key lookup: [_
package_key.message_key]
- The message key and package key
used here must be string literals, they can't result from
-variable evaluation.
Static key lookup with non-default locale: [lang::message::lookup $locale
+variable evaluation.
Static key lookup with nondefault locale: [lang::message::lookup $locale
package_key.message_key]
- The message key and package key
used here must be string literals, they can't result from
variable evaluation.
Dynamic key lookup: [lang::util::localize
Index: openacs-4/packages/acs-core-docs/www/i18n-requirements.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/i18n-requirements.adp,v
diff -u -r1.5.2.3 -r1.5.2.4
--- openacs-4/packages/acs-core-docs/www/i18n-requirements.adp 26 Aug 2020 07:46:25 -0000 1.5.2.3
+++ openacs-4/packages/acs-core-docs/www/i18n-requirements.adp 5 Jan 2021 17:33:39 -0000 1.5.2.4
@@ -291,7 +291,7 @@
Submitted Form Data
Character Set
50.30 Data which is -submitted with a HTTP request using a GET or POST method may be in +submitted with an HTTP request using a GET or POST method may be in any character set. The system must be able to determine the encoding of the form data and convert it to Unicode on demand.
50.35 The developer must @@ -401,23 +401,23 @@ Time Zones
90.10 Provide API support -for specifying a time zone
+for specifying a timezone
90.20 Provide an API for computing time and date operations which are aware of timezones. So for example a calendar module can properly synchronize items -inserted into a calendar from users in different time zones using +inserted into a calendar from users in different timezones using their own local times.
90.30 Store all dates and -times in universal time zone, UTC.
+times in universal timezone, UTC.
90.40 For a registered -users, a time zone preference should be stored.
+users, a timezone preference should be stored.
90.50 For a -non-registered user a time zone preference should be attached via a +non-registered user a timezone preference should be attached via a session or else UTC should be used to display every date and time.
90.60 The default if we -can't determine a time zone is to display all dates and times -in some universal time zone such as GMT.
+can't determine a timezone is to display all dates and times +in some universal timezone such as GMT.
Database. The data on your site (for -example, user names and passwords, calendar entries, and notes) is +example, usernames and passwords, calendar entries, and notes) is stored in the database. OpenACS separates the database with an abstraction layer, which means that several different databases all function identically. While you can run the core OpenACS on any Index: openacs-4/packages/acs-core-docs/www/install-ldap-radius.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-ldap-radius.adp,v diff -u -r1.5.2.2 -r1.5.2.3 --- openacs-4/packages/acs-core-docs/www/install-ldap-radius.adp 26 Aug 2020 07:46:25 -0000 1.5.2.2 +++ openacs-4/packages/acs-core-docs/www/install-ldap-radius.adp 5 Jan 2021 17:33:39 -0000 1.5.2.3 @@ -58,10 +58,10 @@ use. Traditionally OpenACS has supported ns_ldap for authentication by storing the OpenACS password in an encrypted field within the LDAP server called "userPassword". -Furthermore a CN field was used for searching for the username, +Furthermore, a CN field was used for searching for the username, usually userID or something similar. This field is identical to the usernamestored in OpenACS. -Therefore the login will only work if you change login method to +Therefore, the login will only work if you change login method to make use of the username instead.
Change config.tcl. Remove
the # in front of
Configure ns_ldap for use with LDAP
bind. LDAP authentication usually is done by trying
-to bind (a.k.a. login) a user with the LDAP server. The password of
+to bind (aka login) a user with the LDAP server. The password of
the user is not stored in any field of the LDAP server, but kept
internally. The latest version of ns_ldap supports this method with
the ns_ldap bind command.
Index: openacs-4/packages/acs-core-docs/www/install-next-add-server.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-next-add-server.adp,v
diff -u -r1.4.2.2 -r1.4.2.3
--- openacs-4/packages/acs-core-docs/www/install-next-add-server.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2
+++ openacs-4/packages/acs-core-docs/www/install-next-add-server.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3
@@ -17,13 +17,13 @@
$OPENACS_SERVICE_NAME, and change
the to different values.
-Services on different host names. For
+Services on different hostnames. For
example, suppose you want to support If you want to install two services with different host names
+set address 127.0.0.1 If you want to install two services with different hostnames
sharing the same ip, you'll need nsvhr to redirect requests
based on the contents of the tcp headers. See AOLserver Virtual Hosting with TCP by markd.ns_param nsldap
@@ -71,7 +71,7 @@
set httpport 8000
set httpsport 8443
http://service0.com
and http://bar.com
on the same machine. The
-easiest way is to assign each one a different ip address. Then you
+easiest way is to assign each one a different IP address. Then you
can install two services as above, but with different values
for
set hostname [ns_info hostname]
-set address 127.0.0.1
Copy this file into /var/tmp/restart-aolserver.txt
.
This script needs to be SUID-root, which means that the script
will run as root. This is necessary to ensure that the AOLserver
-processes are killed regardless of who owns them. However the
+processes are killed regardless of who owns them. However, the
script should be executable by the web
group to ensure that the users updating
the web page can use the script, but that general system users
cannot run the script. You also need to have Perl installed and
Index: openacs-4/packages/acs-core-docs/www/install-php.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-php.adp,v
diff -u -r1.4.2.2 -r1.4.2.3
--- openacs-4/packages/acs-core-docs/www/install-php.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2
+++ openacs-4/packages/acs-core-docs/www/install-php.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3
@@ -25,7 +25,7 @@
[root php-4.3.4]# make install
Once installed you can enable this by configuring your config
file. Make sure your config file supports php (it should have a php
-section with it). Furthermore add index.php
as the last element to
+section with it). Furthermore, add index.php
as the last element to
your directoryfile
directive.
/var/qmail/doc/INSTALL.ctl
to find out how
to configure qmail.[root qmail-1.03]#./config-fast yourserver.test
-Your fully qualified host name is yourserver.test. +Your fully qualified hostname is yourserver.test. Putting yourserver.test into control/me... Putting yourserver.test into control/defaultdomain... Putting yourserver.test into control/plusdomain... Index: openacs-4/packages/acs-core-docs/www/install-redhat.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/install-redhat.adp,v diff -u -r1.5.2.5 -r1.5.2.6 --- openacs-4/packages/acs-core-docs/www/install-redhat.adp 26 Aug 2020 07:46:25 -0000 1.5.2.5 +++ openacs-4/packages/acs-core-docs/www/install-redhat.adp 5 Jan 2021 17:33:39 -0000 1.5.2.6 @@ -87,7 +87,7 @@ guess. Click, uncheck
Configure using DHCP
and type in your IP and netmask. Click.
Type in your host name, gateway, and DNS server(s). Then click +Ok.
Type in your hostname, gateway, and DNS server(s). Then click
.
We're going to use the firewall template for high security,
meaning that we'll block almost all incoming traffic. Then
@@ -105,7 +105,7 @@
Select any additional languages you want
the computer to support and then click
-
Choose your time zone and click
Choose your timezone and click .
Type in a root password, twice.
On the Package selection page, we're going to uncheck a lot of packages that install software we don't need, and add Index: openacs-4/packages/acs-core-docs/www/maint-performance.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maint-performance.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/maint-performance.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/maint-performance.adp 5 Jan 2021 17:33:39 -0000 1.4.2.5 @@ -12,7 +12,7 @@ Diagnosing Performance Problems
Did performance problems happen overnight, or did they sneak up on you? Any clue what caused the performance problems (e.g. loading -20K users into .LRN)
Is the file system out of space? Is the machine swapping to disk +20K users into .LRN)
Is the filesystem out of space? Is the machine swapping to disk constantly?
Isolating and solving database problems.
Without daily internal maintenance, most databases slowly Index: openacs-4/packages/acs-core-docs/www/maintenance-deploy.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/maintenance-deploy.adp,v diff -u -r1.5.2.4 -r1.5.2.5 --- openacs-4/packages/acs-core-docs/www/maintenance-deploy.adp 26 Aug 2020 07:46:25 -0000 1.5.2.4 +++ openacs-4/packages/acs-core-docs/www/maintenance-deploy.adp 5 Jan 2021 17:33:39 -0000 1.5.2.5 @@ -113,8 +113,7 @@ additional measures typically take the form of source control tags and system version numbers. The parallel-server approach also guarantees rollback because the original working service is not -touched; it is merely set aside.
This approach can has limitations. If the database or file -system regularly receiving new data, you must interrupt this +touched; it is merely set aside.
This approach can has limitations. If the database or filesystem regularly receiving new data, you must interrupt this function or risk losing data in the shuffle. It also requires extra steps if the database will be affected.
For Linux Standard Base compliance and ease of backup, all of
the files in each OpenACS site are stored in a subdirectory of
/var/lib/aolserver
, one
@@ -359,8 +359,7 @@
[$OPENACS_SERVICE_NAME $OPENACS_SERVICE_NAME]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/etc
[$OPENACS_SERVICE_NAME etc]$ emacs config.tcl
You can continue without changing any values in the file.
-However, if you don't change address
to match the computer's ip
-address, you won't be able to browse to your server from other
+However, if you don't change address
to match the computer's IP address, you won't be able to browse to your server from other
machines.
httpport - If you want Index: openacs-4/packages/acs-core-docs/www/oracle.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/oracle.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/oracle.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/oracle.adp 5 Jan 2021 17:33:39 -0000 1.4.2.3 @@ -110,7 +110,7 @@ that password.
Setup the installation location for Oracle. While Oracle can
-reside in a variety of places in the file system, OpenACS has
+reside in a variety of places in the filesystem, OpenACS has
adopted /ora8
as the base
directory.
Note: the Oracle @@ -403,7 +403,7 @@
Congratulations, you have just installed Oracle 8.1.7 Server! However, you still need to create a database which can take about -an hour of non-interactive time, so don't quit yet.
+an hour of noninteractive time, so don't quit yet.This step will take you through the steps of creating a @@ -450,7 +450,7 @@ going to examine the contents of this file before creating our database.)
Click the "Save
"
button. Oracle will automatically save it to the correct directory
-and with the correct file name. This will likely be /ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib/sqlora8.sh
+and with the correct filename. This will likely be /ora8/m01/app/oracle/product/8.1.7/assistants/dbca/jlib/sqlora8.sh
It will alert you that the script has been saved successfully.
Now we need to customize the database configuration a bit. While Index: openacs-4/packages/acs-core-docs/www/packages.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/packages.adp,v diff -u -r1.7.2.4 -r1.7.2.5 --- openacs-4/packages/acs-core-docs/www/packages.adp 26 Aug 2020 07:46:25 -0000 1.7.2.4 +++ openacs-4/packages/acs-core-docs/www/packages.adp 5 Jan 2021 17:33:39 -0000 1.7.2.5 @@ -18,7 +18,7 @@ OpenACS. OpenACS packages are installed and maintained with the OpenACS Package Manager (APM) which is part of the acs-admin package. This document presents reasons for packaging software, -conventions for the file system and naming that must be followed, +conventions for the filesystem and naming that must be followed, and step by step instructions for creating a new package for the "Notes" example package.
Each package encapsulates all of its data model, library code, logic, administration pages and user pages in a single part of the file tree. This means developers can track down everything that is related to a -particular package without hunting all over the file system. +particular package without hunting all over the filesystem. Encapsulating everything about a package in one place also makes it much easier to distribute packages independently from the OpenACS Core.
In order to make this work, we need a system that keeps track of @@ -277,7 +277,7 @@
This is a short text string that should uniquely name your
package to distinguish it from all the others. It is used as a
database key to keep track of the package and as the name of the
-directory in the file system where all the files related to your
+directory in the filesystem where all the files related to your
package will live. Example package keys in the current system
include: forums
, acs-kernel
and so on. For the example
application, we will use the package key notes
.
This is a short human readable name for your package. For our
@@ -309,8 +309,7 @@
click the link called "notes" to go to the management
page for the new package. Now click the link called "Manage
file information", then the "Scan the packages/notes
directory for additional
-files in this package" link on that page to scan the file
-system for new files. This will bring you do a page that lists all
+files in this package" link on that page to scan the filesystem for new files. This will bring you to a page that lists all
the files you just added and lets you add them to the notes
package.
Note that while the .sql
files have been added to the package, they have not been loaded into the database.
For the purposes of development, you have to load the data model by
@@ -350,8 +349,7 @@
What we have to do is mount
the application into the site map. That is, we have to define the
URL from which the application will serve its pages.
In OpenACS 5, administrators can define an arbitrary mapping
-between the URLs the user types and the actual file in the file
-system that is served. This mapping is called the site map and entries in the site map are
+between the URLs the user types and the actual file in the filesystem that is served. This mapping is called the site map and entries in the site map are
called site nodes. Each site
node maps a URL to an OpenACS object. Since package instances are
objects, the site map allows us to easily map package instances to
@@ -408,4 +406,4 @@
System"
homeLink="index" homeLabel="Home"
upLink="dev-guide" upLabel="Up">
-
\ No newline at end of file
+
Index: openacs-4/packages/acs-core-docs/www/packages.html
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/packages.html,v
diff -u -r1.57.2.3 -r1.57.2.4
--- openacs-4/packages/acs-core-docs/www/packages.html 27 Jun 2019 18:22:22 -0000 1.57.2.3
+++ openacs-4/packages/acs-core-docs/www/packages.html 5 Jan 2021 17:33:40 -0000 1.57.2.4
@@ -331,7 +331,7 @@
file information", then the "Scan the
packages/notes
directory for
additional files in this package" link on that page to scan
- the file system for new files. This will bring you do a page
+ the file system for new files. This will bring you to a page
that lists all the files you just added and lets you add them to
the notes
package.
Index: openacs-4/packages/acs-core-docs/www/parties.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/parties.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/parties.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/parties.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -154,7 +154,7 @@ example, a person might be listed in a system as both an individual (direct membership) and a member of a household (indirect membership) at a video rental store.
-# sql code
+# SQL code
create or replace package membership_rel
as
@@ -203,7 +203,7 @@
is maintained for you by the API. So users do not see some random
PL/SQL error message, do not give them the option to create a
composition relation that would result in a circular reference.
-# sql code
+# SQL code
create or replace package composition_rel
as
Index: openacs-4/packages/acs-core-docs/www/permissions-design.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions-design.adp,v
diff -u -r1.4.2.2 -r1.4.2.3
--- openacs-4/packages/acs-core-docs/www/permissions-design.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2
+++ openacs-4/packages/acs-core-docs/www/permissions-design.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3
@@ -211,7 +211,7 @@
returns true or false, the other presents an error page.To receive a true or false value, Tcl code should call:
permission::permission_p -object_id $object_id -party_id $user_id -privilege $method
If the user_id
argument is
-left out, then the currently logged in user is checked. To create
+left out, then the currently logged-in user is checked. To create
an error page, Tcl code should call:
permission::require_permission -object_id $object_id -privilege $method
These procedures are defined in acs-permissions-procs.tcl
.
Index: openacs-4/packages/acs-core-docs/www/permissions.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/permissions.adp,v
diff -u -r1.4.2.2 -r1.4.2.3
--- openacs-4/packages/acs-core-docs/www/permissions.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2
+++ openacs-4/packages/acs-core-docs/www/permissions.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3
@@ -109,7 +109,7 @@
explicitly require admin privileges. No substitutions.To give a user permission to perform a particular operation on a
particular object you call acs_permission.grant_permission
like
this:
-# sql code
+# SQL code
acs_permission.grant_permission (
object_id => some_object_id,
grantee_id => some_party_id,
@@ -119,7 +119,7 @@
Using just these mechanisms is enough for developers and
administrators to effectively define access control for every
object in a system.
Explicitly defining permissions to every object individually
-would become very tedious. OpenACS provides a object contexts as a
+would become very tedious. OpenACS provides object contexts as a
means for controlling permissions of a large group of objects at
the same time.
Explicitly defining permissions to every object individually would become very tedious. -OpenACS provides a object contexts as a means for controlling permissions of a large group +OpenACS provides object contexts as a means for controlling permissions of a large group of objects at the same time.
In OpenACS 5.9.0, object context is a scoping Index: openacs-4/packages/acs-core-docs/www/release-notes.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/release-notes.adp,v diff -u -r1.8.2.6 -r1.8.2.7 --- openacs-4/packages/acs-core-docs/www/release-notes.adp 26 Aug 2020 07:46:25 -0000 1.8.2.6 +++ openacs-4/packages/acs-core-docs/www/release-notes.adp 5 Jan 2021 17:33:40 -0000 1.8.2.7 @@ -67,15 +67,15 @@ in OpenACS 5.9.0):
36 files deleted
Removed more than 100 obsolete named queries
Stripped misleading SQL statements
Marked redundant / uncalled sql functions as deprecated
Replaced usages of obsolete view +
Marked redundant / uncalled SQL functions as deprecated
Replaced usages of obsolete view "all_object_party_privilege_map" by "acs_object_party_privilege_map"
Removed type discrepancy introduced in 2002:
acs_object_types.object_type has type varchar(1000), while
acs_object_types.supertype has type varchar(100)
... several more data types are involved, using acs_object_types.object_type as foreign key
Simplified core sql functions by using defaults:
Simplified core SQL functions by using defaults:
Number of functions reduced by a factor of 2 compared to OpenACS 5.9.0 (while providing compatibility for clients using old versions),
Reduced code redundancy
acs-kernel (recommended to be set via config file in section "ns/server/${server}/>acs"
NsShutdownWithNonZeroExitCode: tell NaviServer to return with a -non-zero return code to cause restart (important under windows)
LogIncludeUserId: include user_id in access log
LogIncludeUserId: include user_id in access log
acs-api-browser:
ValidateCSRFP: make checking of CSRF optional (default 1)
xotcl-request-monitor
Added class "BanUser" (use. e.g. ip address to +
Added class "BanUser" (use. e.g. IP address to disallow requests from a user via request monitor)
Added support for optional user tracking in database
Added support for monitoring response-time for certain URLs via munin
Increased usage of XOTcl 2.0 variable resolver (potentially speed improvement 4x)
Performed some refactoring of response-time handling to allow @@ -443,7 +443,7 @@
Cleanup of .xql files in acs-subsite:
Some cleanup of .xql files: removed misleading sql-statements from db_* calls, which were ignored due .xql files
Removed bug where same query-name was used in different branches -of an if-statement for different sql statements, but the query-name +of an if-statement for different SQL statements, but the query-name lead to the wrong result.
Removed multiple entries of same query name from .xql files (e.g. the entry "package_create_attribute_list.select_type_info" was 7 @@ -474,7 +474,7 @@ of paths, HTML etc.
Improved include-handling: All includes are now theme-able, interfaces of includes can be defined with "ad_include_contract" (similar to ad_page_contract).
Improved them-ability for display_templates. One can now provide -a display_template_name (similar to the sql statement name) to +a display_template_name (similar to the SQL statement name) to refer to display templates. This enables reusability and is theme-able.
Dimensional slider reform (ad_dimensional): Removed hard-coded table layout from dimensional slider. Add backwards compatible @@ -496,7 +496,7 @@ (controlled via package parameter "TclTraceLogServerities" in the acs-tcl package parameters)
Added ability to save data sent by ns_return in files on the -file system. This can be used to validate HTML content also for +filesystem. This can be used to validate HTML content also for password protected pages (controlled via package parameter "TclTraceSaveNsReturn" in the acs-tcl package parameters)
New API function "ad_log" having the same interface as @@ -594,7 +594,7 @@
Made changes that extend acs-kernel's create_type and create_attribute procs, so they're optionally able to create -sql tables and columns. Optional metadata params allow for the +SQL tables and columns. Optional metadata params allow for the automatic generation of foreign key references, check exprs, etc.
Although in theory coding comes after design, which comes after requirements, we do not, and perhaps -should not, always follow such a rigid process (a.k.a. the +should not, always follow such a rigid process (aka the waterfall lifecycle). Often, there is a pre-existing system or prototype first, and thus you may want to write some thoughts on implementation, for aiding and guiding yourself or other Index: openacs-4/packages/acs-core-docs/www/rp-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/rp-design.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/rp-design.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/rp-design.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -60,7 +60,7 @@ file in the filesystem.
abstract file or abstract path -- A URL -that has been translated into a file system path (probably by +that has been translated into a filesystem path (probably by prepending the appropriate pageroot), but still doesn't have any extension and so does not directly correspond to a file in the filesystem.
@@ -86,7 +86,7 @@ figure out which package_id is associated with a given package_url, and package mountings must be persistent across server restarts and users must be able to manipulate the mountings -on a live site, therefore this mapping is stored in the +on a live site, therefore, this mapping is stored in the database.
Authentication and Authorization
Once the request processor has located both the package_id and concrete file associated with the request, authentication is Index: openacs-4/packages/acs-core-docs/www/security-design.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-design.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/security-design.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/security-design.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -64,7 +64,7 @@ reauthenticate themselves over SSL when performing some action that requires secure authentication.
Although this makes the site less user friendly, this design significantly increases the security of the system because this -insures that the authentication tokens presented to a secure +ensures that the authentication tokens presented to a secure section of the web site were not sniffed. The system is not entirely secure, since the actual authentication password can be sniffed from the system, after which the sniffer can apply for a @@ -206,7 +206,7 @@ Session Creation
The creation and setup of sessions is handled in sec_setup_session
, which is called either
to create a new session from sec_handler
or from ad_user_login
when there is a change in
authorization level. The session management code must do two
-things: insure that session-level data does not float between
+things: ensure that session-level data does not float between
users, and update the users table which has columns for
n_sessions
, last_visit
, and second_to_last_visit
.
If there is no session already setup on this hit, a new session
is created. This happens when sec_setup_session
is called from
@@ -215,8 +215,8 @@
the current session is continued, simply with a higher
authorization state. This allows for data associated with a session
to be carried over when a user logs in.
The users table is updated by sec_update_user_session_info
which is
-called when an existing session is assigned a non-zero user_id, or
-when a session is created with a non-zero user_id.
@@ -495,7 +495,7 @@ nice to expand the interface to allow for more persistent properties. In the past, there was a sec_browser_properties table that held permanent properties about each unique visitor (for -logged in users, these are just user properties). This was +logged-in users, these are just user properties). This was unscalable because there was no way to delete these properties, and the table tended to grow to millions of rows. It would be nice to view browser and session properties as two types of client Index: openacs-4/packages/acs-core-docs/www/security-notes.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/security-notes.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/security-notes.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/security-notes.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -19,7 +19,7 @@
If a user switches to HTTPS after logging into the system via -HTTP, the user must obtain a secure token. To insure security, the +HTTP, the user must obtain a secure token. To ensure security, the only way to obtain a secure token in the security system is to authenticate yourself via password over an HTTPS connection. Thus, users may need to log on Index: openacs-4/packages/acs-core-docs/www/snapshot-backup.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/snapshot-backup.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/snapshot-backup.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/snapshot-backup.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -15,7 +15,7 @@ and just before an upgrade. First, you back up the database to a file within the file tree. Then, you back up the file tree. All of the information needed to rebuild the site, including the AOLserver -config files, is then in tree for regular file system backup.
Back up the database to a file.
-Back up the file system. Back up all of
+Back up the filesystem. Back up all of
the files in the service, including the database backup file but
excluding the auto-generated supervise
directory, which is unnecessary and has
complicated permissions.
In the tar command,
[root root]#su - $OPENACS_SERVICE_NAME
[$OPENACS_SERVICE_NAME ~]$createdb $OPENACS_SERVICE_NAME Index: openacs-4/packages/acs-core-docs/www/style-guide.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/style-guide.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/style-guide.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/style-guide.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -14,7 +14,7 @@ Motivation
Why have coding standards for OpenACS? And if the code works why change it to adhere to some arbitrary rules?
Well, first lets consider the OpenACS code base (all this as of
December 2003 and including dotLRN). There are about 390,000 lines
-of Tcl code, about 460,000 lines of sql (in datamodel scripts and
+of Tcl code, about 460,000 lines of SQL (in datamodel scripts and
.xql files), about 80,000 lines of markup in .adp files, and about
100,000 lines of documentation. All told, just about a million
lines of "stuff". In terms of logical units there are
Index: openacs-4/packages/acs-core-docs/www/subsites.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/subsites.adp,v
diff -u -r1.4.2.3 -r1.4.2.4
--- openacs-4/packages/acs-core-docs/www/subsites.adp 26 Aug 2020 07:46:25 -0000 1.4.2.3
+++ openacs-4/packages/acs-core-docs/www/subsites.adp 5 Jan 2021 17:33:40 -0000 1.4.2.4
@@ -37,7 +37,7 @@
the site map. We'll repeat this description here, assuming that
you have mounted an instance of Notes at the URL /notes
as we did in the packages-example:
AOLserver receives your request for the URL /notes/somepage
.
This URL is passed to the request processor.
The RP looks up the URL in the site map, and sees that the
-object mounted at that location is an instance of the notes
application.
The RP asks the package manager where in the file system the
+object mounted at that location is an instance of the notes
application.
The RP asks the package manager where in the filesystem the
Notes package lives. In the standard case, this would be
ROOT/packages/notes
.
The RP translates the URL to serve a page relative to the page
root of the application, which is ROOT/packages/notes/www/
. Therefore, the
Index: openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.adp,v
diff -u -r1.6.2.2 -r1.6.2.3
--- openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.adp 26 Aug 2020 07:46:25 -0000 1.6.2.2
+++ openacs-4/packages/acs-core-docs/www/tutorial-admin-pages.adp 5 Jan 2021 17:33:40 -0000 1.6.2.3
@@ -61,7 +61,7 @@
a link to it somewhere in the system so that admins don't have
to type in the /admin
every
time they need to reach it. You could put a static link to the
-toplevel index.adp
but that
+top-level index.adp
but that
might be distracting for people who are not admins. Besides, some
people consider it impolite to first offer a link and then display
a nasty "You don't have permission to access this
Index: openacs-4/packages/acs-core-docs/www/tutorial-categories.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-categories.adp,v
diff -u -r1.4.2.3 -r1.4.2.4
--- openacs-4/packages/acs-core-docs/www/tutorial-categories.adp 26 Aug 2020 07:46:25 -0000 1.4.2.3
+++ openacs-4/packages/acs-core-docs/www/tutorial-categories.adp 5 Jan 2021 17:33:40 -0000 1.4.2.4
@@ -265,7 +265,7 @@
</group>
</multiple>
<a href="\@package_url\@view?\@YOURPARAMS\@">All Items</if>
-
Finally you need a an index.vuh
in your www folder to rewrite the
+
Finally you need an index.vuh
in your www folder to rewrite the
URLs correctly, the section called “Using .vuh
files for pretty URLs”:
set url /[ad_conn extra_url] Index: openacs-4/packages/acs-core-docs/www/tutorial-database.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-database.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/tutorial-database.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-database.adp 5 Jan 2021 17:33:40 -0000 1.4.2.5 @@ -44,7 +44,7 @@ Repository.)The top of each sql file has some standard comments, including +
The top of each SQL file has some standard comments, including
doc tags such as \@author
which
will be picked up by the API browser. The string $Id:$
will automatically be expanded when
the file is checked in to cvs.
[$OPENACS_SERVICE_NAME ~]$ cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/sql/postgresql
@@ -105,7 +105,7 @@
0
(1 row)
-[$OPENACS_SERVICE_NAME postgresql]$
If there are errors, use them to debug the sql file and try +[$OPENACS_SERVICE_NAME postgresql]$
If there are errors, use them to debug the SQL file and try again. If there are errors in the database table creation, you may need to run the drop script to drop the table so that you can recreate it. The drop script will probably have errors since some Index: openacs-4/packages/acs-core-docs/www/tutorial-debug.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-debug.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/tutorial-debug.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/tutorial-debug.adp 5 Jan 2021 17:33:40 -0000 1.4.2.5 @@ -78,7 +78,7 @@ I've done several tests by now and have found the process to be extremely easy and useful. It's a joy to work with automated testing once you get the hang of it.
Create the directory that will contain the test script and edit -the script file. The directory location and file name are standards +the script file. The directory location and filename are standards which are recognized by the automated testing package:
[$OPENACS_SERVICE_NAME www]$mkdir /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
[$OPENACS_SERVICE_NAME www]$cd /var/lib/aolserver/$OPENACS_SERVICE_NAME/packages/myfirstpackage/tcl/test
[$OPENACS_SERVICE_NAME test]$emacs myfirstpackages-procs.tcl
Index: openacs-4/packages/acs-core-docs/www/tutorial-notifications.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/tutorial-notifications.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/tutorial-notifications.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/tutorial-notifications.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -21,7 +21,7 @@ script similar to the one below needs to be loaded into Postgresql. I create this script in a package-name/sql/postgresql/package-name-notifications-init.sql -file. I then load this file from my create sql file. The following +file. I then load this file from my create SQL file. The following code snippet is taken from Weblogger. It creates a lars_blogger_notif notification type (which was created above).create function inline_0() returns integer as $$ Index: openacs-4/packages/acs-core-docs/www/update-translations.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/update-translations.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/update-translations.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/update-translations.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -14,14 +14,14 @@Identify any new locales that have been created. For each new locale, check the parameters, especially that the locale is in the format [two-letter code for language, -lower-case]_[TWO-LETTER CODE FOR COUNTRY, UPPER-CASE], +lowercase]_[TWO-LETTER CODE FOR COUNTRY, UPPER-CASE], and create a sql command. A example sql command for creating a locale is:
insert into ad_locales (locale, label, language, country, nls_language, nls_territory, nls_charset, mime_charset, default_p, enabled_p) values ('fa_IR', 'Farsi (IR)', 'fa', 'IR', 'FARSI', 'IRAN', 'AL24UTFFSS', 'windows-1256', 't', 'f');Put this command into the following four files. For the upgrade -files, the correct file name will depend on the exact version.
+files, the correct filename will depend on the exact version.
/packages/acs-lang/sql/postgresql/ad-locales.sql
/packages/acs-lang/sql/postgresql/upgrade/upgrade-current-version.sql
/packages/acs-lang/sql/oracle/ad-locales.sql
/packages/acs-lang/sql/oracle/upgrade/upgrade-current-version.sql
Make a backup of the production database. Restore it as a new Index: openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.adp,v diff -u -r1.4.2.4 -r1.4.2.5 --- openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.adp 26 Aug 2020 07:46:25 -0000 1.4.2.4 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.5-to-4.6.adp 5 Jan 2021 17:33:40 -0000 1.4.2.5 @@ -21,7 +21,7 @@
Make a Backup. Back up the database and -file system (see the section called “Manual backup and +filesystem (see the section called “Manual backup and recovery”).
OPTIONAL: Upgrade OpenFTS. the section called “Upgrading OpenFTS from 0.2 to 0.3.2” @@ -30,7 +30,7 @@
-Upgrade the file system. the section called “Upgrading the +Upgrade the filesystem. the section called “Upgrading the OpenACS files”
Start the Index: openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/upgrade-4.6.3-to-5.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -19,9 +19,8 @@ 7.3; Table 2.2, “Version Compatibility Matrix”
-
-Upgrade the file system for +
+Upgrade the filesystem for packages/acs-kernel. the section called “Upgrading the OpenACS files”
- Index: openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.adp,v diff -u -r1.4.2.2 -r1.4.2.3 --- openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.adp 26 Aug 2020 07:46:25 -0000 1.4.2.2 +++ openacs-4/packages/acs-core-docs/www/upgrade-5-0-dot.adp 5 Jan 2021 17:33:40 -0000 1.4.2.3 @@ -27,11 +27,11 @@ have custom code, and your site is in a CVS repository, upgrade with these steps:
-Upgrade the file system for all packages in +Upgrade the filesystem for all packages in use. the section called “Upgrading the OpenACS files”
Go to /acs-admin/install/ and click "Upgrade Your -System" in "Install from local file system"
Select all of the packages you want to upgrade and proceed
After upgrade is complete, restart the server as indicated.
If you are using locales other than en_US, go to acs-lang/admin +System" in "Install from local filesystem"
Select all of the packages you want to upgrade and proceed
After upgrade is complete, restart the server as indicated.
- Index: openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.adp,v diff -u -r1.5.2.4 -r1.5.2.5 --- openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.adp 26 Aug 2020 07:46:25 -0000 1.5.2.4 +++ openacs-4/packages/acs-core-docs/www/upgrade-openacs-files.adp 5 Jan 2021 17:33:40 -0000 1.5.2.5 @@ -14,11 +14,10 @@ Choosing a Method to Upgrade your Files
If you are using locales other than en_US, go to acs-lang/admin and "Import all Messages" to load the new translated messages. Your local translations, if any, will take precedence over imported translations.
OpenACS is distributed in many different ways:
as a collection of files
as one big tarball
via CVS
- -
via automatic download from within the APM (package manager)
Upgrades work by first changing the file system (via any of the -previous methods), and then using the APM to scan the file system, +
Upgrades work by first changing the filesystem (via any of the +previous methods), and then using the APM to scan the filesystem, find upgrade scripts, and execute them. Starting with OpenACS 5.0, -the last method was added, which automatically changes the file -system for you. If you are using the last method, you can skip this +the last method was added, which automatically changes the filesystem for you. If you are using the last method, you can skip this page. This page describes whether or not you need to be upgrading using this page or not: the section called “Upgrading an OpenACS 5.0.0 or greater Index: openacs-4/packages/acs-core-docs/www/unit-testing-guide/index.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-core-docs/www/unit-testing-guide/index.adp,v diff -u -r1.3.2.2 -r1.3.2.3 --- openacs-4/packages/acs-core-docs/www/unit-testing-guide/index.adp 26 Aug 2020 07:46:26 -0000 1.3.2.2 +++ openacs-4/packages/acs-core-docs/www/unit-testing-guide/index.adp 5 Jan 2021 17:33:40 -0000 1.3.2.3 @@ -39,14 +39,14 @@ need to give it a base URL, a username, and password for that user. are the "JVMARG" lines in the "JUNIT" section. ). In the near future, this will be moved out of the subdirectories -and either into the toplevel build.xml file or into a configuration +and either into the top-level build.xml file or into a configuration file.
You should now be ready to run the tests. Go to your
server's "packages" directory and type source
./paths.sh
to set up your classpath. Now type
-ant
. Ant should find the toplevel build.xml file,
+ant
. Ant should find the top-level build.xml file,
check that it can see JUnit, compile your java files, and finally
-call Ant on each of the sub-directory build.xml files to run the
+call Ant on each of the subdirectory build.xml files to run the
tests. You should be shown a report of which tests failed and which
succeeded.