Return-Path: Delivered-To: apmail-incubator-directory-cvs-archive@www.apache.org Received: (qmail 13420 invoked from network); 9 Dec 2004 16:06:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 9 Dec 2004 16:06:46 -0000 Received: (qmail 5947 invoked by uid 500); 9 Dec 2004 16:06:04 -0000 Delivered-To: apmail-incubator-directory-cvs-archive@incubator.apache.org Received: (qmail 5895 invoked by uid 500); 9 Dec 2004 16:06:02 -0000 Mailing-List: contact directory-cvs-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: directory-dev@incubator.apache.org Delivered-To: mailing list directory-cvs@incubator.apache.org Received: (qmail 5877 invoked by uid 99); 9 Dec 2004 16:06:02 -0000 X-ASF-Spam-Status: No, hits=-10.0 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from minotaur.apache.org (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.28) with SMTP; Thu, 09 Dec 2004 08:05:59 -0800 Received: (qmail 13017 invoked by uid 65534); 9 Dec 2004 16:05:53 -0000 Date: 9 Dec 2004 16:05:53 -0000 Message-ID: <20041209160553.13013.qmail@minotaur.apache.org> From: akarasulu@apache.org To: directory-cvs@incubator.apache.org Subject: svn commit: r111400 - /incubator/directory/eve/trunk/xdocs/jndi.xml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Author: akarasulu Date: Thu Dec 9 08:05:52 2004 New Revision: 111400 URL: http://svn.apache.org/viewcvs?view=rev&rev=111400 Log: Added documentation on JNDI provider and all the properties used by the provider. Modified: incubator/directory/eve/trunk/xdocs/jndi.xml Modified: incubator/directory/eve/trunk/xdocs/jndi.xml Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/xdocs/jndi.xml?view=diff&rev=111400&p1=incubator/directory/eve/trunk/xdocs/jndi.xml&r1=111399&p2=incubator/directory/eve/trunk/xdocs/jndi.xml&r2=111400 ============================================================================== --- incubator/directory/eve/trunk/xdocs/jndi.xml (original) +++ incubator/directory/eve/trunk/xdocs/jndi.xml Thu Dec 9 08:05:52 2004 @@ -1,92 +1,166 @@ - - - Alex Karasulu - Apache Directory Project: Eve Backend Subsystem - + + + Alex Karasulu + Eve JNDI Provider + - - -
-

- The backend subsystem is responsible for many different aspects of the - server besides just entry storage. It is a major subsystem that - contains within it other subsystems which in turn contain several - granular services implemented by components. Although you'll have to - look into the detailed design of the backend and the other subsystems - composing it we have here a cursory overview of the responsibilities - of the entire backend subsystem: -

- -
    -
  • - manages multiple backends (a.k.a. partitions) each associated with - a naming context within the server -
  • - -
  • - maintains special system backends used to manage schema information - and server (DSA) specific configuration information in addition to - backends used to manage application specific information -
  • - -
  • - decorates backend operations with orthogonal services using an - interceptor framework - the framework will be used to neatly manage - the following aspects possibly associated with backend system - operations: -
      -
    • operation authorization on entries using ACLs
    • -
    • replication
    • -
    • schema checking
    • -
    • input normalization
    • -
    • trigger firing
    • -
    • error handling
    • -
    • transaction support
    • -
    -
  • - -
  • - manages Java and Groovy stored procedures -
  • - -
  • - contains a server side JNDI provider which wraps the backend nexus - translating JNDI operations efficently to nexus operations where - several backends hang. The JNDI provider is intended for used - within stored procedures to access backend entries. This makes - stored procedures written in Java and Groovy operable within the - server as well as outside of it as remote procedures. -
  • -
- -

- Together these subsystems are wrapped as one major system using JNDI - as the top level facade. The entire backend subsystem of Eve is - actually designed as a server side JNDI provider. The frontend - translates protocol requests into JNDI calls against the backend - subsystem's JNDI Contexts to operate on entries. -

- -

- The backend subsystem without the frontend itself is embeddable using - the JNDI to start up the backend. JNDI is used to load the provider - in a fashion already familiar to those using JNDI. So code written to - operate remotely against an LDAP server using the SUN JNDI LDAP - provider can work locally against Eve's server side JNDI LDAP - provider where the backend is embedded within the same process space. - Because we chose to push the interceptor framework into the backend - all decorative services are available through the embedded backend - when used as a JNDI provider. Meaning if you embed Eve's backend - things like replication, schema checking and triggers are still active - and available without the frontend. -

- -

- There is are so many details to discuss however we leave these details - to more specific documentation in the sections below: -

-
- +
+

+ Besides an LDAP protocol server, Eve is also a JNDI provider for the + LDAP namespace. Unlike the SUN JNDI LDAP Provider which is an LDAP + client, the Eve JNDI Provider is not. JNDI operations on Contexts + directly tap into the server's database partitions to add, lookup, + alter, and search for entries. There is nothing done over the wire. +

+ +

+ Eve leverages its JNDI LDAP provider in several ways. First stored + procedures written in Java will naturally use JNDI to alter entries + using this provider. Thanks to JNDI the same procedure outside of the + server can be tested using the SUN JNDI LDAP provider. This + transparency is wicked cool making testing easy. The Eve JNDI provider + is also used as the API of choice for integrating Eve into other Java + applications and servers. The first InitialContext request to the Eve + provider fires up the entire server. So you need not learn anything + new to start playing with her! +

+ +

+ This document describes the Eve JNDI Provider in terms of the custom + properties used to control its behavoir in the solid state and for + configuring her on start up. +

+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
keyoptionaldescription
eve.wkdirtrue + The file system directory Eve will use as its working directory to + store database files and other things. +
eve.schemastrue + The schema configuration settings. +
eve.disable.anonymoustrue + If present disables anonymous binds. +
eve.operation.synctrue + If present when requesting an InitialContext this property forces + all partitions to sync their buffers to disk if they cache writes. +
eve.operation.shutdowntrue + If present when requesting an InitialContext this property + gracefully shutsdown the server. It returns a useless DeadContext + which throws exceptions when used. +
eve.net.disable.protocoltrue + Used when starting up the server to disable the networking frontend + that handles LDAP protocol requests. +
eve.net.passthrutrue + Used to pass an existing network frontend to the server rather + than having the server create its own instance. +
eve.net.ldap.porttrue + The LDAP port to use for servicing LDAP protocol requests if not + on the standard port: 389. +
eve.net.ldaps.porttrue + The LDAP port to use for servicing secure LDAP protocol requests if + not on the standard secure LDAP port: 636. +
eve.db.partitionstrue + The list of database partition identifiers. +
eve.db.partition.suffix.false + A key base for listing the suffixes of database partitions. The + identifier for the partition is appended to this base to form the + key for the suffix of that partition. +
eve.db.partition.indices.true + A key base for listing the indices for database partitions. The + identifier for the partition is appended to this base to form the + key for the suffix of that partition. +
eve.db.partition.attributes.false + A key base for listing the attributes and values for the suffix + entries of partitions. The identifier for the partition is + appended to this base, then the name of attribute is appended to + form the key for the attribuet in the suffix of that partition. + More information on setting up partitions with this and other + properties is here... +
+
+