From 1e555d4dc28bf9faa3b411651fd64a48d272ddd5 Mon Sep 17 00:00:00 2001 From: "Eric J. Bowersox" Date: Wed, 31 Jan 2001 20:48:40 +0000 Subject: [PATCH] *** empty log message *** --- .cvsignore | 28 ++ AUTHORS | 1 + FAQS | 107 ++++++++ INSTALL | 74 +++++ LICENSE | 470 ++++++++++++++++++++++++++++++++ NEWS | 0 README | 52 ++++ TODO | 50 ++++ build.bat | 30 ++ build.sh | 26 ++ build.xml | 85 ++++++ doc/buttons/bn_blank80.png | Bin 0 -> 4362 bytes doc/buttons/bn_delete.png | Bin 0 -> 4622 bytes doc/buttons/bn_go.png | Bin 0 -> 4526 bytes doc/buttons/bn_hide.png | Bin 0 -> 4536 bytes doc/buttons/bn_post_go_next.png | Bin 0 -> 4908 bytes doc/buttons/bn_post_reload.png | Bin 0 -> 4862 bytes doc/buttons/bn_preview.png | Bin 0 -> 4658 bytes doc/buttons/bn_save.png | Bin 0 -> 4609 bytes doc/buttons/bn_scribble.png | Bin 0 -> 4679 bytes doc/categorization.txt | 366 +++++++++++++++++++++++++ doc/design-goals.html | 64 +++++ doc/graphic-notes.txt | 7 + doc/identifiers.html | 46 ++++ doc/packages.txt | 29 ++ doc/security-levels.html | 179 ++++++++++++ doc/tag_new.png | Bin 0 -> 685 bytes doc/venice-banner.xcf | Bin 0 -> 7949 bytes etc/README.dict | 28 ++ etc/erbo.dict | 8 + etc/logging-config.xml | 37 +++ etc/render-config.xml | 50 ++++ etc/venice-config.xml | 107 ++++++++ etc/web.xml | 215 +++++++++++++++ 34 files changed, 2059 insertions(+) create mode 100644 .cvsignore create mode 100644 AUTHORS create mode 100644 FAQS create mode 100644 INSTALL create mode 100644 LICENSE create mode 100644 NEWS create mode 100644 README create mode 100644 TODO create mode 100644 build.bat create mode 100755 build.sh create mode 100644 build.xml create mode 100644 doc/buttons/bn_blank80.png create mode 100644 doc/buttons/bn_delete.png create mode 100644 doc/buttons/bn_go.png create mode 100644 doc/buttons/bn_hide.png create mode 100644 doc/buttons/bn_post_go_next.png create mode 100644 doc/buttons/bn_post_reload.png create mode 100644 doc/buttons/bn_preview.png create mode 100644 doc/buttons/bn_save.png create mode 100644 doc/buttons/bn_scribble.png create mode 100644 doc/categorization.txt create mode 100644 doc/design-goals.html create mode 100644 doc/graphic-notes.txt create mode 100644 doc/identifiers.html create mode 100644 doc/packages.txt create mode 100644 doc/security-levels.html create mode 100644 doc/tag_new.png create mode 100644 doc/venice-banner.xcf create mode 100644 etc/README.dict create mode 100644 etc/erbo.dict create mode 100644 etc/logging-config.xml create mode 100644 etc/render-config.xml create mode 100644 etc/venice-config.xml create mode 100644 etc/web.xml diff --git a/.cvsignore b/.cvsignore new file mode 100644 index 0000000..40caffa --- /dev/null +++ b/.cvsignore @@ -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 diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..969b331 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Eric J. Bowersox diff --git a/FAQS b/FAQS new file mode 100644 index 0000000..02e1807 --- /dev/null +++ b/FAQS @@ -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 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. + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..45664c8 --- /dev/null +++ b/INSTALL @@ -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 /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://:/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.) + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7714141 --- /dev/null +++ b/LICENSE @@ -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.] + diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..e69de29 diff --git a/README b/README new file mode 100644 index 0000000..168b76e --- /dev/null +++ b/README @@ -0,0 +1,52 @@ +The Venice Web Communities System +Eric J. Bowersox for Silverwrist Design Studios +In Development, January 21, 2001 +SourceForge Home: + +---------- + +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 + diff --git a/TODO b/TODO new file mode 100644 index 0000000..adcfcf8 --- /dev/null +++ b/TODO @@ -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." + diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..3d372dc --- /dev/null +++ b/build.bat @@ -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 . +: +: 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 , +: 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= diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..26fbfb2 --- /dev/null +++ b/build.sh @@ -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 . +# +# 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 , +# 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 "$@" diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..eccdc28 --- /dev/null +++ b/build.xml @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/buttons/bn_blank80.png b/doc/buttons/bn_blank80.png new file mode 100644 index 0000000000000000000000000000000000000000..100bbd64e9063a1e9bb0cdfe6a99e9b41f069453 GIT binary patch literal 4362 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 literal 0 HcmV?d00001 diff --git a/doc/buttons/bn_delete.png b/doc/buttons/bn_delete.png new file mode 100644 index 0000000000000000000000000000000000000000..084742ad0ed1efa179cfd6bd8028c2546342fc32 GIT binary patch literal 4622 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 Eg3+1AKL7v# literal 0 HcmV?d00001 diff --git a/doc/buttons/bn_go.png b/doc/buttons/bn_go.png new file mode 100644 index 0000000000000000000000000000000000000000..dac836f0c0b249168a32064fc52b1134cb3f0755 GIT binary patch literal 4526 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 literal 0 HcmV?d00001 diff --git a/doc/buttons/bn_hide.png b/doc/buttons/bn_hide.png new file mode 100644 index 0000000000000000000000000000000000000000..7739c59fed57d2f92ca129ee8235aeb46502dc99 GIT binary patch literal 4536 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 Wd(8$`J$mH;0000X@FoU*aE#$ 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 literal 0 HcmV?d00001 diff --git a/doc/buttons/bn_save.png b/doc/buttons/bn_save.png new file mode 100644 index 0000000000000000000000000000000000000000..49df817b65c3c3a169bea3a8f0ca435deec855df GIT binary patch literal 4609 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 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 diff --git a/doc/design-goals.html b/doc/design-goals.html new file mode 100644 index 0000000..63d2ff4 --- /dev/null +++ b/doc/design-goals.html @@ -0,0 +1,64 @@ + + + + Doc: Design Goals for Venice Project + + + +

