From dev-return-40341-apmail-directory-dev-archive=directory.apache.org@directory.apache.org Tue Feb 14 13:55:39 2012 Return-Path: X-Original-To: apmail-directory-dev-archive@www.apache.org Delivered-To: apmail-directory-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id B06279FFD for ; Tue, 14 Feb 2012 13:55:39 +0000 (UTC) Received: (qmail 41874 invoked by uid 500); 14 Feb 2012 13:55:39 -0000 Delivered-To: apmail-directory-dev-archive@directory.apache.org Received: (qmail 41823 invoked by uid 500); 14 Feb 2012 13:55:39 -0000 Mailing-List: contact dev-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list dev@directory.apache.org Received: (qmail 41814 invoked by uid 99); 14 Feb 2012 13:55:39 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Feb 2012 13:55:39 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of elecharny@gmail.com designates 209.85.214.50 as permitted sender) Received: from [209.85.214.50] (HELO mail-bk0-f50.google.com) (209.85.214.50) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 14 Feb 2012 13:55:31 +0000 Received: by bkty15 with SMTP id y15so6036031bkt.37 for ; Tue, 14 Feb 2012 05:55:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:reply-to:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=1VG5h0iRBfnRTwVZToWJ8jus6qqVYJQOrNyKHA5dSpA=; b=pTmkzwI1oEOvfzP8dibkwX4BQYUZgBBMSacXmlDru9W6oJo0BCS5JErBCLQ4qIx036 E4JDgAC2qEkNc1cBGPvSHXrBKmWu8ALLHYggF4IYehW0Yy4iAMjmNokRxKi5Xwu21ttx sxCc5uP9gdu2SC96O8+VsSTkBuJfAvxfXYKEs= Received: by 10.204.157.148 with SMTP id b20mr9266483bkx.89.1329227711258; Tue, 14 Feb 2012 05:55:11 -0800 (PST) Received: from Emmanuels-MacBook-Pro.local (lon92-10-78-226-4-211.fbx.proxad.net. [78.226.4.211]) by mx.google.com with ESMTPS id t17sm56836591bke.6.2012.02.14.05.55.07 (version=SSLv3 cipher=OTHER); Tue, 14 Feb 2012 05:55:08 -0800 (PST) Message-ID: <4F3A67BA.1010204@gmail.com> Date: Tue, 14 Feb 2012 14:55:06 +0100 From: =?UTF-8?B?RW1tYW51ZWwgTMOpY2hhcm55?= Reply-To: elecharny@apache.org User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:10.0.1) Gecko/20120208 Thunderbird/10.0.1 MIME-Version: 1.0 To: Apache Directory Developers List Subject: SchemaManager : TODOs Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Checked: Checked by ClamAV on apache.org Hi guys, as we are trying to work on a Schema Aware API, we are facing some issues when it comes to connect and work with some other LdapServer, like OpenLDaP, AD, etc. Those issues were expected, and there is nothing serious, but we need to do some refactoring in order to ease the pain. Here is a list of known issues : o We have a mixed model for SchemaObject. They are mutable, they don't hold everything we need in the server, the APi and studio, and it's not versatile. We need to create a Immutable SchemaObject model, and have mutable objects we can use in Studio o We have some methods in SchemaObject classes that does not belong to those classes : addToRegistries(), for instance, should be a SchemaManager method o We need place holder schemaObjects, when we connect to a server which is not exposing all the SchemaObject we expect. For instance, openLDAP does not expose the AttributeTypeDescritpion syntax, and 13 other syntaxes referenced by ATs. AD does not expose any syntax at all, etc. Using a fake SchemaObject is mandatory to avoid NPE and other bizarre behaviors o We need to handle MRU, NF, DCR and DSR o We need to make a distinction between a Schema and a Schema file. Schema is the whole stuff, with all teh AT, OC etc. A SchemaFile is just a part of it. Currently we use Schema to describe files, not to describe the while set of SchemaObject. This must be clarified o We have a lot of useless conversions done. For instance, to load the schema from a remote server, we get the elements in a RDC format, convert them to SchemaObjects, then convert them to Entries, then we convert them to SchemaObjects again, because all those conversions are done inside some private methods. We must only use one pivot format, the SchemaObject, and convertto and from this format o We need to add decorators around existing SchemaObject to do those conversions (in and out) o We need to add some listeners in the SchemaManager to allow a third party (namely, studio) to know when something has changed in the schema All those items are not complex ones, we are close to have something which can be use almost everywhere, but we need to get those items fixed if we want to have a solid and stable release. I'm going to address some of those points asap. -- Regards, Cordialement, Emmanuel Lécharny www.iktek.com