Le 08/06/15 16:01, Shawn McKinney a écrit :
> Hello,
>
> For the past few weeks bugs and issues related to code quality in the 
> fortress sub-project have been fixed.  Much of the work has taken place in a 
> branch as discussed by this issue:
> https://issues.apache.org/jira/browse/FC-109.
>
> A significant portion of the cleanup work involved refactoring packages to 
> eliminate dependency cycles.  Unfortunately, this will cause existing 
> fortress dependent programs to no longer compile with the latest fortress 
> core source.  This breakage was not taken lightly.  We pride ourselves on 
> maintaining a stable api, one that does not change, or at least when it does, 
> there is a very good reason, and it has been well documented.  But, because 
> we are still relatively early in the adoption cycle of this project, and that 
> a GA release is imminent, it’s now or never.
>
> Once the merger of branch (containing sonarqube changes) occurs back to trunk 
> (sometime in the next 24 hours), your current fortress programs will break.  
> Fortunately the required changes are superficial, related to package names, 
> and not code semantics.  Below are the steps to get your existing fortress 
> dependent program back to using the latest code.  It is likely you will only 
> need to do #1.  Let us know if you have questions or problems with this 
> upgrade.
>
> Instructions to upgrade to latest fortress-core source:
>
> A. Changes to Dependent Program Code:
>
> 1. Change package name of fortress entities. 
> search and replace: import org.apache.directory.fortress.core.rbac
> with: import org.apache.directory.fortress.core.model
>
> 2. Change to use Apache Commons StringUtils (instead of fortress utility) to 
> check for null or empty Strings in code. 
> replace import org.apache.directory.fortress.core.util.attr.VUtil; with 
> import org.apache.commons.collections.CollectionUtils; 
> search and replace: VUtil.isNotNullOrEmpty, with: StringUtils.isNotNull
>
> 3. Change to use Apache Commons CollectionUtils (instead of fortress utility) 
> to check for null or empty Collections in code. 
> replace import org.apache.directory.fortress.core.util.attr.VUtil; with 
> import org.apache.commons.collections.CollectionUtils;
> search and replace: VUtil.isNotNullOrEmpty, with: CollectionUtils.isNotEmpty
>
> (note: 2 & 3 above only need to change if using the ‘VUtil.isNotNullOrEmpty' 
> apis inside your code.)
>
> 4. Use factories for Manager construction. Do not construct manually
> Don’t do this: AdminMgr adminMgr = new 
> org.apache.directory.fortress.core.impl.AdminMgrImpl();
> Do this: AdminMgr adminMgr = AdminMgrFactory.createInstance();
>
> B. Changes to Data (properties and permissions):
>
> 5. properties
> Change to ‘ftProps’ attribute in ou=Config node (cn=DEFAULT, ou=Config, 
> dc=example,dc=com):
> temporal.validator.dsd:org.apache.directory.fortress.core.impl.DSDChecker
>
> 6. ARBAC manager permissions. Change entrydn to the following:
> ftObjNm=org.apache.directory.fortress.core.impl.AdminMgrImpl, ou=AdminPerms, 
> ou=ARBAC, dc=example,dc=com
> ftObjNm=org.apache.directory.fortress.core.impl.AuditMgrImpl, ou=AdminPerms, 
> ou=ARBAC, dc=example,dc=com
> ftObjNm=org.apache.directory.fortress.core.impl.DelAdminMgrImpl, 
> ou=AdminPerms, ou=ARBAC, dc=example,dc=com
> ftObjNm=org.apache.directory.fortress.core.impl.DelReviewMgrImpl, 
> ou=AdminPerms, ou=ARBAC, dc=example,dc=com
> ftObjNm=org.apache.directory.fortress.core.impl.PwPolicyMgrImpl, 
> ou=AdminPerms, ou=ARBAC, dc=example,dc=com
> org.apache.directory.fortress.core.impl.ReviewMgrImpl

Shawn, go for it !

Just be sure to add a file (api-changes.txt, or something like that) in
the trunk for those who already use the current release.


Reply via email to