Design Goals for the Venice Project

+ Eric J. Bowersox <
erbo@silcom.com> - + January 26, 2001

+ +

    +
  1. A replacement for the CommunityWare/WebbMe conferencing system
  2. +
  3. Java/JSP/servlets implementation running under Apache Tomcat, MySQL backend
  4. +
  5. Multiple SIGs (communities) hosted per server, each with multiple conferences + (and other features); users logged into one server can join multiple SIGs
  6. +
  7. Conferencing functionality similar to CW/WebbMe: +
      +
    • Linear topics composed of HTML messages
    • +
    • View topics by new messages/unread/all messages/hidden topics/archived topics
    • +
    • Topics can be deleted/archived/made read-only by the conference host
    • +
    • Topics can be hidden from a user's personal view
    • +
    • Individual posts can be "hidden" or "scribbled" by owner or conference host
    • +
    • Posts can be previewed, with spellchecking and HTML formatting
    • +
    • Files can be "attached" to posts (up to 1 Mb in size) +
    +
  8. +
  9. Enhancements to existing conference features: +
      +
    • Full text search of posts within a conference
    • +
    • Conference-level "bozo filters"
    • +
    • Individual posts can be "nuked" without a trace by the conference host
    • +
    +
  10. +
  11. Later, replace other CW/WebbMe functions: +
      +
    • Activity logs
    • +
    • Instant messaging and chat (use Jabber)
    • +
    • Calendaring
    • +
    • Newsletters via e-mail
    • +
    +
  12. +
  13. Features from CW/WebbMe we won't do: +
      +
    • Web hosting
    • +
    • Web-based email
    • +
    +
  14. +
  15. Blue sky features: +
      +
    • Output uses XML and gets formatted into [X]HTML via XSLT; "themeable"/"skinnable" interface
    • +
    • Conferencing/other functionality available via XML-RPC or SOAP calls
    • +
    • News page creation (see Slash, Squishdot, Scoop)
    • +
    • Member trust metrics (see Slashdot "karma," Scoop "mojo," Advogato distributed trust metric)
    • +
    • User diary pages (see Advogato, Kuro5hin)
    • +
    • Moderated discussions (see Slash, Scoop)
    • +
    • Collaborative database facility (see Wiki, Everything2)
    • +
    • Content management/distributed publishing
    • +
    +
  16. +
