Follow these Java coding guidelines:
- Google Java Style Guide, except braces must follow the Allman style instead of K & R style;
- Effective Java, Second Edition, by Joshua Bloch;
- Oracle Secure Coding Guidelines for Java SE.
For every new major functionality, there must be unit tests added to some unit test class that is part of the automated test suite of pdp-engine's MainTest.java. If the functionality has any impact on XACML - any Request/Response/Policy(Set) element - processing and/or change XACML standard conformance in anyway, make sure you add relevant integration and/or conformance tests to the test suite run by pdp-testutils's MainTest.java.
- No SNAPSHOT dependencies on "develop" and obviously "master" branches
- From the develop branch, prepare a release (example using a HTTP proxy):
$ mvn -Dhttps.proxyHost=proxyhostname -Dhttps.proxyPort=80 jgitflow:release-start
- Update the CHANGELOG according to keepachangelog.com.
- To perform the release (example using a HTTP proxy):
$ mvn -Dhttps.proxyHost=proxyhostname -Dhttps.proxyPort=80 jgitflow:release-finish
If, after deployment, the command does not succeed because of some issue with the branches. Fix the issue, then re-run the same command but with 'noDeploy' option set to true to avoid re-deployment:
$ mvn -Dhttps.proxyHost=proxyhostname -Dhttps.proxyPort=80 -DnoDeploy=true jgitflow:release-finish
- Connect and log in to the OSS Nexus Repository Manager: https://oss.sonatype.org/
- Go to Staging Profiles and select the pending repository authzforce-*... you just uploaded with
jgitflow:release-finish
- Click the Release button to release to Maven Central.
More info on jgitflow: http://jgitflow.bitbucket.org/