*** empty log message ***

This commit is contained in:
Eric J. Bowersox 2001-01-31 20:48:40 +00:00
commit 1e555d4dc2
34 changed files with 2059 additions and 0 deletions

28
.cvsignore Normal file
View File

@ -0,0 +1,28 @@
# CVS default ignores begin
tags
TAGS
.make.state
.nse_depinfo
*~
#*
.#*
,*
_$*
*$
*.old
*.bak
*.BAK
*.orig
*.rej
.del-*
*.a
*.olb
*.o
*.obj
*.so
*.exe
*.Z
*.elc
*.ln
core
# CVS default ignores end

1
AUTHORS Normal file
View File

@ -0,0 +1 @@
Eric J. Bowersox <erbo@silcom.com>

107
FAQS Normal file
View File

@ -0,0 +1,107 @@
Frequently-Asked Questions about Venice (*)
-------------------------------------------
(* - or at least those I think people will be asking)
Q: What is Venice?
A: The Venice Web Community System is a system for supporting online
communities and special interest groups. A single Venice server will
support multiple SIGs, and all users authenticating themselves with the
Venice server will be able to join any SIG based on that server. SIGs
will support features like Web conferencing, chat, and instant messaging.
Q: Aren't there already conferencing packages out there?
A: Yes, and some of them are very good. However, Venice is being designed
first and foremost to support the Electric Minds community, and the
software will implement the appearances and behaviors they're used to
(at least for the most part). Enough other people have already found
this useful that I think it will have broad-based appeal.
Q: Who are Electric Minds, anyway? What makes them so special?
A: Electric Minds is a pioneering online community, originally founded by
Howard Rheingold, longtime user of The WELL and author of _The Virtual
Community_, in November 1996. Electric Minds, among other things, hosted
the discussion site for the Kasparov vs. Deep Blue chess match, and went on
to become one of _Time_ magazine's top 10 Web sites of 1996. His company
lost its financing, though, and was acquired by Durand Communications,
Inc., of Santa Barbara, CA, in July 1997, who shifted the community from
the existing WellEngaged conferencing platform to its own "CommunityWare"
online community software. Electric Minds has been a lively place for
conversation ever since, despite the departure of Rheingold. The current
host of the Electric Minds community is Harry "maddog" Pike, of New
Hampshire.
Q: So where's Durand Communications now? Never heard of 'em.
A: Durand Communications was acquired by Online System Services (now Webb
Interactive Services, Inc.), of Denver, CO. CommunityWare was folded
together with OSS' i2u product, and the result was introduced as WebbMe,
which was also an online community system.
Q: So why does Electric Minds need Venice?
A: Webb Interactive is pulling the plug on WebbMe at the end of January, 2001.
Electric Minds will be no more, unless it can be moved from its existing
servers.
Q: Can't you just use the existing WebbMe software?
A: Not practical. WebbMe is written using Microsoft Active Server Pages under
IIS 4.0 on Windows NT 4.0, using a SQL Server back end. Even if a server
could be found to support it, the software is old and very touchy to
administer. (Webb Interactive's work is all in Java now, using WebLogic
and Oracle. Very few people are left who remember much of anything about
how WebbMe works.)
Q: Doesn't Webb have software you can use now?
A: Well, they do have a Discussions product as part of their AccelX suite, but
it has a couple of major issues:
(1) It's not open source. In my opinion, it is not desirable for a
community like Electric Minds to be held prey to proprietary software
storing its intellectual content.
(2) It's also heavy in its requirements. It uses Enterprise JavaBeans and
requires the BEA WebLogic server and an Oracle database as back end.
For our purposes, that'd be overkill.
Q: Well, then, what about {Slash|Scoop|Squishdot|mod_virgule|etc.}?
A: Those packages are all good (and, in fact, Venice may incorporate some of
their features in future), but they were designed for other purposes. It's
partially the nature of the software that makes Electric Minds the community
it is, and so, to preserve the community as we know it, we need to keep
the functionality as close as possible. (This will also make it possible,
at a future date, to import the old discussions from the WebbMe Electric
Minds into Venice, for future reference and for posterity.)
Q: Why call it "Venice"?
A: During its early development (predating the Electric Minds acquisition),
CommunityWare was known as "Rome." Rome was one of the primary centers
of advanced community in ancient times. Similarly, Venice was one of the
centers of advanced community during the Renaissance...and, right now,
Electric Minds could use a renaissance :-).
Q: But you're not ripping off CommunityWare/Webb, are you?
A: Not at all. Some of the design structures are similar to CommunityWare,
but there are many significant changes. For instance, the Venice HTML
interface uses no <FRAME> tags, and the security model has been replaced
with a more self-consistent one. As time goes on, Venice will continue
to incorporate features that distinguish it from the original WebbMe.
Q: Did WebbMe have instant messaging, too?
A: Yes, it did. The original CommunityWare instant messaging and chat was
based on code derived from Durand's earlier MindWire product. It was later
replaced with a not-entirely-reliable system implemented using IRC. When
Venice implements IM and chat, it will likely be based on Jabber.
Q: What's Jabber?
A: Jabber is the world's only open-source XML-based instant messaging system.
Aside from offering its own instant messaging, it allows compatibility with
other IM systems like AIM, ICQ, MSN, and Yahoo!. See http://www.jabber.org.
Q: How will Venice use Jabber?
A: Venice will most likely run in conjunction with a Jabber server that can
authenticate users against the Venice database. Venice will include Java
applets for Jabber communication.
Q: Venice should implement {cool feature} like {other software} does.
A: Sounds interesting. Email me and tell me more.
Q: My question wasn't covered here! Will you add it?
A: Maybe, if enough people ask it :-). Email me your suggestions.

74
INSTALL Normal file
View File

@ -0,0 +1,74 @@
INSTALLATION INSTRUCTIONS
-------------------------
Software requirements:
You must install the following software on your system:
* Java 2 SDK version 1.2.2. Venice is normally run with the Blackdown
JDK port, available at http://www.blackdown.org. Version 1.3.x has
not been tested.
* Java API for XML Parsing (JAXP) version 1.0.1, available from
http://java.sun.com.
* Java Secure Socket Extension (JSSE) version 1.0.2, available from
http://java.sun.com. (Venice does not (yet) require this, but Apache
Tomcat does.)
* JavaMail API version 1.2, available from http://java.sun.com.
* JavaBeans Activation Framework (JAF) version 1.0.1, available from
http://java.sun.com. (Required by JavaMail.)
* Apache Jakarta LOG4J library, available from http://www.log4j.org.
* MySQL 3.23.x (get the most recent 3.23 version), available from
http://www.mysql.com.
* The MM.MySQL JDBC drivers version 2.0.3, available from XXXX.
* Apache Jakarta Ant, version 1.2, available from
http://jakarta.apache.org.
* Apache Jakarta Servlet API, version 3.2, available from
http://jakarta.apache.org.
* Apache Tomcat version 3.2.1, available from http://jakarta.apache.org.
It is recommended that you install JAXP, JSSE, JavaMail, JAF, and LOG4J
by copying or symbolically linking their JAR files to the <jdk>/jre/lib/ext
directory, to avoid creating a huge CLASSPATH variable. The JDK /bin
subdirectory should be in your PATH, naturally.
You should have access to a mail server that can relay e-mail messages
from the host on which Tomcat will be running. (If it's the same host,
so much the better.)
Setting Up:
After extracting the source from CVS, you will need to choose your
deployment directory. This will need to be specified as the "deploy.home"
property in the build.xml file. In addition, the three main Venice
configuration files (logging-config.xml, render-config.xml, and
venice-config.xml) are all copied to the WEB-INF subdirectory of the
deployment directory, and three parameters in web.xml point to them, so
those parameters will have to be modified.
Also modify the three configuration files to suit your system layout.
Each file is reasonably commented, so you should be able to figure it out
based on your directory location and your Tomcat configuration.
The database.sql file's "grant privileges" section may also need to be
modified to suit your tastes. Make sure though, that the Venice database
username and password match those specified in venice-config.xml, or
nothing will work.
Finally, in the setup directory, the files context-add.xml and
tomcat.policy.add contain snippets to be added to your Tomcat server.xml
and tomcat.policy files, respectively. These also need to be modified
as necessary. (Yes, I know the policy should not be granting AllPermission
to the entire server application. This will be fixed later, once I know
exactly what permissions are required.)
Create the Venice database by using the command:
mysql -u root -p < setup/database.sql
and type your MySQL root password when prompted. If your database gets
horked, this command will reset it to its "pristine" state as well.
Now start Tomcat in the usual way, and point your Web browser at the
URL "http://<servername>:<port>/venice/top". If all goes well, you will
see the Venice "top level" page pop up in your browser. (It'll take a
minute or so the first time, as the classes all get loaded and some of
the JSPs compile for the first time.)