+ + + diff --git a/doc/graphic-notes.txt b/doc/graphic-notes.txt new file mode 100644 index 0000000..4c82658 --- /dev/null +++ b/doc/graphic-notes.txt @@ -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 diff --git a/doc/identifiers.html b/doc/identifiers.html new file mode 100644 index 0000000..7b3ea9e --- /dev/null +++ b/doc/identifiers.html @@ -0,0 +1,46 @@ + + + + Doc: About Venice Identifiers + + + +

About Venice Identifiers

+ Eric J. Bowersox <erbo@silcom.com> - + January 26, 2001

+ + 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: +

    +
  • Alphanumerics [A-Z, a-z, and 0-9]
  • +
  • Dash [-]
  • +
  • Underscore [_]
  • +
  • Tilde [~]
  • +
  • Asterisk [*]
  • +
  • Apostrophe [']
  • +
  • Dollar sign [$]
  • +

+ All characters are represented in the ISO 8859-1 character set. Also note that all Venice identifiers + are case-insensitive.

+ Rationale

+ 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.

+ The ampersand [&] was eliminated because of its possible confusion with a URL parameter separator, and + because it requires HTML escaping.

+ The at sign [@] was eliminated because of possible confusion with email addresses and Jabber IDs.

+ The plus sign [+] was eliminated because of possible confusion with a URL-encoded space character.

+ The comma [,] was eliminated because of its possible interpretation as a separator character.

+ The equals sign [=] was eliminated because of its possible confusion with a URL parameter/value + separator.

+ The colon [:] was withheld to provide for a possible future "namespace" expansion (as in XML + namespaces).

+ The parentheses [(, )] were eliminated because of possible confusion with user link syntax in + conferencing.

+ The period [.] was eliminated because of possible confusion with post link syntax in conferencing.

+ The exclamation point [!] was eliminated because of possible confusion with extended post link syntax in + conferencing. + + + diff --git a/doc/packages.txt b/doc/packages.txt new file mode 100644 index 0000000..93846d2 --- /dev/null +++ b/doc/packages.txt @@ -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 diff --git a/doc/security-levels.html b/doc/security-levels.html new file mode 100644 index 0000000..ba782d5 --- /dev/null +++ b/doc/security-levels.html @@ -0,0 +1,179 @@ + + + + Doc: Security Levels in Venice + + + +

Security Levels in Venice

+ Eric J. Bowersox <erbo@silcom.com> - + January 26, 2001

+ + 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 n (n>=0), + the "low band" range for scope n+1 is immediately adjacent to, but greater than, the "low + band" range for scope n, and the "high band" range for scope n+1 is immediately + adjacent to, but less than, the "high band" range for scope n. A table of scopes and their + ranges will help visualize this:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Scope Level"Low Band" Range"High Band" Range
00-199963000-64999
12000-399961000-62999
24000-599959000-60999
36000-799957000-58999
48000-999955000-56999
510000-1199953000-54999
612000-1399951000-52999
714000-1599949000-50999
816000-1799947000-48999
918000-1999945000-46999
1020000-2199943000-44999
1122000-2399941000-42999
1224000-2599939000-40999
1326000-2799937000-38999
1428000-2999935000-36999
1530000-3199933000-34999
+ + 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).

+ 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).

