[
http://issues.apache.org/jira/browse/DIRSERVER-760?page=comments#action_12448675
]
Emmanuel Lecharny commented on DIRSERVER-760:
---------------------------------------------
ok. I also applied it yesturday, but I think I did it with the previous one
(not jdk 1.5). I work from home and office, and I think I committed the one
from office; My bad. I hope that everything is fine on the branch :)
Just a little point : I may be picky abot code convention, but this is just to
be sure we follow commons rules, so don't take it personnaly. I'm sure that
after a few commits I will stop...
For instance, you commited this code in
apacheds/server-main/src/main/java/org/apache/directory/server/UberjarMain.java
:
+ if (log4jProps == null)
+ log4jProps = "log4j.properties";
It would be good to add enclosing { and }.
Something we may want tod discuss is the use of the 'final' keyword. I
personnally don't use it a lot for many reasons, but essentially because I find
its semantic not clear enough in Java. Let me explain :
- final for class and method makes sense, and should be use from time to time.
- final for fields are acceptable for constants, associated with static , like
in public static final int ERROR_LEVEL = -1; Otherwise, I don't really think
this is usefull (even for guarantee a unique instanciation in constructor),
because the semantic of final is quite different in this case
- final for inner variables does not make sense except if those variables are
used in inner classes. If you have to declare a variable final, then one can
ask the question : shouldn't it be a constant ? Again, it's more or less a
question of semantic
- final for parameters makes sense only if you want to insure invariance.
That's a pity that java does not use the const keyword... This is sometime
usefull especially for public API.
This is IMHO, of course. I just find it a pity that this keyword has so many
different semantics, and I also find it a little bit overuse and tools like PMD
are trying to make you think that you should use it almost everywhere. It hurts
my eyes to see final everywhere :)
I don't want to start a religious war. May be we can discuss the use of final
in the ML, because there are quite good arguments in favor of its use (we don't
use it a lot inj ADS, and this may be bad). May be we should also try to use it
more, in order to have a little bit more defensive code...
wdyt ?
> reading .schema files at server start-up
> ----------------------------------------
>
> Key: DIRSERVER-760
> URL: http://issues.apache.org/jira/browse/DIRSERVER-760
> Project: Directory ApacheDS
> Issue Type: New Feature
> Components: core
> Affects Versions: 1.5.1
> Environment: N/A
> Reporter: Norval Hope
> Attachments: schema_branch.patch, schema_branch.patch,
> schema_loader.patch
>
>
> I am submitting a patch for a feature I required, and which I've seen a
> number of queries about on the DEV list. Currently the only way to get new
> .schema information into ApacheDS is to use the Maven2 plugin, requiring a
> rebuild of the server (not to mention working around problems like methods
> being generated which are too long for Java to handle).
> Instead this patch adds support for reading of specified .schema files from
> server.xml at server startup, via a new interface SchemaLoader and a default
> implementation FileSystemSchemaLoader. The latter supports reading all files
> matching a specified regex in a specified directory (in which case users must
> be careful to ensure that files appear lexicographically before their
> dependant files, ala init.rc in Linux) or reading an ordered list of file
> names under a specified directory. An example server.xml snippet is as
> follows:
> <property name="bootstrapSchemas">
> <set>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.AutofsSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.CorbaSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.CoreSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.CosineSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.ApacheSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.CollectiveSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.InetorgpersonSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.JavaSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.Krb5kdcSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.NisSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.SystemSchema"/>
> <bean
> class="org.apache.directory.server.core.schema.bootstrap.ApachednsSchema"/>
> </set>
> </property>
> <property name="schemaLoaders">
> <list>
> <bean
> class="org.apache.directory.server.core.schema.FileSystemSchemaLoader">
> <constructor-arg><value>./</value></constructor-arg>
>
> <!--<constructor-arg><value>.*_openldap.schema</value></constructor-arg>-->
> <constructor-arg>
> <list>
> <value>my1_openldap.schema</value>
> <value>my2_openldap.schema</value>
> </list>
> </constructor-arg>
> </bean>
> </list>
> </property>
> noting that the Maven2 style approach is of course still supported where
> desired. A list is used so that multiple SchemaLoader implementations can be
> appended if required (which I do).
> I have also included SchemaFromSearchConverter which can read a schema from
> another directory via conventional query, which may come in useful for people
> using ApacheDS as a virtual directory container of sorts. It is not required
> by the core patch and can be excluded if no generic use is seen for it.
> A few issues are still outstanding:
> 1. Is the patch seen as worthwhile by the DEV list and/or are there any
> issues with my implementation of it?
> 2. At it's core the patch uses the OpenLdapSchemaParser to read the
> .schema files, which is currently only available in the Maven2 plugin
> artifact
> <groupId>org.apache.directory.server</groupId>
> <artifactId>apacheds-core-plugin</artifactId>
>
> which is a bit clunky as it means people need to include this jar in
> their classpath (or in the UberJar). Perhaps this parsing component should be
> separated from the rest of the maven plugin to tidy this up (I don't know
> maven well enough to do this myself).
>
> 3. If the feature and implementation are ok, what further steps should I
> take re preparing the patch for inclusion?
> Thanks (by the way I was previously known as Norbert Reilly)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira