directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Karasulu <aok...@bellsouth.net>
Subject RE: [patch] Trying to build Eve...
Date Sat, 24 Jul 2004 12:52:05 GMT
Hey guys,

Thanks Niclas for the patch and Stephen to you for applying it.  Niclas
let me know if you are having trouble getting Eve to come up.  BTW at
this point the frontend it the only part of Eve that comes up.  Because
there is no backend (actually the backend sits in the sandbox to be
dusted off) attached she will return BUSY responses to any requests. 
You can test this by using OpenLDAP clients to go against the Eve
server.

If interested you might want to take a look at writing the default
request handlers in the processor component.  Basically the plumbing of
the server is geared to deliver various Reqest objects to the  processor
via events.   The directory/trunk/ldap/common project and the artifact
it generates ldap-common.jar contains the set of beans needed for the
variuos LDAP PDU (Protocol Data Units): beans like AddRequest,
DeleteResponse, SearchRequest ...  So basically the processor gets a
request bean and it generates a response bean which it publishes as a
response event on the frontends event bus.  This is picked up by the
listening Encoder module that encodes it and generates a series of
output events.  The output module/component listens for these events and
flushs the output to the client.  The organization of the server may be
a bit unusual but the following presentation may shed some light on why
we designed it this way:

http://www.cs.berkeley.edu/~mdw/proj/seda

Ok so what I'm thinking is we make the processor configurable so it can
load any kind of request handler.  This will be valuable to those that
want to implement custom request handlers.  But this does not have to be
done right away.  It's a nice feature that can be added later.

So how will we building request processors?  Basically the backend
subsystem that this thing talks to is a JNDI LDAP provider so the
request handlers should be using JNDI in the LDAP namespace.  They
should be talking to a JNDI provider.  This makes testing easy. 
Basically you might want to setup another LDAP server like SUN ONE or
OpenLDAP and have your processors use the SUN JNDI LDAP provider to hit
these servers.  This way the frontend is a gateway to those servers. 
Once we have the backend subsystem ready we can snap it in and just
change a set of properties to now use the backend provider that does not
go over the wire but directly to disk.

Does this sound like a good idea?  It's fun, protocol laden and
challenging.  It's exciting because you're dealing with one of the
cooler aspects of the server: how it leverages JNDI to do its bidding.

Let me know what you think?

Alex

On Sat, 2004-07-24 at 04:23, Stephen McConnell wrote:
> Applied.
> Thanks Niclas.
> 
> 
> > -----Original Message-----
> > From: Niclas Hedhman [mailto:niclas@hedhman.org]
> > Sent: Saturday, July 24, 2004 06:35
> > To: Apache Directory Developers List
> > Subject: [patch] Trying to build Eve...
> > Importance: High
> > 
> > 
> > Hi,
> > here is a necessary patch to build the Merlin frontend successfully
> from
> > scratch, i.e. one hasn't built Merlin previously.
> > (sorry for the 'noise' in the patch)
> > 
> > Cheers
> > Niclas
> > 
> > 
> > Index: eve/trunk/frontend/merlin/project.xml
> > ===================================================================
> > --- eve/trunk/frontend/merlin/project.xml       (revision 23199)
> > +++ eve/trunk/frontend/merlin/project.xml       (working copy)
> > @@ -57,39 +57,47 @@
> >        <url>http://avalon.apache.org/excalibur/index.html</url>
> >      </dependency>
> > 
> > -    <dependency>
> > -      <groupId>excalibur-thread</groupId>
> > -      <artifactId>excalibur-thread-impl</artifactId>
> > -      <version>2.0.0</version>
> > -      <url>http://avalon.apache.org/excalibur/index.html</url>
> > -    </dependency>
> > -
> >      <dependency>
> > +      <groupId>excalibur-thread</groupId>
> > +      <artifactId>excalibur-thread-impl</artifactId>
> > +      <version>2.0.0</version>
> > +      <url>http://avalon.apache.org/excalibur/index.html</url>
> > +    </dependency>
> > +
> > +    <dependency>
> >        <groupId>excalibur-pool</groupId>
> >        <artifactId>excalibur-pool-api</artifactId>
> >        <version>2.0.0</version>
> >        <url>http://avalon.apache.org/excalibur/index.html</url>
> >      </dependency>
> > 
> > -    <dependency>
> > -      <groupId>excalibur-pool</groupId>
> > -      <artifactId>excalibur-pool-impl</artifactId>
> > -      <version>2.0.0</version>
> > -      <url>http://avalon.apache.org/excalibur/index.html</url>
> > -    </dependency>
> > -
> > -    <!--
> >      <dependency>
> > +      <groupId>excalibur-pool</groupId>
> > +      <artifactId>excalibur-pool-impl</artifactId>
> > +      <version>2.0.0</version>
> > +      <url>http://avalon.apache.org/excalibur/index.html</url>
> > +    </dependency>
> > +
> > +    <!--
> > +    <dependency>
> >        <groupId>excalibur-event</groupId>
> >        <artifactId>excalibur-event</artifactId>
> >        <version>1.0.3</version>
> >        <url>http://avalon.apache.org/excalibur/index.html</url>
> >      </dependency>
> > -    -->
> > +    -->
> > 
> >      <!-- framework dependencies -->
> > 
> >      <dependency>
> > +      <groupId>avalon-meta</groupId>
> > +      <artifactId>avalon-meta-plugin</artifactId>
> > +      <version>1.4.0</version>
> > +      <type>plugin</type>
> > +      <url>http://avalon.apache.org/meta</url>
> > +    </dependency>
> > +
> > +    <dependency>
> >        <groupId>avalon-framework</groupId>
> >        <artifactId>avalon-framework-api</artifactId>
> >        <version>4.2.0</version>
> > @@ -162,7 +170,7 @@
> >        <version>1.2</version>
> >        <url>http://jakarta.apache.org/regexp</url>
> >      </dependency>
> > -
> > +
> >      <!--
> >      <dependency>
> >        <groupId>junit</groupId>
> > @@ -170,7 +178,7 @@
> >        <version>3.8.1</version>
> >        <url>http://junit.org</url>
> >      </dependency>
> > -    -->
> > +    -->
> > 
> >          <!-- THE DEPENDENCY KEEPING USE IN INCUBATOR -->
> >          <dependency>
> > @@ -220,7 +228,7 @@
> > 
> > http://incubator.apache.org/directory/subprojects/snickers/ber/api
> >        </url>
> >      </dependency>
> > -
> > +
> >    </dependencies>
> > 
> >  </project>
> > 
> > --
> >    +------//-------------------+
> >   / http://www.bali.ac        /
> >  / http://niclas.hedhman.org /
> > +------//-------------------+
> 
> 
> 


Mime
View raw message