+ Within the "global scope" (scope 0), the following values are defined: +

    +
  • 100 - User that has not logged in ("Anonymous Honyak")
  • +
  • 500 - User that has logged in, but email address is unverified
  • +
  • 1000 - User logged in and verified (normal user level)
  • +
  • 64000 - Assistant administrator accounts ("PFY" level)
  • +
  • 64999 - Global system administrator ("BOFH" level)
  • +

+ SIGs use the scope level 3; the following values are defined within that scope: +

    +
  • 6500 - SIG member
  • +
  • 58000 - SIG co-host
  • +
  • 58500 - SIG host
  • +

+ Within SIGs, conferences use scope 6; the following values are defined within that scope: +

    +
  • 12500 - Conference member (for private conferences)
  • +
  • 52500 - Conference host
  • +

+ 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: +

    +
  • Read level - 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.
  • +
  • Write level - 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)
  • +
  • Create level - minimum access level required to create new objects in the SIG. Typically + 58000 (hosts/co-hosts only).
  • +
  • Delete level - minimum access level required to delete the SIG. Typically 58500 (host + only).
  • +

+ 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 that SIG only, and does not affect access privileges + to any other SIG.

+ Each conference has seven defined access levels associated with it: +

    +
  • Read level - minimum access level required to read the posts. Commonly 6500 (member of + community) for public confs, 12500 (conference member) for private confs.
  • +
  • Post level - minimum access level required to post new messages. Commonly 6500 (member of + community) for public confs, 12500 (member of conference) for private confs.
  • +
  • Create level - minimum access level required to create new topics. Commonly 6500 (member + of community) for public confs, 12500 (member of conference) for private confs.
  • +
  • Hide level - minimum access level required to archive topics, or hide posts of which you + are not the owner. Commonly 52500 (conference hosts only).
  • +
  • Nuke level - 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).
  • +
  • Change level - minimum access level required to change the conference's profile or + membership list. Commonly 52500 (conference hosts only).
  • +
  • Delete level - minimum access level required to delete the conference. Commonly 58000 + (hosts/cohosts of the enclosing SIG only).
  • +

+ 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 that conference or SIG, not any other.

+ Additional scopes and levels will be defined for additional objects as they are added to Venice.