470
LICENSE Normal file
View File

@ -0,0 +1,470 @@
MOZILLA PUBLIC LICENSE
Version 1.1
---------------
1. Definitions.
1.0.1. "Commercial Use" means distribution or otherwise making the
Covered Code available to a third party.
1.1. "Contributor" means each entity that creates or contributes to
the creation of Modifications.
1.2. "Contributor Version" means the combination of the Original
Code, prior Modifications used by a Contributor, and the Modifications
made by that particular Contributor.
1.3. "Covered Code" means the Original Code or Modifications or the
combination of the Original Code and Modifications, in each case
including portions thereof.
1.4. "Electronic Distribution Mechanism" means a mechanism generally
accepted in the software development community for the electronic
transfer of data.
1.5. "Executable" means Covered Code in any form other than Source
Code.
1.6. "Initial Developer" means the individual or entity identified
as the Initial Developer in the Source Code notice required by Exhibit
A.
1.7. "Larger Work" means a work which combines Covered Code or
portions thereof with code not governed by the terms of this License.
1.8. "License" means this document.
1.8.1. "Licensable" means having the right to grant, to the maximum
extent possible, whether at the time of the initial grant or
subsequently acquired, any and all of the rights conveyed herein.
1.9. "Modifications" means any addition to or deletion from the
substance or structure of either the Original Code or any previous
Modifications. When Covered Code is released as a series of files, a
Modification is:
A. Any addition to or deletion from the contents of a file
containing Original Code or previous Modifications.
B. Any new file that contains any part of the Original Code or
previous Modifications.
1.10. "Original Code" means Source Code of computer software code
which is described in the Source Code notice required by Exhibit A as
Original Code, and which, at the time of its release under this
License is not already Covered Code governed by this License.
1.10.1. "Patent Claims" means any patent claim(s), now owned or
hereafter acquired, including without limitation, method, process,
and apparatus claims, in any patent Licensable by grantor.
1.11. "Source Code" means the preferred form of the Covered Code for
making modifications to it, including all modules it contains, plus
any associated interface definition files, scripts used to control
compilation and installation of an Executable, or source code
differential comparisons against either the Original Code or another
well known, available Covered Code of the Contributor's choice. The
Source Code can be in a compressed or archival form, provided the
appropriate decompression or de-archiving software is widely available
for no charge.
1.12. "You" (or "Your") means an individual or a legal entity
exercising rights under, and complying with all of the terms of, this
License or a future version of this License issued under Section 6.1.
For legal entities, "You" includes any entity which controls, is
controlled by, or is under common control with You. For purposes of
this definition, "control" means (a) the power, direct or indirect,
to cause the direction or management of such entity, whether by
contract or otherwise, or (b) ownership of more than fifty percent
(50%) of the outstanding shares or beneficial ownership of such
entity.
2. Source Code License.
2.1. The Initial Developer Grant.
The Initial Developer hereby grants You a world-wide, royalty-free,
non-exclusive license, subject to third party intellectual property
claims:
(a) under intellectual property rights (other than patent or
trademark) Licensable by Initial Developer to use, reproduce,
modify, display, perform, sublicense and distribute the Original
Code (or portions thereof) with or without Modifications, and/or
as part of a Larger Work; and
(b) under Patents Claims infringed by the making, using or
selling of Original Code, to make, have made, use, practice,
sell, and offer for sale, and/or otherwise dispose of the
Original Code (or portions thereof).
(c) the licenses granted in this Section 2.1(a) and (b) are
effective on the date Initial Developer first distributes
Original Code under the terms of this License.
(d) Notwithstanding Section 2.1(b) above, no patent license is
granted: 1) for code that You delete from the Original Code; 2)
separate from the Original Code; or 3) for infringements caused
by: i) the modification of the Original Code or ii) the
combination of the Original Code with other software or devices.
2.2. Contributor Grant.
Subject to third party intellectual property claims, each Contributor
hereby grants You a world-wide, royalty-free, non-exclusive license
(a) under intellectual property rights (other than patent or
trademark) Licensable by Contributor, to use, reproduce, modify,
display, perform, sublicense and distribute the Modifications
created by such Contributor (or portions thereof) either on an
unmodified basis, with other Modifications, as Covered Code
and/or as part of a Larger Work; and
(b) under Patent Claims infringed by the making, using, or
selling of Modifications made by that Contributor either alone
and/or in combination with its Contributor Version (or portions
of such combination), to make, use, sell, offer for sale, have
made, and/or otherwise dispose of: 1) Modifications made by that
Contributor (or portions thereof); and 2) the combination of
Modifications made by that Contributor with its Contributor
Version (or portions of such combination).
(c) the licenses granted in Sections 2.2(a) and 2.2(b) are
effective on the date Contributor first makes Commercial Use of
the Covered Code.
(d) Notwithstanding Section 2.2(b) above, no patent license is
granted: 1) for any code that Contributor has deleted from the
Contributor Version; 2) separate from the Contributor Version;
3) for infringements caused by: i) third party modifications of
Contributor Version or ii) the combination of Modifications made
by that Contributor with other software (except as part of the
Contributor Version) or other devices; or 4) under Patent Claims
infringed by Covered Code in the absence of Modifications made by
that Contributor.
3. Distribution Obligations.
3.1. Application of License.
The Modifications which You create or to which You contribute are
governed by the terms of this License, including without limitation
Section 2.2. The Source Code version of Covered Code may be
distributed only under the terms of this License or a future version
of this License released under Section 6.1, and You must include a
copy of this License with every copy of the Source Code You
distribute. You may not offer or impose any terms on any Source Code
version that alters or restricts the applicable version of this
License or the recipients' rights hereunder. However, You may include
an additional document offering the additional rights described in
Section 3.5.
3.2. Availability of Source Code.
Any Modification which You create or to which You contribute must be
made available in Source Code form under the terms of this License
either on the same media as an Executable version or via an accepted
Electronic Distribution Mechanism to anyone to whom you made an
Executable version available; and if made available via Electronic
Distribution Mechanism, must remain available for at least twelve (12)
months after the date it initially became available, or at least six
(6) months after a subsequent version of that particular Modification
has been made available to such recipients. You are responsible for
ensuring that the Source Code version remains available even if the
Electronic Distribution Mechanism is maintained by a third party.
3.3. Description of Modifications.
You must cause all Covered Code to which You contribute to contain a
file documenting the changes You made to create that Covered Code and
the date of any change. You must include a prominent statement that
the Modification is derived, directly or indirectly, from Original
Code provided by the Initial Developer and including the name of the
Initial Developer in (a) the Source Code, and (b) in any notice in an
Executable version or related documentation in which You describe the
origin or ownership of the Covered Code.
3.4. Intellectual Property Matters
(a) Third Party Claims.
If Contributor has knowledge that a license under a third party's
intellectual property rights is required to exercise the rights
granted by such Contributor under Sections 2.1 or 2.2,
Contributor must include a text file with the Source Code
distribution titled "LEGAL" which describes the claim and the
party making the claim in sufficient detail that a recipient will
know whom to contact. If Contributor obtains such knowledge after
the Modification is made available as described in Section 3.2,
Contributor shall promptly modify the LEGAL file in all copies
Contributor makes available thereafter and shall take other steps
(such as notifying appropriate mailing lists or newsgroups)
reasonably calculated to inform those who received the Covered
Code that new knowledge has been obtained.
(b) Contributor APIs.
If Contributor's Modifications include an application programming
interface and Contributor has knowledge of patent licenses which
are reasonably necessary to implement that API, Contributor must
also include this information in the LEGAL file.
(c) Representations.
Contributor represents that, except as disclosed pursuant to
Section 3.4(a) above, Contributor believes that Contributor's
Modifications are Contributor's original creation(s) and/or
Contributor has sufficient rights to grant the rights conveyed by
this License.
3.5. Required Notices.
You must duplicate the notice in Exhibit A in each file of the Source
Code. If it is not possible to put such notice in a particular Source
Code file due to its structure, then You must include such notice in a
location (such as a relevant directory) where a user would be likely
to look for such a notice. If You created one or more Modification(s)
You may add your name as a Contributor to the notice described in
Exhibit A. You must also duplicate this License in any documentation
for the Source Code where You describe recipients' rights or ownership
rights relating to Covered Code. You may choose to offer, and to
charge a fee for, warranty, support, indemnity or liability
obligations to one or more recipients of Covered Code. However, You
may do so only on Your own behalf, and not on behalf of the Initial
Developer or any Contributor. You must make it absolutely clear than
any such warranty, support, indemnity or liability obligation is
offered by You alone, and You hereby agree to indemnify the Initial
Developer and every Contributor for any liability incurred by the
Initial Developer or such Contributor as a result of warranty,
support, indemnity or liability terms You offer.
3.6. Distribution of Executable Versions.
You may distribute Covered Code in Executable form only if the
requirements of Section 3.1-3.5 have been met for that Covered Code,
and if You include a notice stating that the Source Code version of
the Covered Code is available under the terms of this License,
including a description of how and where You have fulfilled the
obligations of Section 3.2. The notice must be conspicuously included
in any notice in an Executable version, related documentation or
collateral in which You describe recipients' rights relating to the
Covered Code. You may distribute the Executable version of Covered
Code or ownership rights under a license of Your choice, which may
contain terms different from this License, provided that You are in
compliance with the terms of this License and that the license for the
Executable version does not attempt to limit or alter the recipient's
rights in the Source Code version from the rights set forth in this
License. If You distribute the Executable version under a different
license You must make it absolutely clear that any terms which differ
from this License are offered by You alone, not by the Initial
Developer or any Contributor. You hereby agree to indemnify the
Initial Developer and every Contributor for any liability incurred by
the Initial Developer or such Contributor as a result of any such
terms You offer.
3.7. Larger Works.
You may create a Larger Work by combining Covered Code with other code
not governed by the terms of this License and distribute the Larger
Work as a single product. In such a case, You must make sure the
requirements of this License are fulfilled for the Covered Code.
4. Inability to Comply Due to Statute or Regulation.
If it is impossible for You to comply with any of the terms of this
License with respect to some or all of the Covered Code due to
statute, judicial order, or regulation then You must: (a) comply with
the terms of this License to the maximum extent possible; and (b)
describe the limitations and the code they affect. Such description
must be included in the LEGAL file described in Section 3.4 and must
be included with all distributions of the Source Code. Except to the
extent prohibited by statute or regulation, such description must be
sufficiently detailed for a recipient of ordinary skill to be able to
understand it.
5. Application of this License.
This License applies to code to which the Initial Developer has
attached the notice in Exhibit A and to related Covered Code.
6. Versions of the License.
6.1. New Versions.
Netscape Communications Corporation ("Netscape") may publish revised
and/or new versions of the License from time to time. Each version
will be given a distinguishing version number.
6.2. Effect of New Versions.
Once Covered Code has been published under a particular version of the
License, You may always continue to use it under the terms of that
version. You may also choose to use such Covered Code under the terms
of any subsequent version of the License published by Netscape. No one
other than Netscape has the right to modify the terms applicable to
Covered Code created under this License.
6.3. Derivative Works.
If You create or use a modified version of this License (which you may
only do in order to apply it to code which is not already Covered Code
governed by this License), You must (a) rename Your license so that
the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
"MPL", "NPL" or any confusingly similar phrase do not appear in your
license (except to note that your license differs from this License)
and (b) otherwise make it clear that Your version of the license
contains terms which differ from the Mozilla Public License and
Netscape Public License. (Filling in the name of the Initial
Developer, Original Code or Contributor in the notice described in
Exhibit A shall not of themselves be deemed to be modifications of
this License.)
7. DISCLAIMER OF WARRANTY.
COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
8. TERMINATION.
8.1. This License and the rights granted hereunder will terminate
automatically if You fail to comply with terms herein and fail to cure
such breach within 30 days of becoming aware of the breach. All
sublicenses to the Covered Code which are properly granted shall
survive any termination of this License. Provisions which, by their
nature, must remain in effect beyond the termination of this License
shall survive.
8.2. If You initiate litigation by asserting a patent infringement
claim (excluding declatory judgment actions) against Initial Developer
or a Contributor (the Initial Developer or Contributor against whom
You file such action is referred to as "Participant") alleging that:
(a) such Participant's Contributor Version directly or indirectly
infringes any patent, then any and all rights granted by such
Participant to You under Sections 2.1 and/or 2.2 of this License
shall, upon 60 days notice from Participant terminate prospectively,
unless if within 60 days after receipt of notice You either: (i)
agree in writing to pay Participant a mutually agreeable reasonable
royalty for Your past and future use of Modifications made by such
Participant, or (ii) withdraw Your litigation claim with respect to
the Contributor Version against such Participant. If within 60 days
of notice, a reasonable royalty and payment arrangement are not
mutually agreed upon in writing by the parties or the litigation claim
is not withdrawn, the rights granted by Participant to You under
Sections 2.1 and/or 2.2 automatically terminate at the expiration of
the 60 day notice period specified above.
(b) any software, hardware, or device, other than such Participant's
Contributor Version, directly or indirectly infringes any patent, then
any rights granted to You by such Participant under Sections 2.1(b)
and 2.2(b) are revoked effective as of the date You first made, used,
sold, distributed, or had made, Modifications made by that
Participant.
8.3. If You assert a patent infringement claim against Participant
alleging that such Participant's Contributor Version directly or
indirectly infringes any patent where such claim is resolved (such as
by license or settlement) prior to the initiation of patent
infringement litigation, then the reasonable value of the licenses
granted by such Participant under Sections 2.1 or 2.2 shall be taken
into account in determining the amount or value of any payment or
license.
8.4. In the event of termination under Sections 8.1 or 8.2 above,
all end user license agreements (excluding distributors and resellers)
which have been validly granted by You or any distributor hereunder
prior to termination shall survive termination.
9. LIMITATION OF LIABILITY.
UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
10. U.S. GOVERNMENT END USERS.
The Covered Code is a "commercial item," as that term is defined in
48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
software" and "commercial computer software documentation," as such
terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
all U.S. Government End Users acquire Covered Code with only those
rights set forth herein.
11. MISCELLANEOUS.
This License represents the complete agreement concerning subject
matter hereof. If any provision of this License is held to be
unenforceable, such provision shall be reformed only to the extent
necessary to make it enforceable. This License shall be governed by
California law provisions (except to the extent applicable law, if
any, provides otherwise), excluding its conflict-of-law provisions.
With respect to disputes in which at least one party is a citizen of,
or an entity chartered or registered to do business in the United
States of America, any litigation relating to this License shall be
subject to the jurisdiction of the Federal Courts of the Northern
District of California, with venue lying in Santa Clara County,
California, with the losing party responsible for costs, including
without limitation, court costs and reasonable attorneys' fees and
expenses. The application of the United Nations Convention on
Contracts for the International Sale of Goods is expressly excluded.
Any law or regulation which provides that the language of a contract
shall be construed against the drafter shall not apply to this
License.
12. RESPONSIBILITY FOR CLAIMS.
As between Initial Developer and the Contributors, each party is
responsible for claims and damages arising, directly or indirectly,
out of its utilization of rights under this License and You agree to
work with Initial Developer and Contributors to distribute such
responsibility on an equitable basis. Nothing herein is intended or
shall be deemed to constitute any admission of liability.
13. MULTIPLE-LICENSED CODE.
Initial Developer may designate portions of the Covered Code as
"Multiple-Licensed". "Multiple-Licensed" means that the Initial
Developer permits you to utilize portions of the Covered Code under
Your choice of the NPL or the alternative licenses, if any, specified
by the Initial Developer in the file described in Exhibit A.
EXHIBIT A -Mozilla Public License.
``The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The Original Code is ______________________________________.
The Initial Developer of the Original Code is ________________________.
Portions created by ______________________ are Copyright (C) ______
_______________________. All Rights Reserved.
Contributor(s): ______________________________________.
Alternatively, the contents of this file may be used under the terms
of the _____ license (the "[___] License"), in which case the
provisions of [______] License are applicable instead of those
above. If you wish to allow use of your version of this file only
under the terms of the [____] License and not to allow others to use
your version of this file under the MPL, indicate your decision by
deleting the provisions above and replace them with the notice and
other provisions required by the [___] License. If you do not delete
the provisions above, a recipient may use your version of this file
under either the MPL or the [___] License."
[NOTE: The text of this Exhibit A may differ slightly from the text of
the notices in the Source Code files of the Original Code. You should
use the text of this Exhibit A rather than the text found in the
Original Code Source Code for Your Modifications.]

