The code style conventions used in the project are based on the style-guide defined of Fedora-3. They should prevent commits cluttered with format changes.
Formatting Rules
Here are the major rules:
- Four space indents for Java, and 2-space indents for XML. NO TABS
K&R style braces
if (code) { // code } else { // code }
- Do not use wildcard imports
- Write Javadocs for public methods and classes. Keep it short and to the point
- Avoid public instance variables; use accessors
- Use public methods sparingly; implementation details are not public
- Maximum length of lines is 96 characters.
Create Javadocs for types of at least the following descriptivity
/** * @author Joe Developer * @date MMM DD, YYYY */ public class MyClass
Each source file should contain a license header. The following is an example, but the actual license header should be inserted as part of build.
/** * Copyright 2013 DuraSpace, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */
To check for missing headers
mvn license:check
To add missing headers
mvn license:format
IDE Setups
IDE settings can be found in fcrepo4/etc in the project source.
- Eclipse settings are here: fcrepo4/src/site/eclipse
- Intellij settings TBD
Checkstyle
We're in the process of adding checkstyle enforcement to our modules (meaning, if you violate some of the major style rules, the build will fail).