+ + diff --git a/doc/tag_new.png b/doc/tag_new.png new file mode 100644 index 0000000000000000000000000000000000000000..70a76267af4dba499014297afccc87ad2beae8b9 GIT binary patch literal 685 zcmV;e0#f~nP)cKU)DXi?^(%y zdE?g>d@K}=pr3T%1+3CvNpLw|VVtA@0Lo0s9!DdD?;!HzSi{m`Sn@`Bh51_1NGXovEQlXRFrQ@S2rgz1$|)Mb<&6&ja07;p zONH&@%oj2KzySbw0Yg9OmJTvbQcQ;F?-QiV#AKKyjgwTUXjnQH_pMblg8t{Ohyya! zm-Cghne9^1#yA>D2L!Sfhh9`GQYAsd(nTA2GG!)=wvNgDY}zh`+RVm)G83vsa2Cdb z2(M#%vidwGZ>v+UmY~{vm>;fUtE~%VIbk4EQqc(Bygn*j95-NMOcag4_9)H^1dH=r z#8%P3XQEi7)z&2fTs^*F)#b^P@dpl$-kwPQs+=N93Rb;G=V6S+Y$X*NCn+d1(Q&Et zR_6Wr_|TJ|Cdy3s14mq-I=no<@i735@Ie^A-`-(ocUvmR-$0J!(-Z)(xBm(kr`H%> zO@(h~cN-U{*P_nwYAX2w;M?t;=t4UES|VoR007Y7->v7*!XIMe2{xX8)PIQ|{p|eS T*?X8j00000NkvXXu0mjfu-h`I literal 0 HcmV?d00001 diff --git a/doc/venice-banner.xcf b/doc/venice-banner.xcf new file mode 100644 index 0000000000000000000000000000000000000000..f8a22e4cd308422ade04a44235b89e6800a9d57e GIT binary patch literal 7949 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 Df{Slt literal 0 HcmV?d00001 diff --git a/etc/README.dict b/etc/README.dict new file mode 100644 index 0000000..48117d3 --- /dev/null +++ b/etc/README.dict @@ -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 --- + diff --git a/etc/erbo.dict b/etc/erbo.dict new file mode 100644 index 0000000..d0c9b0f --- /dev/null +++ b/etc/erbo.dict @@ -0,0 +1,8 @@ +eminds +erbo +maddog +snarf +snarfage +utne +webb +webbme diff --git a/etc/logging-config.xml b/etc/logging-config.xml new file mode 100644 index 0000000..73e3080 --- /dev/null +++ b/etc/logging-config.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/etc/render-config.xml b/etc/render-config.xml new file mode 100644 index 0000000..fbc4dc0 --- /dev/null +++ b/etc/render-config.xml @@ -0,0 +1,50 @@ + + + + + + Venice Test + + + + + + + + + + + Arial, Helvetica + + + + + + + http://delenn:8080/venice/ + + + http://delenn:8080/venice/images/ + + + http://delenn:8080/venice/images/powered-by-venice.gif + + + \ No newline at end of file diff --git a/etc/venice-config.xml b/etc/venice-config.xml new file mode 100644 index 0000000..800e084 --- /dev/null +++ b/etc/venice-config.xml @@ -0,0 +1,107 @@ + + + + + + + + + com.silverwrist.venice.core.impl.VeniceEngineImpl + + + + + + org.gjt.mm.mysql.Driver + + + jdbc:mysql://localhost/venice + + + venicedb + + + x00yes2K + + + 5 + + + 20 + + + + + + + + + janelane + + + nobody@delenn.silverwrist.internal + + + Venice AutoMail System v0.01 + + + + + /home/erbo/venice/WEB-INF/webster2.dict + /home/erbo/venice/WEB-INF/erbo.dict + + + + + + + +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 + + + + + +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 + + + + diff --git a/etc/web.xml b/etc/web.xml new file mode 100644 index 0000000..c4e65e7 --- /dev/null +++ b/etc/web.xml @@ -0,0 +1,215 @@ + + + + + + Venice Web Community System + + 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). + + + + + logging.config + /home/erbo/venice/WEB-INF/logging-config.xml + + The full path and file name of the LOG4J configuration file, which needs + to be loaded into LOG4J's DOMConfigurator at start-up. + + + + + venice.config + /home/erbo/venice/WEB-INF/venice-config.xml + + The full path and file name of the Venice engine configuration file, which + needs to be loaded into the Venice engine at start-up. + + + + + render.config + /home/erbo/venice/WEB-INF/render-config.xml + + 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. + + + + + + top + + Displays the top-level page of the Venice application. + + com.silverwrist.venice.servlets.Top + + 3 + + + + account + + Displays the "accounts" page of the Venice application. + + com.silverwrist.venice.servlets.Account + + + + userdisplay + + Displays Venice user profiles. + + com.silverwrist.venice.servlets.UserDisplay + + + + sigfrontend + + The "front end" for SIG display; it redirects the user to whatever page has + been defined as the "default" for that SIG. + + com.silverwrist.venice.servlets.SIGFrontEnd + + + + sigprofile + + Displays the profile for a given SIG. + + com.silverwrist.venice.servlets.SIGProfile + + + + sigadmin + + SIG administration functions. + + com.silverwrist.venice.servlets.SIGAdmin + + + + sigoperations + + General SIG operations. + + com.silverwrist.venice.servlets.SIGOperations + + + + find + + The main Find page. + + com.silverwrist.venice.servlets.Find + + + + confoperations + + General conference operations. + + com.silverwrist.venice.servlets.ConfOperations + + + + confdisplay + + Conference topic list and topic display. + + com.silverwrist.venice.servlets.ConfDisplay + + + + + + testformdata + com.silverwrist.util.test.FormDataTest + + + + + top + /top + + + + account + /account + + + + userdisplay + /user/* + + + + sigfrontend + /sig/* + + + + sigprofile + /sigprofile + + + + sigadmin + /sigadmin + + + + sigoperations + /sigops + + + + find + /find + + + + confoperations + /confops + + + + confdisplay + /confdisp + + + + + testformdata + /testformdata + + + + + 60 + + + +