0
NEWS Normal file
View File

52
README Normal file
View File

@ -0,0 +1,52 @@
The Venice Web Communities System
Eric J. Bowersox <erbo@silcom.com> for Silverwrist Design Studios
In Development, January 21, 2001
SourceForge Home: <http://sourceforge.net/projects/venice/>
----------
Description:
The Venice Web Communities System is a system for supporting online
communities and special interest groups. A single Venice server will
support multiple SIGs, and all users authenticating themselves with the
Venice server will be able to join any SIG based on that server.
SIGs support multiple features, the first of which will be Web-based linear
conferencing (along the lines of WellEngaged, UBB, and other conferencing
systems). Features to be added thereafter include instant messaging and
chat (which will be based on the Jabber open-source instant-messaging
system), calendars, link directories, e-mail newsletters, and possibly
advanced features such as collaborative databases and content creation/
publishing.
Implementation:
Venice is written in Java using Java Servlet and JSP technologies, and
runs under the Apache Tomcat applications server, release 3.2. It is
written to version 1.2.2 of the Java SDK (Java 2). It also employs the
Sun Java API for XML Parsing, the JavaMail API (and associated JavaBeans
Activation Framework), and the Apache LOG4J logging class library. It
uses MySQL 3.23 as a database back end, via the mm.mysql JDBC drivers.
Licensing:
Venice is licensed under the terms of the Mozilla Public License, Version
1.1. See the file LICENSE for details.
History:
Venice's designed capabilities stem from the requirements for the Electric
Minds online community, which originally ran on the WellEngaged
conferencing software and was later ported to Durand Communications'
CommunityWare online community system (which later became the "WebbMe"
portal system of Webb Interactive Services). WebbMe will shut down at the
end of January 2001, leaving the community homeless; Venice is intended to
provide it with a permanent, open-source home.
----------
Directory Structure:
doc/ - Documentation, notes, and images to be used later
etc/ - Configuration files
lib/ - .JAR files (this is where the mm.mysql driver lives)
setup/ - Files used in setup, notably the database initialization script
src/ - The source code itself
web/ - Web content and images

