> On 2010-10-27 04:38:22, Kiran Ayyagari wrote:
> > I would suggest that we confine the usage of beans to config reader 
> > only(even if they can be accessed publicly), cause we need to copy the 
> > property values from bean to the corresponding real instance (e.x 
> > DirectoryServiceBean -> DirectoryService) and this is better to it in the 
> > reader, so we don't need this copying anywhere else to setup a service (one 
> > particular area I see is in embedded mode, currently in embedded server we 
> > are not able to
> > use external config, but with the new single file LDIF based config it is 
> > now possible and setting up a server gets easier too from a user's pov)
> 
> Emmanuel Lécharny wrote:
>     I'm not sure this is a good idea :
>     - if the configBean does the Bean -> real object conversion, then the 
> configBean will have to be aware of the real object. In any case, there is a 
> tight relation between config and entities, and it has to be expressed in 
> either place.
>     - As configBean can be used to store partial results (it contains 
> AdsBaseBeans), you have no way to know which kind of objects you'll get from 
> it : ot can stores AdirectoryService beans (and more than one), Servers, etc.
>     - if the service init needs to read the configBean and search for the 
> exact Bean it has to use, then that mean the service has to know where in the 
> config hierarchy will be stored the Bean. Not very convenient, IMO
>     - also the reader reads, it does not instantiate. In Studio, we don't 
> care instantiating anything, so there is no reason to have this part done in 
> the reader. I created a ConfigCreator for this purpose, btw
> 
> Kiran Ayyagari wrote:
>     Agree with you, the main thing I want to see is to have a single plave 
> where this bean -> real service object conversion/mapping/creation 
>     happens.
>     So instead of we changing the startLdap() method to startLdap( 
> directoryServiceBean.getLdapServerBean(), directoryService );
>     
>     we need a config handler/creator to do this and give us the 
> DirectoryService which we can use directly to start. Am I making sense?
>

ATM, the ConfigCreator class is doing the conversion. 

We can do : startLdap( directoryServiceBean, directoryService )

that would be probably better.

If we go any further, another approach would be to nae all the beans, and use 
PicoContainer :

startLdap( container, directoryService )

where inside the startLdap we would do :

  LdapServerBean ldapServerBean (LdapServerBean)container.get( "ldapServer" );

but this is not where we want to go, I guess...


- Emmanuel


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/14/#review5
-----------------------------------------------------------


On 2010-10-27 04:24:41, Emmanuel Lécharny wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/14/
> -----------------------------------------------------------
> 
> (Updated 2010-10-27 04:24:41)
> 
> 
> Review request for directory.
> 
> 
> Summary
> -------
> 
> I have modified the ApacheDsService start method this way :
> 
>     public void start( InstanceLayout instanceLayout ) throws Exception
>     {
>         File partitionsDir = instanceLayout.getPartitionsDirectory();
>         
>         if ( !partitionsDir.exists() )
>         {
>             LOG.info( "partition directory doesn't exist, creating {}", 
> partitionsDir.getAbsolutePath() );
>             partitionsDir.mkdirs();
>         }
> 
>         LOG.info( "using partition dir {}", partitionsDir.getAbsolutePath() );
>         
>         initSchemaLdifPartition( instanceLayout );
>         initConfigPartition( instanceLayout );
> 
>         // Read the configuration
>         cpReader = new ConfigPartitionReader( configPartition, partitionsDir 
> );
>         
>         ConfigBean configBean = cpReader.readConfig( "ou=config" );
>         
>         DirectoryServiceBean directoryServiceBean = 
> configBean.getDirectoryServiceBean( "default" );
>         
>         // Initialize the DirectoryService now
>         DirectoryService directoryService = initDirectoryService( 
> instanceLayout, directoryServiceBean );
> 
>         // start the LDAP server
>         startLdap( directoryServiceBean.getLdapServerBean(), directoryService 
> );
> 
>         // start the NTP server
>         startNtp( directoryServiceBean.getNtpServerBean(), directoryService );
> 
>         // Initialize the DNS server (Not ready yet)
>         // initDns( configBean );
> 
>         // Initialize the DHCP server (Not ready yet)
>         // initDhcp( configBean );
> 
>         // start the ChangePwd server (Not ready yet)
>         startChangePwd( directoryServiceBean.getChangePasswordServerBean(), 
> directoryService );
> 
>         // start the Kerberos server
>         startKerberos( directoryServiceBean.getKdcServerBean(), 
> directoryService );
> 
>         // start the jetty http server
>         startHttpServer( directoryServiceBean.getHttpServerBean(), 
> directoryService );
>     }
> 
> 
> Diffs
> -----
> 
> 
> Diff: https://reviews.apache.org/r/14/diff
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> Emmanuel
> 
>

Reply via email to