Ajay Upadhyaya a écrit :

Here is an example, I did it with RC3 here are the steps (as far as I could recollect)


Thanks a lot, Ajay !!!

Question : could we post excerpt of this sample somwhere on Confluence? It will be of great interest for every users !

Emmanuel


- Download apacheds1.0-RC3
- create a custom schema file myschema.schema
#================= begin myschema.schema =============================
# define myschemaOrgPerson -- extends InetOrgPerson
# define myschemaOrganizationalUnit -- extends organizationalUnit
#================================================================
# myschema 94555
# AttributeTypes 94555.2.1
# Object Classes 94555.2.2
#

attributetype ( 94555.2.1.1
    NAME 'dateCreated'
    DESC 'dateCreated'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.2
    NAME 'dateModified'
    DESC 'dateModified'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.3
    NAME 'dateCodeGenerated'
    DESC 'dateCodeGenerated'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.4
    NAME 'dateActivated'
    DESC 'dateActivated'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.5
    NAME 'codeFlag'
    DESC 'codeFlag'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.6
    NAME 'activeFlag'
    DESC 'activeFlag'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.7
    NAME 'employeeType'
    DESC 'employeeType'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.8
    NAME 'companyURL'
    DESC 'companyURL'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.9
    NAME 'selfRegAllowed'
    DESC 'selfRegAllowed'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.10
    NAME 'protected'
    DESC 'protected'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.11
    NAME 'serviceType'
    DESC 'serviceType'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.12
    NAME 'domainKey'
    DESC 'domainKey'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.13
    NAME 'autoActivationAllowed'
    DESC 'autoActivationAllowed'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.14
    NAME 'companyName'
    DESC 'companyName'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.15
    NAME 'city'
    DESC 'city'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.16
    NAME 'state'
    DESC 'state'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

attributetype ( 94555.2.1.17
    NAME 'countryname'
    DESC 'countryname'
    EQUALITY caseIgnoreMatch
    SUBSTR caseIgnoreSubstringsMatch
    SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )


# myschemaOrgPerson
# The inetOrgPerson represents people who are associated with an
# organization in some way.  It is a structural class and is derived
# from the organizationalPerson which is defined in X.521 [X521].
objectclass    ( 94555.2.2.1
    NAME 'myschemaOrgPerson'
    DESC 'myschema Organizational Person'
    SUP inetOrgPerson
    STRUCTURAL
    MAY (
dateCreated $ dateCodeGenerated $ employeeType $ dateModified $ activeFlag $ codeFlag )
    )


objectclass ( 94555.2.2.2 NAME 'myschemaOrganizationalUnit'
    DESC 'myschemaOrganizationalUnit'
    SUP organizationalUnit STRUCTURAL
MAY ( dateCreated $ dateModified $ dateActivated $ dateCodeGenerated $ activeFlag $ codeFlag $ selfRegAllowed $ protected $ serviceType $ domainKey $ autoActivationAllowed $
        companyName $ companyURL $ state $ city $ countryname )
    )


#================= end myschema.schema =============================



- put this file in E:\Program Files\apacheds-1.0-RC3\src\core\src\main\schema folder
- install maven 2
- open command shell and cd to E:\Program Files\apacheds-1.0-RC3\src\core
- run "mvn process-resources" to generate the myschema schema sources
- generated source files will be found in E:\Program Files\apacheds-1.0-RC3\src\core\target\generated-sources\org\apache\directory\server\core\schema\bootstrap
- create a patch dir somewhere
- copy the generated Myschema* files into patch dir
- build the patch myschema.jar by placing apacheds libraries in classath... a simple javac inside ant will work - this myschema.jar has to be placed in E:\Program Files\apacheds-1.0-RC3\lib\ext folder
- configure the E:\Program Files\apacheds- 1.0-RC3\conf\server.xml
#=============== add this to server.xml =============================
<bean id="myschemaPartitionConfiguration" class="org.apache.directory.server.core.configuration.MutableDirectoryPartitionConfiguration ">
    <property name="name"><value>myschema</value></property>
    <property name="suffix"><value>dc=myschema,dc=com</value></property>
    <property name="indexedAttributes">
      <set>
        <value>dc</value>
        <value>ou</value>
        <value>objectClass</value>
        <value>krb5PrincipalName</value>
        <value>uid</value>
      </set>
    </property>
    <property name="contextEntry">
      <value>
        objectClass: top
        objectClass: domain
        objectClass: extensibleObject
        dc: myschema
      </value>
    </property>
  </bean>



On 8/23/06, *Craig L. Ching * <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Great, thanks for the info!  BTW, I'm going to be using an
    embedded server, once this is built, will it include my new schema
    in the embeddable server?
As for the project, it's a commercial product called Q Pasa! We
    monitor and manage middleware software (e.g. IBM WebSphere MQ, IBM
    WebSphere App Server, and tons of other stuff).  We are planning
    on using ApacheDS to do our default authentication/authorization
    to begin with (replacing a legacy, home-grown solution), but we're
    going to be adding in the capability to find other installations
    of our software so that disparate installations can be integrated
    (sort of hard to explain the latter use).  I'm sure if this is
    successful we'll find lots of other uses for it.  I am evaluating
    ADS because it is 100% pure java and it is embeddable, not to
    mention that it's the Apache organization ;-)
Again, thanks for the help, I'll let you all know how I progress.

    Cheers,
    Craig

        ------------------------------------------------------------------------
        *From:* Emmanuel Lecharny [mailto:[EMAIL PROTECTED]
        <mailto:[EMAIL PROTECTED]>]
        *Sent:* Wednesday, August 23, 2006 10:24 AM
        *To:* Apache Directory Developers List
        *Subject:* Re: Adding an objectClass to ApacheDS

    Great !

    Don't worry to much about the mailing list, we don't use
    [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> atm.
    So this is the right place to post.

    Extending the schema is a little bit complicated in this version,
    but it does not mean it's complicated.

    Here are the steps :
    1) create your schema using OpenLdap syntax (which is RFC syntax, btw)
    2) put it in apacheds/core/src/main/schema, beside the other schemas
    3) go into apacheds/core and modify the pom.xml file :
    ...
            <configuration>
              <schemaSourcesDir>src/main/schema</schemaSourcesDir>
              <schemas>
                <schema>
                  <name>apache</name>
                  <dependencies>
                    <dependency>system</dependency>
                  </dependencies>
                </schema>
                <schema>
                  <name>apachedns</name>
                  <dependencies>
                    <dependency>system</dependency>
                    <dependency>core</dependency>
                  </dependencies>
                </schema>
    ...
    here, you just add your schema, with its dependencies.
    4) now, go back to the root project and compile the project :
    mvn install
    (it will take around 3 minutes)
    5) build the binaries :
    cd apacheds/server-installers
    mvn install

    now, you can install the server with the installer that has been
    generated.

    If you are lost, here is a link to a page which explains the build
    process :
    http://docs.safehaus.org/display/APACHEDS/Building
    <http://docs.safehaus.org/display/APACHEDS/Building>

    I think there is something sompler, but I don't know it. Anybody
    on the list ?

    However, if you have any pb, just push a mail. We will help you as
    fast as we can.

    btw, which kind of project are you working on, if it's not secret ?

    Emmanuel lécharny

    On 8/23/06, *Craig L. Ching* < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>> wrote:

        Hi!

        I realize this is the developer's list and that it's a bit
        early for
        ApacheDS, but I'm evaluating it for use in our products.  I'm
        trying to
        figure out how to extend the schema (I need to add a new
        objectClass),
        can anyone point me in the right direction?  I'm fine with
        reading some
        code to understand it.

        Cheers,
        Craig




-- Cordialement,
    Emmanuel Lécharny



Reply via email to