50
TODO Normal file
View File

@ -0,0 +1,50 @@
Lots!
- A bunch of the SIG-level functionality is not fully implemented. We need
invites, some admin functions, and the "Manage" button on the "top
content" window to work.
- Should we provide the sysadmin the ability to disable SIG creation for
non-admin users? Maybe there needs to be a "global" set of levels that
aren't hardcoded. Where do they get stored? The database?
- There's no system admin functionality AT ALL. We need to have this stuff
before we go live. (It plugs into the Administrative SIG features.)
- Implement quick e-mail from the user profile display (engine support and
UI).
- The whole "top" display thing needs a serious realignment. The present
system is a bit klunky and will be tough to implement Customize. We need
the capability to support JSP-based rendering in the individual "top" content
panes as well.
- More SELECT queries that specify discrete columns need to start using
numeric indexes to retrieve the column data, instead of names. This will
make the retrieval process more efficient, and make for shorter SQL
statements in the case of joined queries (no need to SELECT table.column
AS name).
- Getting conferencing in there - but still not there yet. We need topic and
post implementations, and UI.
- Implement conference hotlist for users.
- The HTML checker is back together and almost all integrated into the
Venice engine, but I still need to initialize the dictionary. It's going
to require configuration entries in the Venice XML config file, and the
use of LazyLexicon (to load the dictionary in the background while people
log in).
- Not everybody likes purple. Provide a way to change the default colors.
Probably via entries in render-config.xml. Of course, if we go to a
different rendering system eventually, we won't need this.
- Javadocs. Lots of javadocs.
- I haven't explored the possibility of using Tomcat-Apache integration yet.
This is something I'd like to explore one day. We may need it for EMinds.
Actually, we probably will.
- Continue pressing on. "Failure is not an option."

30
build.bat Normal file
View File

@ -0,0 +1,30 @@
@echo off
: The contents of this file are subject to the Mozilla Public License Version 1.1
: (the "License"); you may not use this file except in compliance with the License.
; You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
:
: Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
: WARRANTY OF ANY KIND, either express or implied. See the License for the specific
: language governing rights and limitations under the License.
:
: The Original Code is the Venice Web Community System.
;
: The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
: for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
: Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
:
; Contributor(s):
:
set _CP=%CP%
rem Identify the custom class path components we need
set CP=%TOMCAT_HOME%\lib\ant.jar;%TOMCAT_HOME%\lib\servlet.jar
set CP=%TOMCAT_HOME%\lib\jaxp.jar;%TOMCAT_HOME%\lib\parser.jar
set CP=%CP%;%JAVA_HOME%\lib\tools.jar
rem Execute ANT to perform the requird build target
java -classpath %CP%;%CLASSPATH% org.apache.tools.ant.Main -Dtomcat.home=%TOMCAT_HOME% %1 %2 %3 %4 %5 %6 %7 %8 %9
set CP=%_CP%
set _CP=

26
build.sh Executable file
View File

@ -0,0 +1,26 @@
#!/bin/sh
# The contents of this file are subject to the Mozilla Public License Version 1.1
# (the "License"); you may not use this file except in compliance with the License.
# You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
#
# Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
# WARRANTY OF ANY KIND, either express or implied. See the License for the specific
# language governing rights and limitations under the License.
#
# The Original Code is the Venice Web Community System.
#
# The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
# for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
# Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
#
# Contributor(s):
#
# Identify the custom class path components we need
CP=$TOMCAT_HOME/lib/ant.jar:$TOMCAT_HOME/lib/servlet.jar
CP=$CP:$TOMCAT_HOME/lib/jaxp.jar:$TOMCAT_HOME/lib/parser.jar
CP=$CP:$JAVA_HOME/lib/tools.jar
# Execute ANT to perform the requested build target
java -classpath $CP:$CLASSPATH org.apache.tools.ant.Main \
-Dtomcat.home=$TOMCAT_HOME "$@"

85
build.xml Normal file
View File

