Filtered by date 2023-11-24, 1 - 4 of 4 Postings (
all,
summary)
Created by Malte Sussdorff, last modified by Gustaf Neumann 24 Nov 2023, at 06:48 PM
When running an OpenACS site, a couple of packages come in handy to monitor your site and see why and where bottlenecks are located. To use them, you need to install NaviServer with libthread support. If you are lazy as I am, just download the installation script from naviserver-openacs and get started. This will make sure that you have all the necessary ingredients installed.
Then go to your systems' administration at /acs-admin and install two packages:
- xotcl-request-processor
- monitoring
The first one gives you an overview over the system performance, while the latter allows you to scan the error.log for errors and have them send to you via e-mail. A little bit more detail:
Monitoring
The monitoring package has a couple of nice things which help you monitor your website. First and foremost, you can use it to get the error logs. This is HIGHLY recommended, as your users will not report errors to you. They will just complain internally and not use your site anymore. We learned this the hard way.
Once you have monitoring installed (and mounted at e.g. /monitoring) go there and edit the parameters. There you can define who should get the error reports send and how often they are sent out. NOTE: They will be sent out with every restart of the server, so this gives you a pretty good idea if your server has restarted.
You can also get the TOP reports (if you have a high load on the system), which is something I usually don't use, but maybe it is of importance for you.
Last but not least (for me at least) you can view which scheduled procs are running on your server and when they are executed next time. This is really helpful to understand what is happening on your site of the things you cannot see.
XOTcl Request Monitor
The request monitor (automatically mounted under /request-monitor) will give you a performance overview of your site, how many users are online, what are the average page load times ....
If you look at the overview page, you will first be delighted to see that the average times are so low. This is misleading, as the quick fetches to ".css" files and so on are counted into the equation as well.
More accurate is the aggregated stats view, which allows you to see which URLs are called most often on your site and how expensive they are to load. It is a good idea to have the most often called pages be *fast*.
One thing we do as well is to run the "last 100 request" page on a continuous basis in a browser window. It refreshes every 60 seconds and if you get the sorting right you can actually get a good overview of the activity on your site (e.g. we order by execution time, so we always see how long users are waiting for their pages and if this number goes up considerably, well, then we know we have to act!).
Created by Emmanuelle Raffenne, last modified by Gustaf Neumann 24 Nov 2023, at 06:41 PM
Package Specification Summary for Package: chat
Summary: |
Server based chat with an html and ajax client. |
Description: |
Adapted by Peter Alberer 2006/03/25 to allow java and ajax to coexist.
Adapted by Tekne 2006/03/01 to replace JAVA server with AJAX; make use of generalized chat class from xotcl-core.
Adapted by Antonio Pisano circa 2016-2019 to reduce bloating and exploit xotcl ORM and server push capabilities. Java server was discontinued in the process.
Adapted by Hector Romojaro Gomez 2018-2019 to give a modern look and feel, customizable skins and avatar picture.
|
Documentation: |
Package Documentation |
Maturity: |
Mature |
This package depends on: |
acs-kernel acs-tcl acs-templating xowiki |
Packages that depend on chat: |
chat-includelet chat-portlet dotlrn-chat |
Package parameters: |
- ChatSkin
- Chat skin. Current options are 'classic', 'bubbles' and 'minimal'. (default bubbles, type string, scope instance)
- LinkRegex
- Regular expression to detect URLs in chat messages, creating html links accordingly. By default, it matches any string starting with http:// or https://. Please notice the backslash double escaping. (default (https?:\\/\\/[^\\s]+), type string, scope global)
- UserColors
- A list of colors to assign to usernames in the chat (default #006400 #0000ff #b8860b #bdb76b #8b0000, type string, scope instance)
|
Bug Tracker Summary for Package: chat
Code Metrics Summary for Package: chat
# Tcl Procs |
26 |
# Tcl Lines |
1079 |
# Tcl Blank Lines |
127 |
# Tcl Comment Lines |
67 |
# Automated Tests |
0 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 65 (blank 12 comments 12)
ORA: 69 (blank 12 comments 12) |
# ADP pages |
17 |
# ADP lines |
340 |
# Include pages (chat/lib/) |
3 |
# Documentation pages |
0
(Package Documentation)
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/chat/tree/oacs-5-10
|
The chat package is currently using two different chat engines:
- The Java applet and the Java chat server, or
- the Ajax based chat class from xotcl-core
If no xotcl-core is installed, one can only use the version with Java applet. If xotcl-core is installed, one has to option to choose between both engines via parameter.
In essence, the Ajax based variant is the chat implementation from xowiki plus chat room management and a list of the currently connected users. Originally, the AJAX-based chat class (::xo::Chat) was developed for xowiki, but later moved to xotcl-core such that the chat package does not need a dependency on xotcl-core and xowiki.
Actually, the chat support in xowiki contains a different variety of AJAX based communication strategies:
- Polling mode (the web browser queries via AJAX in definable intervals the server, and checks, if there is some new information available), and
- Streaming mode (the client opens a connection to the server, the server pushes the information back to the client. xowiki chat supports two different sub-modes:
- streaming of JSON objects via asynchronous AJAX sockets, or
- scripted streaming, where the browser loads HTML with embedded script tags in the background from a hidden iframe
Both (2a) and (2b) require libthread installed and NaviServer. However, the advantage of the streaming approaches is that they are much faster in the look and feel and that they are better scalable on sites with a high load. 2a works only on Firefox (not in current versions of IE or Safari) and has the advantage over 2b that the browser does not show the background activity (no spinning wheel in Firefox). 2b is more robust and works with Safari, IE and Firefox (the information about the browser support is from 2006, and most probably different today). Both streaming modes implement, what is sometimes called COMET.
When the chat package uses the ::xo::Chat, it uses it only in currently only polling mode, which has the least requirements. This has been as well tested with (Firefox, IE and Safari).
Created by Gustaf Neumann, last modified by Gustaf Neumann 24 Nov 2023, at 06:36 PM
XoWiki is a wiki implementation for OpenACS implemented based on xotcl-core. Instead of trying to implement the full set of wiki markup commands in systems like MediaWiki, XoWiki is based on a rich text editor and focuses more on integration with OpenACS (e.g. categories, general comments, adp-includes, ad-substitution of template variables). XoWiki combines aspects of wikis (ease of page-creation) with aspects of a content management system (revisions, reusable content, multiple languages, page templates).
XoWiki provides functionalities of enterprise wiki systems (such as combining structured with unstructured information, providing security policies, etc.). XoWiki is reused in several other packages such as XoWiki Content flow, S5 or the Learning Content Tool.
Documentation:
Package Specification Summary for Package: xowiki
Summary: |
A xotcl-based enterprise wiki system with multiple object types |
Description: |
<pre>
XoWiki is a Wiki implementation for OpenACS in XOTcl. Instead of
trying to implement the full set of Wiki markup commands of systems
like MediaWiki, XoWiki is based on a rich text editor and focuses more
on integration with OpenACS (e.g. categories, general comments,
ADP-includes). XoWiki combines aspects of wikis (ease of
page-creation) with aspects of a content management system (revisions,
reusable items, multiple languages). Furthermore, XoWiki allows one to
define different types of links such one could define book-structures
(where a navigation structure could be built on the fly) or glossaries
with different kind of word relationships (like synonyms,
etc.). XoWiki supports pages in multiple languages and is localized.
Some features:
- cross language links
- inclusion of ADP pages
- nesting of Wiki-pages
- large set of includable content (includelets)
- search
- tags
- categories
- RSS
- weblog
- podcasts
- notifications
- web 2.0 gadgets (digg, delicious, my yahoo)
- audio embedding
- different appearances (template_file)
- book-structures
- prototype pages
- import/export
- virtual presence
- analysis of collaboration networks
- forms
- named/unnamed pages
- various security policies
</pre> |
Maturity: |
Mature |
This package depends on: |
xotcl-core acs-datetime acs-kernel acs-tcl acs-templating acs-subsite acs-lang richtext-ckeditor4 categories file-storage general-comments acs-automated-testing |
Packages that depend on xowiki: |
chat content-portlet eduwiki learning-content learning-content-portlet pages s5 xolirc xowf xowiki-includelet xowiki-portlet |
Package parameters: |
- CacheSize
- Size of the xowiki_cache (default 400000, type number, scope global)
- MenuBar
- Activate experimental menubar stuff (default 0, type number, scope instance)
- MenuBarSymLinks
- Activate experimental menubar stuff (default 0, type number, scope instance)
- PackagePath
- Space delimited names of local URL paths pointing to xowiki instances from where this instance should inherit pages (example: /xowiki /public/wiki) (default , type string, scope instance)
- PreferredRichtextEditor
- Preferred richtext editor, such as: xinha, ckeditor, ckeditor4, ckeditor5, wym or tinymce (default ckeditor4, type string, scope global)
- extra_css
- One or more additional css file for this Instance (default , type string, scope instance)
- hstore_max_value_size
- When hstore is activate, don't store entries larger than this size in the hkey. This makes it possible to produce smaller hkey indices and to use e.g. GIN, which has a size limit of 2K. Set to 0 to disable the size limit (default 2000, type number, scope global)
- parameter_page
- ::xowiki::FormPage to search for parameters. The page name has to contain a language prefix and can refer to a different xowiki instance.
Example: //xowiki/en:xowiki-standard-parameter (default , type string, scope instance)
- security_policy
- Define the valid operations for different kind of users. Currently, two policies are predefined: ::xowiki::policy1 and ::xowiki::policy2. Policy1 requires for all destructive operations (deletes, delete_revision) and programmatical operations (involving tcl code, e.g. editing the ::xotcl::Objects) package admin rights, for reindex site wide admin right). Policy 2 requires also for destructive operations site wide admin rights. (default ::xowiki::policy1, type string, scope instance)
- template_file
- Name of the ADP file to be used for viewing xowiki pages. The default value is 'view-default'. Alternatively, one can use 'view-book' to view pages in book style (needs page_ordering) or e.g. 'oacs-view' for providing a view with the category-tree on the left, or any other tailored view (default view-default, type string, scope instance)
- top_includelet
- Specify an xowiki includelet (defined in ::xowiki::includelet::*) to be included on top over every pages. In order or add e.g. on each page of this wiki instance a listing of the users currently active in this xowiki instance, set the value of this parameter e.g. to 'presence -interval "10 minutes"'. The valid parameters are defined by the xowiki includlets. (default presence -interval "10 minutes", type string, scope instance)
- use_hstore
- Use hstore for accessing instance attributes. Create index for existing values via ::xowiki::hstore::update_form_instance_item_index -package_id $package_id (default 0, type number, scope instance)
- Description: PackageDescription
- Description of the Package. This description will appear for example in the Description of the default RSS feed for this package (default , type text, scope instance)
- Description: PackageTitle
- Title of the Package; this title will appear for example in the default RSS feed for this package. (default , type string, scope instance)
- Form: autoname
- Automatically name items of this instance (default 0, type number, scope instance)
- Form: display_page_order
- Display page_order attribute (Section) in edit forms if possible. (default 1, type number, scope instance)
- Options: include_in_google_sitemap_index
- Include the package in the google sitemap index (default 1, type number, scope instance)
- Options: my_yahoo_publisher
- Name of the publisher, when posting URLs to my yahoo (use in connection with with_yahoo_publisher) (default , type string, scope instance)
- Options: production_mode
- When this parameter is set, new pages are created in a "production" state, where they are not visible to users. These page have to be released via the admin pages. Notification and syndication is decativated, while pages are under "production". (default 0, type number, scope instance)
- Options: show_page_references
- If enabled it shows on a page view the pages that reference it (default 1, type number, scope instance)
- Options: show_per_object_categories
- If enabled it shows on a page view the categories assigned to this object (default 1, type number, scope instance)
- Options: with_delicious
- Add a delicious button to the page (default 0, type number, scope instance)
- Options: with_digg
- Add a button to submit article to digg (default 0, type number, scope instance)
- Options: with_general_comments
- use general comments package (default 1, type number, scope instance)
- Options: with_notifications
- Allow the user to register notifications (default 1, type number, scope instance)
- Options: with_tags
- allow user to provide tags to pages (default 1, type number, scope instance)
- Options: with_user_tracking
- track page view usage per user (default 1, type number, scope instance)
- Options: with_yahoo_publisher
- When specified, a button for adding the content to my.yahoo.com is added (default 0, type number, scope instance)
- Pages: index_page
- name of the page to be shown when the package instance is browsed (e.g. en:index) (default , type string, scope instance)
- Pages: weblog_page
- name of the page to show weblog (when clicking on tags) (default en:weblog, type string, scope instance)
- URL: fallback_languages
- Specify space delimited two character codes for checking default languages. When this parameter is nonempty, try to get the page in the specified languages as fallback rather than offering a link for creation of a page in the requested locale. Per default this parameter is empty. (default , type number, scope instance)
- URL: package_prefix
- Part of the URL used before language and page name. This setting is used, when a URL is computed. Per default, the package_prefix is determined by the side not. When for example a default xowiki instance is used as start page of OpenACS, the package_prefix can be set to / (default , type string, scope instance)
- URL: subst_blank_in_name
- normalize names of pages in a media wiki style. Most dominantly, spaces are turned into blanks. (default 1, type number, scope instance)
- URL: use_connection_locale
- When this flag is set, per-user specific information is used to determine the default language. Users with different language preferences will see under the same url different content. Per default this flag is turned off, and the package or system wide locale is used. (default 0, type number, scope instance)
- xinha: WidgetSpecs
- Specify pairs of "pagename,fieldname" followed by a Tcl list which is used as a widget spec for ad_form. "pagename" and "fieldname" can contain wild card characters. The following rather complex widget-specs are from OpenACS.org:
*,text {richtext(richtext),nospell,optional
{label Content}
{html {style {width: 100%}}}
{options {editor xinha plugins {Stylist OacsFs} height 350px javascript {
xinha_config.toolbar = [
['popupeditor', 'bold','italic','createlink','insertimage','separator'],
['killword','removeformat']
];
xinha_config.stylistLoadStylesheet('/resources/xowiki/examples/xinha-mc-styles.css',
{'p.angabe' : 'Aufgabenstellung',
'p.loesungshinweis' : 'Lösungshinweis',
'li.correct_choice' : 'Richtige Antwort',
'li.incorrect_choice' : 'Falsche Antwort'});
}}}}
(default , type text, scope instance)
|
Bug Tracker Summary for Package: xowiki
Code Metrics Summary for Package: xowiki
# Tcl Procs |
48 |
# Tcl Lines |
37312 |
# Tcl Blank Lines |
3759 |
# Tcl Comment Lines |
7644 |
# Automated Tests |
22 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
18 |
# ADP lines |
1659 |
# Include pages (xowiki/lib/) |
6 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/xowiki/tree/oacs-5-10
|
Available Includelets
The following includelets can be used in a page
- {{LTI-LaunchButton -launch_button_label Join Meeting -launch_button_title Click to join -title "" -presentation window}}
- {{activity-graph -max_edges 70 -cutoff 0.1 -max_activities:integer 100 -show_anonymous message}}
Include an activity graph
- {{available-formfields -flat:boolean false}}
List the available form field types of this installation.
- {{available-includelets}}
List the available includelets of this installation.
- {{book -category_id -menu_buttons edit -folder_mode false -locale "" -range "" -allow_reorder "" -orderby page_order,asc -with_footer false -publish_status ready}}
Show contents in book mode.
- {{bookmarklet-button -siteurl "" -label ""}}
Include bookmarklet button that makes it easy to add the
current page as a bookmark in the browser of the client.
- {{categories -tree_name "" -tree_style:boolean 1 -no_tree_name:boolean 0 -count:boolean 0 -summary:boolean 0 -locale "" -open_page "" -order_items_by title,asc -style mktree -category_ids "" -parent / -except_category_ids "" -allow_edit false -ordered_composite}}
List the specified category tree.
- {{categories-recent -max_entries:integer 10 -tree_name "" -locale "" -pretty_age off}}
Display recent entries by categories.
- {{chat -title "" -chat_id "" -mode "" -path "" -skin -login_messages_p -logout_messages_p -avatar_p -timewindow}}
Include a chat in the current page
- {{chat_room -chat_id -mode:optional "" -path:optional "" -skin:optional ""}}
Include a chat room
- {{child-resources -skin:optional yui-skin-sam -show_types ::xowiki::Page,::xowiki::File,::xowiki::Form,::xowiki::FormPage -regexp:optional -language_specific:boolean false -with_subtypes:boolean,optional false -orderby:token,optional last_modified,desc -publish_status:wordchar ready -view_target "" -html-content -parent . -columns
objects
edit
publish_status
object_type
name
last_modified
mod_user
duplicate
delete
-hide "" -menubar ""}}
Include the content of the current folder somewhat similar to explorer.
- {{collab-graph -max_edges 70 -cutoff 0.1 -show_anonymous message -user_id}}
Include a collaboration graph
- {{community-link -text "" -url ""}}
Include a link to the community including the current page.
This includelet is designed to work with dotlrn.
- {{composite-form -edit_links:boolean false -pages "" -ordered_pages}}
Create a form from the selection
- {{copy-item-button -page_id -alt copy -book_mode false}}
Button to copy a page
- {{countdown-timer -target_time "" -audio_alarm true}}
Countdown timer
- {{create-item-button -page_id -alt new -book_mode false}}
Button to create a new page based on the current one
- {{creation-date -source "" -format %m-%d-%Y}}
Include the creation date of the current
or specified page in the provided format.
- {{current-irc-log -date ""}}
- {{delete-item-button -page_id -title Delete -alt delete -book_mode false}}
Button to delete the current or a different page
- {{delicious -description "" -tags "" -url}}
Add a button to submit article to delicious.
- {{digg -description "" -url}}
Add a button to submit article to digg.
- {{edit-item-button -page_id -title Edit -alt edit -book_mode false -link "" -target ""}}
Button to edit the current or a different page
- {{exam-top-includelet -countdown_audio_alarm true -target_time "" -url_poll "" -url_dismiss "" -poll_interval 5000}}
This is the top includelet for the in-class exam, containing a
countdown timer and the personal notifications includelet
- {{flowplayer -mp4:required,nohtml}}
Include an mp4 image using flowplayer
- {{folders -show_full_tree false -context_tree_view false}}
List the folder tree of the current instance
- {{form-menu -form_item_id:integer -parent_id -form -buttons new answers -button_objs -return_url}}
Include a form menu for the specified Form
- {{form-stats -form -parent_id -property _state -orderby count,desc -renderer table}}
Include form statistics for the specofied Form page.
- {{form-usages -form_item_id:integer,1..n -form -parent_id -package_ids "" -orderby _raw_last_modified,desc -view_field _name -publish_status all -field_names -hidden_field_names _last_modified -extra_form_constraints "" -inherit_from_forms "" -category_id -unless -where -extra_where_clause "" -csv true -voting_form -voting_form_form "" -voting_form_anon_instances t -generate -with_form_link true -with_categories -wf -bulk_actions "" -buttons edit delete -renderer "" -return_url -date_format -with_checkboxes:boolean false}}
Show usages of the specified form.
- {{get -variable -form_variable -source ""}}
Get an instance variable from the current or from a different
page.
- {{graph}}
- {{gravatar -email:required -size 80}}
Include gravatar picture for the specified email
- {{html-file -title "" -extra_css "" -levels 0 -file:required}}
Include the specified HTML file
- {{iframe -title "" -url:required -width 100% -height 500px}}
Include an iframe containing the specified URL
- {{item-button}}
- {{jquery-carousel}}
Display a sequence of pages via jquery-carousel, based on book
includelet.
- {{jquery-cloud-carousel}}
Display a sequence of pages via jquery-cloud-carousel, based on book
includelet.
- {{jquery-infinite-carousel}}
Display a sequence of pages via jquery-infinite-carousel, based on book
includelet.
- {{jquery-spacegallery}}
Display a sequence of pages via jquery-spacegalleryl, based on book
includelet.
- {{kibana -chart openacs-status-codes -from now-24h -to now -hash "" -width:integer 800 -height:integer 400}}
Include a Kibana chart identified by the provided hash
- {{last-visited -max_entries:integer 20}}
Display last visited pages.
- {{launch-bigbluebutton}}
- {{launch-jupyter}}
- {{launch-zoom}}
- {{link-with-local-return-url -text "" -url ""}}
Insert a link with extra return URL pointing the current
object. This is particularly useful in cases, where a
return URL must be created for a page that does not yet
exist at time of definition (e.g. for link pointing to
concrete workflow instances)
- {{most-frequent-visitors -max_entries:integer 15}}
List the most frequent visitors.
- {{most-popular -max_entries:integer 10 -interval}}
Display most popular pages of this wiki instance.
- {{my-categories -summary 1}}
List the categories associated with the
current page.
- {{my-general-comments}}
List the general comments available for the
current page.
- {{my-references}}
List the pages which are referring to the
current page.
- {{my-refers}}
List the pages which are referred to the
current page.
- {{my-tags -summary 1}}
List the tags associated with the
current page.
- {{my-yahoo-publisher -publisher "" -rssurl}}
Name of the publisher, when posting URLs to my yahoo (use in
connection with with_yahoo_publisher).
- {{personal-notification-messages -url_poll "" -url_dismiss "" -poll_interval 5000}}
Personal notification messages
This includelet can be used for personal messaging, where a
sender can send messages to a single user in a single
applications (e.g. in an exam), where the user has to
acknowledge every single message to make it disappear
(current implementation). The messages are not persisted
(current implementation).
- {{presence -interval 10 minutes -max_users:integer 40 -show_anonymous summary -page}}
Show users actively in the wiki.
- {{random-form-page -form:required -publish_status ready -expires 600}}
Include random form page (instance of the specified form)
- {{recent -max_entries:integer 10 -allow_edit:boolean false -allow_delete:boolean false -pretty_age off}}
Display recent modified entries.
- {{references-graph -folder . -page "" -link_type link -rankdir LR -fontsize 12}}
Include a graph of the (partial) link structure in a wiki,
starting either with a page or a folder. When a page is
provided, the local link structure of this page is
visualized (including incoming and outgoing links of the
page; e.g. -page "." for the current page).
Alternatively, the content of a folder can be shown.
- {{rss-button -span 10d -name_filter -entries_of -title}}
Include an RSS button referring to pages of the specified time span.
- {{rss-client -url:required -max_entries:integer 15}}
Include RSS content
- {{s5 -category_id -slideshow:boolean false -pagenr 0 -style standard -menu_buttons view edit copy create delete}}
- {{selection -edit_links:boolean true -pages "" -ordered_pages "" -source -publish_status ready -menu_buttons edit -range ""}}
Provide a selection of pages
- {{set-parameter}}
Set a parameter accessible to the current page (for certain
tailorings), accessible in the page via e.g. the query
parameter interface.
- {{slidy}}
Display a sequence of pages via W3C slidy, based on book includelet
- {{tags -limit:integer 20 -summary:boolean 0 -popular:boolean 0 -page}}
Display specified tags.
- {{timeline -user_id -data timeline-data -interval1 DAY -interval2 MONTH}}
Include a timeline of changes (based on yahoo timeline API)
- {{toc -style "" -renderer "" -open_page "" -book_mode false -folder_mode false -ajax false -expand_all false -remove_levels 0 -category_id -locale "" -orderby "" -source "" -range "" -allow_reorder "" -include_in_foldertree true -CSSclass_top_ul "" -CSSclass_ul ""}}
- {{unread-items -max_entries:integer 20}}
List unread items.
- {{unresolved-references}}
List the pages with unresolved references in the current
xowiki/xowf package. This is intended for use by admins.
- {{user-timeline -user_id -data timeline-data -interval1 DAY -interval2 MONTH}}
Include a timeline of changes of the current or specified user
(based on yahoo timeline API)
- {{view-item-button -page_id -title View -alt view -link "" -book_mode false}}
Button to view the current or a different page
- {{vspace -height "" -width ""}}
- {{wf-todo -workflow "" -user_id -ical 0 -max_entries}}
- {{yui-carousel -title "" -item_size 600x400 -image_size -num_visible 1 -play_interval 0 -auto_size 0 -folder -glob "" -form ""}}
Include YUI carousel showing the pages of the specified or
current folder.
Available Formfield Classes
Created by Gustaf Neumann, last modified by Gustaf Neumann 24 Nov 2023, at 06:31 PM
What is xotcl-core
xotcl-core is an OpenACS package, which provides base functionality for OpenACS applications using XOTcl. The xotcl-core package is used by several other OpenACS packages such as the XOTcl request monitor, XoWiki, XoWiki Content Flow, S5 or the Learning Content Tool.
Install xotcl-core
First, get xotcl-core from the OpenACS repository:
cd /tmp
cvs -d:pserver:anonymous@cvs.openacs.org:/cvsroot co openacs-4/packages/xotcl-core
Move xotcl-core to the directory, where your OpenACS packages are stored. We assume, this directory is /usr/local/openacs-4/packages
mv /tmp/openacs-4/packages/xotcl-core /usr/local/openacs-4/packages
Next, go to acs-admin/apm (http://YOURSERVER/acs-admin/apm/), choose "install-packages" and install XOTcl Core. Finally, restart the server.
svc -t /service/${yourservice}
Now you can browse http://YOURSERVER/xotcl
Functionality of xotcl-core
xotcl-core defines several classes for
- library dependencies
- package management
- debugging
- security and policy management
- HTTP client and server functionality
- Object Relational Database Interface
- ical formatting
- cluster management
- chat handlers
and several utilities.
Tutorial xotcl-core
See slides
Code metrics and Package Description
Package Specification Summary for Package: xotcl-core
Summary: |
XOTcl library functionality (e.g. thread handling, online documentation, Generic Form and List Classes) |
Description: |
<pre>
This component contains some core functionality for OpenACS
applications using XOTcl. It includes
XOTcl thread handling for OpenACS (supporting persistent and
volatile threads) and a definitions for
documenting XOTcl object, classes and methods
integrated with the API-browser of OpenACS. Documented
procs and instproc an be created using the methods ad_proc
and ad_instproc. This component provides as
well an XOTcl Object and Class browser, as well as
means to control the recreation of objects and classes
when components are reloaded.
Features:
- oo-abstraction with caching (acs-objects and cr-items/revisions)
- single and multi instantiations (turn all tuples into objects)
- object life-time support (automatic cleanup when needed after request)
- proxy objects for stored procedures/functions (PostgreSQL and Oracle)
- db-abstraction for PostgreSQL and Oracle (e.g. query composition)
- context-management: context objects for (connections and db-queries)
- security policies
- GUI and DOM support (via tdom)
- support for XOTcl and NX
</pre>
|
Maturity: |
Mature |
This package depends on: |
acs-kernel acs-bootstrap-installer acs-templating acs-api-browser acs-content-repository acs-tcl acs-admin |
Packages that depend on xotcl-core: |
richtext-ckeditor5 rrd-tool xooauth xotcl-request-monitor xowf xowiki |
Package parameters: |
- NslogRedirector
- Allow redirections of nslog. The redirector filters ns_log messages and sends these not only to the error log (standard behavior) but also to ds_comments in the developer support. This way, a developer can view the log messages for the current request directly in the browser when the developer support is activated, without having to watch the log file.
The value of 0 means "no redirecting" (deactivation), 1 means "redirecting errors", 2 means "redirect errors and notices" (default 0, type number, scope instance)
- XOTclObjectCacheSize
- Size of the ns_cache xotcl_object_cache (used for caching XOTcl objects fetched from the database) (default 400000, type number, scope instance)
- XOTclObjectTypeCacheSize
- Size of the ns_cache xotcl_object_type_cache (used for caching types of XOTcl objects) (default 10000, type number, scope instance)
|
Bug Tracker Summary for Package: xotcl-core
Code Metrics Summary for Package: xotcl-core
# Tcl Procs |
29 |
# Tcl Lines |
16264 |
# Tcl Blank Lines |
1447 |
# Tcl Comment Lines |
3755 |
# Automated Tests |
14 |
# Stored Procedures |
PG: 0 ORA: 0 |
# SQL Lines |
PG: 0 (blank 1 comments 0)
ORA: 0 (blank 1 comments 0) |
# ADP pages |
4 |
# ADP lines |
90 |
# Include pages (xotcl-core/lib/) |
1 |
# Documentation pages |
0
|
# Documentation lines |
0 |
Browse Source |
API-browser |
Github Repository: |
https://github.com/openacs/xotcl-core/tree/oacs-5-10
|
The OpenACS package xotcl-core requires in versions of OpenACS before 5.3 the following patches for the documentation procs and the bootstrap installer:
cd /tmp
wget http://media.wu-wien.ac.at/download/acs-api-documentation-procs.patch
wget http://media.wu-wien.ac.at/download/acs-bootstrap-installer.patch
To apply these patches, go to the directory, where the OpenACS packages are stored. We assume, this directory is /usr/local/openacs-4/packages.
cd /usr/local/openacs-4/packages
patch -p 0 < /tmp/acs-api-documentation-procs.patch
patch -p 0 < /tmp/acs-bootstrap-installer.patch
Both patches do not harm in case XOTcl is not installed. Now reload these packages or restart the server.