Vincent Gaudeul wrote:
Hello all,
I've seen that it was possible to create new schemas with ApacheDS
0.9.3, and that these new schemas were "loaded" at startup, provided
one has correctly set up the xml configuration file.
My problem is to know how to create a new schema ? What Java class
should be extended ? Does anybody have any code example that would
help me doing this ?
Thanks for your help. I only need to add some basic attributed on
inetOrgPerson objet.
Ok I see what you're trying to do. I recommend you create a new m2
module for your schema. This module can generate the jar file
containing your extension schema (let's call it the vincent schema).
Your other projects can just depend on this subproject.
(1) setup the regular m2 layout for the project
(2) place the file named vincent.schema in ${basedir}/src/main/schema
with your new objectClass which extends inetOrgPerson
(3) setup pom to generate schema classes from vincent.schema using this
build section (change pkg setting to suite your needs)
<build>
<plugins>
<plugin>
<groupId>org.apache.ldap.server</groupId>
<artifactId>org.apache.ldap.server.plugin</artifactId>
<configuration>
<schemaSourcesDir>src/main/schema</schemaSourcesDir>
<schemas>
<schema>
<name>vincent</name>
<pkg>org.vincent.schema</pkg>
<dependencies>
<dependency>system</dependency>
<dependency>core</dependency>
<dependency>cosine</dependency>
<dependency>inetorgperson</dependency>
</dependencies>
</schema>
</schemas>
</configuration>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
(4) write a test case to use your new schema org.vincent.VincentSchema
which is generated into target/schemas.
NOTE: both the idea:idea and the eclipse:eclipse goal will include the
target/schemas path in the classpath so you're project should be good to
go.
Hope this helps,
Alex