@ -0,0 +1,85 @@
<?xml version="1.0"?>
<!--
The contents of this file are subject to the Mozilla Public License Version 1.1
(the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
language governing rights and limitations under the License.
The Original Code is the Venice Web Community System.
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
Contributor(s):
-->
<project name="Venice" default="compile" basedir=".">
<!-- Adapted from default Ant buildfile - EJB 12/29/Y2K -->
<!-- Global property names -->
<property name="app.name" value="venice"/>
<property name="deploy.home" value="../../${app.name}"/>
<property name="dist.home" value="${deploy.home}"/>
<property name="dist.src" value="${app.name}.jar"/>
<property name="dist.war" value="${app.name}.war"/>
<property name="javadoc.home" value="${deploy.home}/javadoc"/>
<!-- Prepare directory for build -->
<target name="prepare">
<mkdir dir="${deploy.home}"/>
<copy todir="${deploy.home}">
<fileset dir="web"/>
</copy>
<mkdir dir="${deploy.home}/WEB-INF"/>
<copy todir="${deploy.home}/WEB-INF">
<fileset dir="etc">
<include name="*.xml"/>
<include name="*.dict"/>
</fileset>
</copy>
<mkdir dir="${deploy.home}/WEB-INF/classes"/>
<mkdir dir="${deploy.home}/WEB-INF/lib"/>
<copy todir="${deploy.home}/WEB-INF/lib">
<fileset dir="lib"/>
</copy>
<mkdir dir="${javadoc.home}"/>
</target>
<!-- Wipe out the deployment directory -->
<target name="clean">
<delete dir="${deploy.home}"/>
</target>
<!-- Compile all the Java source -->
<target name="compile" depends="prepare">
<javac srcdir="src" destdir="${deploy.home}/WEB-INF/classes" classpath="${deploy.home}/WEB-INF/classes"
debug="on" optimize="off" deprecation="off"/>
<copy todir="${deploy.home}/WEB-INF/classes">
<fileset dir="src" includes="**/*.properties"/>
</copy>
</target>
<!-- Create Javadocs -->
<target name="javadoc" depends="prepare">
<javadoc sourcepath="src" packagenames="*" destdir="${javadoc.home}"/>
</target>
<!-- Build it all, man -->
<target name="all" depends="clean,prepare,compile,javadoc"/>
<!-- Build the distribution .WAR file and JAR up the source code -->
<target name="dist" depends="prepare,compile">
<jar jarfile="${dist.home}/${dist.src}" basedir="."/>
<jar jarfile="${dist.home}/${dist.war}" basedir="${deploy.home}"/>
</target>
</project>

BIN
doc/buttons/bn_blank80.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
doc/buttons/bn_delete.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
doc/buttons/bn_go.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

BIN
doc/buttons/bn_hide.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
doc/buttons/bn_preview.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
doc/buttons/bn_save.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
doc/buttons/bn_scribble.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

366
doc/categorization.txt Normal file
View File

@ -0,0 +1,366 @@
CATEGORY SYSTEM FOR VENICE SIGS
(Based on the Mozilla Open Directory Project category system)
Arts
Animation
Antiques -> Recreation:Antiques
Architecture
Art History
Body Art
Celebrities
Comics
Crafts
Dance
Design
Education
Entertainment
Graphic Design
Humanities
Illustration
Literature
Movies
Music
Myths and Folktales
Native and Tribal
Performing Arts
Photography
Radio
Television
Theatre
Typography
Video
Visual Arts
Writing
Business
Accounting
Advertising
Aerospace
Agriculture and Forestry
Apparel
Arts and Entertainment
Associations
Aviation
Business Services
Classifieds -> Shopping:Classifieds
Computers
Consulting
Construction and Maintenance
Electronics
Employment
Energy and Utilities
Environmental and Safety
Financial Services
Food and Related Products
Insurance
Internet Services
Investing
Law -> Society:Law
Management
Manufacturing
Marketing
Mining and Drilling
Printing
Publishing
Real Estate
Retail
Security
Small Business
Taxes
Training and Schools
Telecommunications
Transportation
Venture Capital
Computers
CAD
Computer Science
Consultants
Data Communications
Desktop Publishing
Education
Ethics
Fonts
Games -> Games:Video Games
Graphics
Hacking
Hardware
History
Internet
Multimedia
Open Source
Operating Systems
Programming
Robotics
Security
Shopping
Software
Systems
Games
Board Games
Card Games
Coin-op Games
Collectible Card Games -> Games:Trading Cards
Dice Games
Fantasy Sports -> Sports:Fantasy
Gambling
Game Creation Systems
Game Design
Hand Games
Internet
Party Games
Puzzles
Retailers -> Shopping:Toys and Games
Roleplaying
Sports -> Sports
Tile Games
Trading Cards
Video Games
Yard and Deck Games
Health
Aging
Alternative Medicine
Beauty
Children's Health
Conditions and Diseases
Dentistry
Disabilities -> Society:Disabled
Education
Fitness
Health Insurance -> Business:Insurance
Medicine
Men's Health
Mental Health
Nursing
Nutrition
Occupational Health and Safety
Pharmacy
Public Health and Safety
Reproductive Health
Seniors' Health
Services
Substance Abuse
Teen Health
Women's Health
Home
Apartment Living
Cooking
Do-It-Yourself
Emergency Preparation
Entertaining
Family
Gardens
Home Improvement
Homemaking
Homeowners
Kids
Moving and Relocating
Nursery
Pets -> Recreation:Pets
Personal Finance
Personal Organization
Relatives
Rural Living
Shopping -> Shopping
Urban Living
News
Alternative Media
Columnists
Current Events
Magazines
Media
Newspapers
Online
Politics
Satire
Weather
Recreation
Air Hockey
Amateur Radio
Antiques
Audio
Autos
Aviation
Birdwatching
Boating
Bowling -> Sports:Bowling
Climbing
Collecting
Crafts -> Arts:Crafts
Drugs
Food and Drink
Games -> Games
Gardens -> Home:Gardens
Genealogy -> Society:Genealogy
Guns
Hot Air Ballooning
Humor
Kites
Knives
Living History
Martial Arts -> Sports:Martial Arts
Models
Motorcycles
Nudism
Outdoors
Parties
Pets
Roads and Highways
Scouting
Smoking
Sports -> Sports
Theme Parks
Trains and Railroads
Travel
Reference & Education
Alumni
Colleges and Universities
Continuing Education
Corporate Training -> Business:Training and Schools
Distance Learning
International
K through 12
Libraries
Museums
Special Education
Vocational Education
Regional
International
US
Science
Agriculture
Alternative Science
Astronomy
Biology
Chemistry
Earth Sciences
Environment
Mathematics
Physics
Science in Society
Social Siences
Space
Technology
Shopping
Antiques and Collectibles
Auctions
Books
Children
Classifieds
Clothing
Computers -> Computers:Shopping
Consumer Electronics
Crafts
Entertainment
Ethnic and Regional
Flowers
Food and Drink
Furniture
Gifts
Health and Beauty
Holidays
Home and Garden
Jewelry
Music
Niche
Office Products
Pets
Photography
Recreation and Hobbies
Religious
Sports
Tobacco
Tools
Toys and Games
Travel
Vehicles
Visual Arts
Weddings
Wholesale
Society
Activism
Advice
Crime
Death
Disabled
Ethnicity
Folklore
Future
Gay/Lesbian/Bisexual
Genealogy
Government
History
Holidays
Issues
Law
Lifestyle Choices
Military
Paranormal
People
Philosophy
Politics
Recovery and Support Groups
Relationships
Religion and Spirituality
Sexuality
Subcultures
Transgendered
Work
Sports
Archery
Badminton
Baseball
Basketball
Billiards
Boomerang
Bowling
Boxing
Cheerleading
Cricket
Croquet
Cycling
Darts
Equestrian
Extreme Sports
Fantasy
Fencing
Fishing
Flying Discs
Football
Golf
Greyhound Racing
Gymnastics
Handball
Hockey
Lacrosse
Laser Games
Lumberjack
Martial Arts
Motor Sports
Orienteering
Paintball
Racquetball
Rodeo
Roller Derby
Rope Skipping
Rugby
Running
Sailing
Shooting
Shopping -> Shopping:Sports
Skateboarding
Skating
Skiing
Sledding
Sled Dog Racing
Snowboarding
Soccer
Softball
Squash
Strength Sports
Table Tennis
Tennis
Track and Field
Volleyball
Walking
Water Sports
Winter Sports
Wrestling

64
doc/design-goals.html Normal file
View File

@ -0,0 +1,64 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Doc: Design Goals for Venice Project</TITLE>
</HEAD>
<BODY>
<H1>Design Goals for the Venice Project</H1>
<EM>Eric J. Bowersox &lt;<A HREF="mailto:erbo@silcom.com">erbo@silcom.com</A>&gt; -
January 26, 2001</EM><P>
<OL>
<LI>A replacement for the CommunityWare/WebbMe conferencing system</LI>
<LI>Java/JSP/servlets implementation running under Apache Tomcat, MySQL backend</LI>
<LI>Multiple SIGs (communities) hosted per server, each with multiple conferences
(and other features); users logged into one server can join multiple SIGs</LI>
<LI>Conferencing functionality similar to CW/WebbMe:
<UL>
<LI>Linear topics composed of HTML messages</LI>
<LI>View topics by new messages/unread/all messages/hidden topics/archived topics</LI>
<LI>Topics can be deleted/archived/made read-only by the conference host</LI>
<LI>Topics can be hidden from a user's personal view</LI>
<LI>Individual posts can be "hidden" or "scribbled" by owner or conference host</LI>
<LI>Posts can be previewed, with spellchecking and HTML formatting</LI>
<LI>Files can be "attached" to posts (up to 1 Mb in size)</EM>
</UL>
</LI>
<LI>Enhancements to existing conference features:
<UL>
<LI>Full text search of posts within a conference</LI>
<LI>Conference-level "bozo filters"</LI>
<LI>Individual posts can be "nuked" without a trace by the conference host</LI>
</UL>
</LI>
<LI>Later, replace other CW/WebbMe functions:
<UL>
<LI>Activity logs</LI>
<LI>Instant messaging and chat (use Jabber)</LI>
<LI>Calendaring</LI>
<LI>Newsletters via e-mail</LI>
</UL>
</LI>
<LI>Features from CW/WebbMe we <EM>won't</EM> do:
<UL>
<LI>Web hosting</LI>
<LI>Web-based email</LI>
</UL>
</LI>
<LI>Blue sky features:
<UL>
<LI>Output uses XML and gets formatted into [X]HTML via XSLT; "themeable"/"skinnable" interface</LI>
<LI>Conferencing/other functionality available via XML-RPC or SOAP calls</LI>
<LI>News page creation (see Slash, Squishdot, Scoop)</LI>
<LI>Member trust metrics (see Slashdot "karma," Scoop "mojo," Advogato distributed trust metric)</LI>
<LI>User diary pages (see Advogato, Kuro5hin)</LI>
<LI>Moderated discussions (see Slash, Scoop)</LI>
<LI>Collaborative database facility (see Wiki, Everything2)</LI>
<LI>Content management/distributed publishing</LI>
</UL>
</LI>
</OL>
</BODY>
</HTML>

7
doc/graphic-notes.txt Normal file
View File

@ -0,0 +1,7 @@
GRAPHIC NOTES
Buttons
-------
Standard button size - 80x24
Button background - Brushed metal (Golden gradient), 2-pixel Bevel edge
Button text - Helvetica Medium Narrow 12-point

46
doc/identifiers.html Normal file
View File

@ -0,0 +1,46 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Doc: About Venice Identifiers</TITLE>
</HEAD>
<BODY>
<H1>About Venice Identifiers</H1>
<EM>Eric J. Bowersox &lt;<A HREF="mailto:erbo@silcom.com">erbo@silcom.com</A>&gt; -
January 26, 2001</EM><P>
Venice identifiers are used for user IDs, SIG aliases, and conference aliases (and maybe other unique
identifiers in the future). A valid Venice ID consists of characters from the following character set
only:
<UL>
<LI>Alphanumerics [A-Z, a-z, and 0-9]</LI>
<LI>Dash [-]</LI>
<LI>Underscore [_]</LI>
<LI>Tilde [~]</LI>
<LI>Asterisk [*]</LI>
<LI>Apostrophe [']</LI>
<LI>Dollar sign [$]</LI>
</UL><P>
All characters are represented in the ISO 8859-1 character set. Also note that all Venice identifiers
are case-insensitive.<P>
<B>Rationale</B><P>
The character set was defined starting with the list of characters allowable in URL path components
("pchar" as defined in RFC 2396, section 3.3, page 14), so that Venice IDs would be usable as "path
information" in a URL.<P>
The ampersand [&] was eliminated because of its possible confusion with a URL parameter separator, and
because it requires HTML escaping.<P>
The at sign [@] was eliminated because of possible confusion with email addresses and Jabber IDs.<P>
The plus sign [+] was eliminated because of possible confusion with a URL-encoded space character.<P>
The comma [,] was eliminated because of its possible interpretation as a separator character.<P>
The equals sign [=] was eliminated because of its possible confusion with a URL parameter/value
separator.<P>
The colon [:] was withheld to provide for a possible future "namespace" expansion (as in XML
namespaces).<P>
The parentheses [(, )] were eliminated because of possible confusion with user link syntax in
conferencing.<P>
The period [.] was eliminated because of possible confusion with post link syntax in conferencing.<P>
The exclamation point [!] was eliminated because of possible confusion with extended post link syntax in
conferencing.
</BODY>
</HTML>

29
doc/packages.txt Normal file
View File

@ -0,0 +1,29 @@
JAVA PACKAGES USED BY VENICE SOURCE
com.silverwrist - All packages
com.silverwrist.util - Generic utility packages
com.silverwrist.venice - Venice-specific code
com.silverwrist.venice.core - Core Venice engine code
com.silverwrist.venice.core.impl - Venice engine code implementation
com.silverwrist.venice.db - Database-management code
com.silverwrist.venice.htmlc - OLD html checker
com.silverwrist.venice.htmlc.impl - OLD HTML checker
com.silverwrist.venice.htmlcheck - The HTML Checker (interfaces, etc.)
com.silverwrist.venice.htmlcheck.impl - HTML checker implementation
com.silverwrist.venice.htmlcheck.filters - Standard filters
com.silverwrist.venice.security - Security management and data
com.silverwrist.venice.servlets - Java servlets at the top level
com.silverwrist.venice.servlets.format - HTML output formatter

179
doc/security-levels.html Normal file
View File

@ -0,0 +1,179 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Doc: Security Levels in Venice</TITLE>
</HEAD>
<BODY>
<H1>Security Levels in Venice</H1>
<EM>Eric J. Bowersox &lt;<A HREF="mailto:erbo@silcom.com">erbo@silcom.com</A>&gt; -
January 26, 2001</EM><P>
The security level system in Venice is based on a concept of "levels" represented by small 16-bit
integers. A number of different security "scope" values are defined, each with a "low band" and a
"high band" range of values, defined such that, for any scope level <EM>n</EM> (<EM>n</EM>&gt;=0),
the "low band" range for scope <EM>n</EM>+1 is immediately adjacent to, but greater than, the "low
band" range for scope <EM>n</EM>, and the "high band" range for scope <EM>n</EM>+1 is immediately
adjacent to, but less than, the "high band" range for scope <EM>n</EM>. A table of scopes and their
ranges will help visualize this:<P>
<TABLE BORDER=1>
<TR VALIGN=MIDDLE>
<TH ALIGN=LEFT><B>Scope Level</B></TH>
<TH ALIGN=LEFT><B>"Low Band" Range</B></TH>
<TH ALIGN=LEFT><B>"High Band" Range</B></TH>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>0</TD>
<TD ALIGN=LEFT>0-1999</TD>
<TD ALIGN=LEFT>63000-64999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>1</TD>
<TD ALIGN=LEFT>2000-3999</TD>
<TD ALIGN=LEFT>61000-62999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>2</TD>
<TD ALIGN=LEFT>4000-5999</TD>
<TD ALIGN=LEFT>59000-60999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>3</TD>
<TD ALIGN=LEFT>6000-7999</TD>
<TD ALIGN=LEFT>57000-58999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>4</TD>
<TD ALIGN=LEFT>8000-9999</TD>
<TD ALIGN=LEFT>55000-56999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>5</TD>
<TD ALIGN=LEFT>10000-11999</TD>
<TD ALIGN=LEFT>53000-54999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>6</TD>
<TD ALIGN=LEFT>12000-13999</TD>
<TD ALIGN=LEFT>51000-52999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>7</TD>
<TD ALIGN=LEFT>14000-15999</TD>
<TD ALIGN=LEFT>49000-50999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>8</TD>
<TD ALIGN=LEFT>16000-17999</TD>
<TD ALIGN=LEFT>47000-48999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>9</TD>
<TD ALIGN=LEFT>18000-19999</TD>
<TD ALIGN=LEFT>45000-46999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>10</TD>
<TD ALIGN=LEFT>20000-21999</TD>
<TD ALIGN=LEFT>43000-44999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>11</TD>
<TD ALIGN=LEFT>22000-23999</TD>
<TD ALIGN=LEFT>41000-42999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>12</TD>
<TD ALIGN=LEFT>24000-25999</TD>
<TD ALIGN=LEFT>39000-40999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>13</TD>
<TD ALIGN=LEFT>26000-27999</TD>
<TD ALIGN=LEFT>37000-38999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>14</TD>
<TD ALIGN=LEFT>28000-29999</TD>
<TD ALIGN=LEFT>35000-36999</TD>
</TR>
<TR VALIGN=MIDDLE>
<TD ALIGN=LEFT>15</TD>
<TD ALIGN=LEFT>30000-31999</TD>
<TD ALIGN=LEFT>33000-34999</TD>
</TR>
</TABLE>
Within each scope level, a "low band" security level refers to an ordinary user at that scope, and a
"high band" security level refers to someone who exercises administrative control over that scope
(and therefore all scopes greater than or "inside" it). Objects which are logically "enclosed" by
other objects have a higher scope value; for instance, a conference would have a higher scope value
than a SIG, which in turn would have a higher scope value than 0 (the "global" scope).<P>
The values 65000-65535 are not used, except that the value 65500 is defined as "no access" (something
not even the global system administrator can touch). Neither are the values 32000-32999, except that
the value 32500 is defined as "unrestricted user" (lying above the low bands of all scopes but below
the high bands of any of them).<P>
Within the "global scope" (scope 0), the following values are defined:
<UL>
<LI>100 - User that has not logged in ("Anonymous Honyak")</LI>
<LI>500 - User that has logged in, but email address is unverified</LI>
<LI>1000 - User logged in and verified (normal user level)</LI>
<LI>64000 - Assistant administrator accounts ("PFY" level)</LI>
<LI>64999 - Global system administrator ("BOFH" level)</LI>
</UL><P>
SIGs use the scope level 3; the following values are defined within that scope:
<UL>
<LI>6500 - SIG member</LI>
<LI>58000 - SIG co-host</LI>
<LI>58500 - SIG host</LI>
</UL><P>
Within SIGs, conferences use scope 6; the following values are defined within that scope:
<UL>
<LI>12500 - Conference member (for private conferences)</LI>
<LI>52500 - Conference host</LI>
</UL><P>
Each user has a "base access" level, within scope 0, that is stored in the "users" table. Each SIG
has four defined access levels associated with it:
<UL>
<LI><B>Read level</B> - minimum access level required to read the SIG's data. This is commonly 6500
(must be a member) but may be lower for special cases.</LI>
<LI><B>Write level</B> - minimum access level required to write the SIG's data. Since this refers to
the SIG itself, this is commonly 58000 (hosts/co-hosts only)</LI>
<LI><B>Create level</B> - minimum access level required to create new objects in the SIG. Typically
58000 (hosts/co-hosts only).</LI>
<LI><B>Delete level</B> - minimum access level required to delete the SIG. Typically 58500 (host
only).</LI>
</UL><P>
The "sigmember" table maps UIDs to SIGIDs, adding a "granted level" field that specifies a given user's
access level within the SIG itself. (If a user already has a higher access level than the "granted"
access level, as in the case of the global sysadmin, the higher level takes precedence.) Note that
this level grant is within the context of <EM>that SIG only,</EM> and does not affect access privileges
to any other SIG.<P>
Each conference has seven defined access levels associated with it:
<UL>
<LI><B>Read level</B> - minimum access level required to read the posts. Commonly 6500 (member of
community) for public confs, 12500 (conference member) for private confs.</LI>
<LI><B>Post level</B> - minimum access level required to post new messages. Commonly 6500 (member of
community) for public confs, 12500 (member of conference) for private confs.</LI>
<LI><B>Create level</B> - minimum access level required to create new topics. Commonly 6500 (member
of community) for public confs, 12500 (member of conference) for private confs.</LI>
<LI><B>Hide level</B> - minimum access level required to archive topics, or hide posts of which you
are not the owner. Commonly 52500 (conference hosts only).</LI>
<LI><B>Nuke level</B> - minimum access level required to scribble posts of which you are not the
owner, to nuke posts, or to delete topics. Commonly 52500 (conference hosts only).</LI>
<LI><B>Change level</B> - minimum access level required to change the conference's profile or
membership list. Commonly 52500 (conference hosts only).</LI>
<LI><B>Delete level</B> - minimum access level required to delete the conference. Commonly 58000
(hosts/cohosts of the enclosing SIG only).</LI>
</UL><P>
As with SIGs, there is a "confmember" table that maps UIDs to CONFIDs, adding a "granted level" field
that grants additional access privileges. (There is also a field in the table that maps conferences
into SIGs that allows a SIG to grant its users additional privileges within a conference. Normally,
this field is 0, and so it "drops out" of the calculation of access levels.) Note that, if a user has
no membership entry for a conference, the entry for the conference's enclosing SIG takes precedence,
or the base level if there is no entry in any enclosing SIG. Also note that a grant of level for a
conference or SIG only applies with respect to <EM>that</EM> conference or SIG, not any other.<P>
Additional scopes and levels will be defined for additional objects as they are added to Venice.<P>
</BODY>
</HTML>

BIN
doc/tag_new.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 685 B

BIN
doc/venice-banner.xcf Normal file

Binary file not shown.

28
etc/README.dict Normal file
View File

@ -0,0 +1,28 @@
The file "webster2.dict" was produced from the word lists supplied as "web2"
and "web2a.gz" in the /usr/share/dict directory of the Debian "miscfiles"
package (GNU miscfiles version 1.2). The following commands were used to
produce this file:
zcat /usr/share/dict/web2a.gz | fgrep -v ' ' > temp.dict
cat /usr/share/dict/web2 temp.dict | tr '[A-Z]' [a-z]' | sort \
| uniq > webster2.dict
rm temp.dict
"webster2.dict" is to be considered "freely redistributable," and is not
subject to the MPL as with the rest of Venice code. Herewith is the original
README for the dictionary:
--- begin README ---
# $NetBSD: README,v 1.2 1997/03/26 07:14:32 mikel Exp $
# @(#)README 8.1 (Berkeley) 6/5/93
WEB ---- (introduction provided by jaw@riacs) -------------------------
Welcome to web2 (Webster's Second International) all 234,936 words worth.
The 1934 copyright has elapsed, according to the supplier. The
supplemental 'web2a' list contains hyphenated terms as well as assorted
noun and adverbial phrases. The wordlist makes a dandy 'grep' victim.
-- James A. Woods {ihnp4,hplabs}!ames!jaw (or jaw@riacs)
--- end README ---

8
etc/erbo.dict Normal file
View File

@ -0,0 +1,8 @@
eminds
erbo
maddog
snarf
snarfage
utne
webb
webbme

37
etc/logging-config.xml Normal file
View File

@ -0,0 +1,37 @@
<?xml version="1.0"?>
<!DOCTYPE configuration SYSTEM "log4j.dtd">
<!--
The contents of this file are subject to the Mozilla Public License Version 1.1
(the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
language governing rights and limitations under the License.
The Original Code is the Venice Web Community System.
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
Contributor(s):
-->
<configuration>
<!-- Define the standard file appender. -->
<appender name="STDLOG" class="org.apache.log4j.FileAppender">
<param name="File" value="/home/erbo/venice.log"/>
<param name="Append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c{2} %x - %m%n"/>
</layout>
</appender>
<!-- Define the root configuration for logging. -->
<root>
<priority value="debug"/>
<appender-ref ref="STDLOG"/>
</root>
</configuration>

50
etc/render-config.xml Normal file
View File

@ -0,0 +1,50 @@
<?xml version="1.0"?>
<!--
The contents of this file are subject to the Mozilla Public License Version 1.1
(the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
language governing rights and limitations under the License.
The Original Code is the Venice Web Community System.
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
Contributor(s):
-->
<render-config>
<!-- The name of the site; included in the HTML title of the page. -->
<site-name>Venice Test</site-name>
<!-- Used to specify general rendering parameters -->
<rendering>
<!-- If this is specified, servlets will include HTML comments in their output. -->
<html-comments/>
<!-- If this is specified, pages will be transfer-encoded in GZIP if the browser
allows it. -->
<!-- <gzip-output/> -->
<!-- Specifies the default <FONT FACE=""> to use for all text. -->
<font>Arial, Helvetica</font>
</rendering>
<!-- Used to configure URL paths to various global resources. -->
<paths>
<!-- Base URL for all servlets on this server. MUST include the trailing slash. -->
<base>http://delenn:8080/venice/</base>
<!-- Base URL for all images loaded by the server code. MUST include the trailing slash. -->
<image>http://delenn:8080/venice/images/</image>
<!-- The fully-qualified URL to the site logo. The image should be 140x80 pixels. -->
<site-logo>http://delenn:8080/venice/images/powered-by-venice.gif</site-logo>
</paths>
</render-config>

107
etc/venice-config.xml Normal file
View File

@ -0,0 +1,107 @@
<?xml version="1.0"?>
<!--
The contents of this file are subject to the Mozilla Public License Version 1.1
(the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
language governing rights and limitations under the License.
The Original Code is the Venice Web Community System.
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
Contributor(s):
-->
<!-- Venice configuration file - full name should be fed to the Venice engine at startup -->
<venice-config>
<!-- This section is used to configure the Venice engine itself. -->
<engine>
<!-- The fully-qualified Java classname of the Venice engine class. -->
<classname>com.silverwrist.venice.core.impl.VeniceEngineImpl</classname>
</engine>
<!-- This section is used to configure the database pool system. -->
<database>
<!-- The fully-qualified Java classname of the JDBC driver we wish to load. -->
<driver>org.gjt.mm.mysql.Driver</driver>
<!-- The URI of the database we wish to load. -->
<uri>jdbc:mysql://localhost/venice</uri>
<!-- The username to use to log into the database. -->
<username>venicedb</username>
<!-- The password to use to log into the database. -->
<password>x00yes2K</password>
<!-- The initial number of connections to allocate to the database. -->
<initial-conns>5</initial-conns>
<!-- The maximum number of connections to the database that can be open at once. -->
<max-conns>20</max-conns>
<!-- If this tag is specified, the connection pool will wait for a connection to
become available if one is requested and none are available. If not, the
getConnection() method will throw an exception under those circumstances. -->
<wait-if-busy/>
</database>
<!-- This section is used to configure electronic mail services. -->
<email>
<!-- The SMTP server to use when sending messages out. This server must be
configured to allow relaying from the host running Venice. -->
<smtp-host>janelane</smtp-host>
<!-- The return address to use on all email messages. -->
<mail-from-addr>nobody@delenn.silverwrist.internal</mail-from-addr>
<!-- The string to use in the "X-Mailer:" header on all outgoing mail. -->
<mailer>Venice AutoMail System v0.01</mailer>
</email>
<!-- This section dictates which dictionary files get loaded into the spelling checker's
main dictionary. The default lexicon is Webster's 2nd, with a supplemental list of
words provided by Erbo. -->
<dictionary>
<file>/home/erbo/venice/WEB-INF/webster2.dict</file>
<file>/home/erbo/venice/WEB-INF/erbo.dict</file>
</dictionary>
<!-- This section holds "stock messages" with replaceable parameters that may
be fed to emailed output. -->
<messages>
<!-- This is the message sent out with the email confirmation number. -->
<!-- Parameters: $USERNAME - account user name, $CONFNUM - confirmation number -->
<email-confirm>
Welcome to the Venice conferencing system! In order to fully activate your
account after you register or change your E-mail address, you must provide a
confirmation number to the system. Please enter this number into the "Confirm
E-mail Address" dialog on the system when indicated.
Your confirmation number for your account "$USERNAME" is $CONFNUM.
Thank you, and enjoy the Venice conferencing system!
-- The Management
</email-confirm>
<!-- This is the "password reminder" message. -->
<!-- Parameters: $USERNAME - account user name, $REMINDER - password reminder -->
<reminder>
Here is the password reminder for your account "$USERNAME" as you requested:
$REMINDER
If this reminder is not sufficient for you to remember what your password is,
please contact the server administrator for further assistance.
-- The Management
</reminder>
</messages>
</venice-config>

215
etc/web.xml Normal file
View File

@ -0,0 +1,215 @@
<?xml version="1.0"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<!--
The contents of this file are subject to the Mozilla Public License Version 1.1
(the "License"); you may not use this file except in compliance with the License.
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
language governing rights and limitations under the License.
The Original Code is the Venice Web Community System.
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
Contributor(s):
-->
<web-app>
<display-name>Venice Web Community System</display-name>
<description>
The Venice Web conferencing system provides an online conferencing
environment, including discussions, online services, and other
things. Written by Eric J. Bowersox (erbo@silcom.com).
</description>
<!-- These context parameters define the location of the Venice configuration files.
Modify as needed to suit your system. -->
<context-param>
<param-name>logging.config</param-name>
<param-value>/home/erbo/venice/WEB-INF/logging-config.xml</param-value>
<description>
The full path and file name of the LOG4J configuration file, which needs
to be loaded into LOG4J's DOMConfigurator at start-up.
</description>
</context-param>
<context-param>
<param-name>venice.config</param-name>
<param-value>/home/erbo/venice/WEB-INF/venice-config.xml</param-value>
<description>
The full path and file name of the Venice engine configuration file, which
needs to be loaded into the Venice engine at start-up.
</description>
</context-param>
<context-param>
<param-name>render.config</param-name>
<param-value>/home/erbo/venice/WEB-INF/render-config.xml</param-value>
<description>
The full path and file name of the Venice rendering configuration file, which
needs to be loaded into the Venice rendering system at start-up.
</description>
</context-param>
<!-- Venice servlet definitions -->
<servlet>
<servlet-name>top</servlet-name>
<description>
Displays the top-level page of the Venice application.
</description>
<servlet-class>com.silverwrist.venice.servlets.Top</servlet-class>
<!-- The Top servlet needs to be loaded first at startup, as it initializes the
Venice system engine -->
<load-on-startup>3</load-on-startup>
</servlet>
<servlet>
<servlet-name>account</servlet-name>
<description>
Displays the "accounts" page of the Venice application.
</description>
<servlet-class>com.silverwrist.venice.servlets.Account</servlet-class>
</servlet>
<servlet>
<servlet-name>userdisplay</servlet-name>
<description>
Displays Venice user profiles.
</description>
<servlet-class>com.silverwrist.venice.servlets.UserDisplay</servlet-class>
</servlet>
<servlet>
<servlet-name>sigfrontend</servlet-name>
<description>
The "front end" for SIG display; it redirects the user to whatever page has
been defined as the "default" for that SIG.
</description>
<servlet-class>com.silverwrist.venice.servlets.SIGFrontEnd</servlet-class>
</servlet>
<servlet>
<servlet-name>sigprofile</servlet-name>
<description>
Displays the profile for a given SIG.
</description>
<servlet-class>com.silverwrist.venice.servlets.SIGProfile</servlet-class>
</servlet>
<servlet>
<servlet-name>sigadmin</servlet-name>
<description>
SIG administration functions.
</description>
<servlet-class>com.silverwrist.venice.servlets.SIGAdmin</servlet-class>
</servlet>
<servlet>
<servlet-name>sigoperations</servlet-name>
<description>
General SIG operations.
</description>
<servlet-class>com.silverwrist.venice.servlets.SIGOperations</servlet-class>
</servlet>
<servlet>
<servlet-name>find</servlet-name>
<description>
The main Find page.
</description>
<servlet-class>com.silverwrist.venice.servlets.Find</servlet-class>
</servlet>
<servlet>
<servlet-name>confoperations</servlet-name>
<description>
General conference operations.
</description>
<servlet-class>com.silverwrist.venice.servlets.ConfOperations</servlet-class>
</servlet>
<servlet>
<servlet-name>confdisplay</servlet-name>
<description>
Conference topic list and topic display.
</description>
<servlet-class>com.silverwrist.venice.servlets.ConfDisplay</servlet-class>
</servlet>
<!-- the following are test servlets, they should go away -->
<servlet>
<servlet-name>testformdata</servlet-name>
<servlet-class>com.silverwrist.util.test.FormDataTest</servlet-class>
</servlet>
<!-- Mappings from URLs in the server to Venice servlets. -->
<servlet-mapping>
<servlet-name>top</servlet-name>
<url-pattern>/top</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>account</servlet-name>
<url-pattern>/account</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>userdisplay</servlet-name>
<url-pattern>/user/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sigfrontend</servlet-name>
<url-pattern>/sig/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sigprofile</servlet-name>
<url-pattern>/sigprofile</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sigadmin</servlet-name>
<url-pattern>/sigadmin</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>sigoperations</servlet-name>
<url-pattern>/sigops</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>find</servlet-name>
<url-pattern>/find</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>confoperations</servlet-name>
<url-pattern>/confops</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>confdisplay</servlet-name>
<url-pattern>/confdisp</url-pattern>
</servlet-mapping>
<!-- the following are test servlets, they should go away -->
<servlet-mapping>
<servlet-name>testformdata</servlet-name>
<url-pattern>/testformdata</url-pattern>
</servlet-mapping>
<!-- Global parameters for the HTTP session -->
<session-config>
<session-timeout>60</session-timeout> <!-- 1 hour -->
</session-config>
</web-app>