Merge "AAFcli.java -Declare "value" on a separate line"
authorJonathan Gathman <jonathan.gathman@att.com>
Wed, 6 Nov 2019 13:25:33 +0000 (13:25 +0000)
committerGerrit Code Review <gerrit@onap.org>
Wed, 6 Nov 2019 13:25:33 +0000 (13:25 +0000)
912 files changed:
INFO.yaml
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/Batch.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/BatchException.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/BatchPrincipal.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/CassBatch.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/ApprovalSet.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/DataView.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/Loader.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/Pending.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/Ticket.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/approvalsets/URApprovalSet.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/Approval.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/BatchDataView.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/CQLBatch.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/CQLBatchLoop.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/CacheChange.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/Creator.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/Cred.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/ExpireRange.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/Future.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/LastNotified.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/NS.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/NsAttrib.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/Role.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/UserRole.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/Visitor.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/helpers/X509.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/Analyze.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/ApprovedRpt.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/NotInOrg.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/Notify.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/PrepExtend.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/NotifyBody.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/NotifyCredBody.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/NotifyPendingApprBody.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/OneMonthNotifyCredBody.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/OneWeekNotifyCredBody.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/TwoMonthNotifyCredBody.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/reports/bodies/TwoWeeksNotifyCredBody.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/temp/DataMigrateDublin.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/update/Approvals.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/update/Extend.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/update/Remove.java
auth/auth-batch/src/main/java/org/onap/aaf/auth/batch/update/Upload.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/approvalsets/JU_ApprovalSetTest.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/approvalsets/JU_Pending.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/approvalsets/JU_URApprovalSet.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/JU_BatchDataViewTest.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/JU_CQLBatchLoopTest.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/JU_CQLBatchTest.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_Approval.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_CacheChange.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_Creator.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_Cred.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_ExpireRange.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_Future.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_NS.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_Role.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/helpers/test/JU_UserRole.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/test/JU_Batch.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/test/JU_BatchException.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/test/JU_BatchPrincipal.java
auth/auth-batch/src/test/java/org/onap/aaf/auth/batch/test/JU_CassBatch.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/AbsCassDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/Bytification.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/CIDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/Cacheable.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/Cached.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/CachedDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/CassAccess.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/CassDAOImpl.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/DAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/DAOException.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/DAO_RO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/Loader.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/Streamer.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/Touchable.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cached/CachedCertDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cached/CachedCredDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cached/CachedNSDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cached/CachedPermDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cached/CachedRoleDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cached/CachedUserRoleDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cached/FileGetter.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/ApprovalDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/ArtiDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/CacheInfoDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/CacheableData.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/CertDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/ConfigDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/CredDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/DelegateDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/FutureDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/HistoryDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/LocateDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/Namespace.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/NsDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/NsSplit.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/NsType.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/OAuthTokenDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/PermDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/RoleDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/Status.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/cass/UserRoleDAO.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/hl/CassExecutor.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/hl/Function.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/hl/PermLookup.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/dao/hl/Question.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLocator.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFLur.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectAAFUserPass.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectCertIdentity.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectLocatorCreator.java
auth/auth-cass/src/main/java/org/onap/aaf/auth/direct/DirectRegistrar.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/JU_Cached.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/JU_CachedDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/JU_CassAccess.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/JU_CassDAOImpl.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/JU_DAOException.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/aaf/test/AbsJUCass.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/aaf/test/JU_Bytification.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/aaf/test/JU_NsType.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cached/JU_CachedCertDAOTest.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cached/JU_CachedCredDAOTest.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cached/JU_CachedNSDAOTest.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cached/JU_CachedPermDAOTest.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cached/JU_CachedRoleDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cached/JU_CachedUserRoleDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_ApprovalDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_ArtiDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_CacheInfoDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_CertDAOTest.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_ConfigDAOTest.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_DelegateDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_FutureDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_HistoryDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_LocateDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_Namespace.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_NsDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_OAuthTokenDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_PermDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_RoleDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/cass/JU_UserRoleDAO.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/hl/JU_CassExecutor.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/hl/JU_Function.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/dao/hl/JU_PermLookup.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/direct/test/JU_DirectAAFLocator.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/direct/test/JU_DirectAAFLur.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/direct/test/JU_DirectAAFUserPass.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/direct/test/JU_DirectCertIdentity.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/direct/test/JU_DirectLocatorCreator.java
auth/auth-cass/src/test/java/org/onap/aaf/auth/direct/test/JU_DirectRegistrar.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/AAF_CM.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/LocalCAImpl.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/api/API_Artifact.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/api/API_Cert.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/ca/CA.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/ca/JscepCA.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/ca/LocalCA.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/ca/X509ChainWithIssuer.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/ca/X509andChain.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/cert/BCFactory.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/cert/CSRMeta.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/cert/RDN.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/data/CertDrop.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/data/CertRenew.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/data/CertReq.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/data/CertResp.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/facade/Facade.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/facade/Facade1_0.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/facade/FacadeFactory.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/facade/FacadeImpl.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/mapper/Mapper.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/mapper/Mapper1_0.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/mapper/Mapper2_0.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/service/CMService.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/service/Code.java
auth/auth-certman/src/main/java/org/onap/aaf/auth/cm/validation/CertmanValidator.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/JU_AAF_CM.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/api/JU_API_Artifact.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/api/JU_API_Cert.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/ca/JU_AppCA.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/ca/JU_X509ChainTest.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/ca/JU_X509ChainWithIssuerTest.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/cert/JU_BCFactory.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/data/JU_CertReqTest.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/data/JU_CertRespTest.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/facade/JU_FacadeImpl.java
auth/auth-certman/src/test/java/org/onap/aaf/auth/cm/test/CertmanTest.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/AAFcli.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/BaseCmd.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/Cmd.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/DeprecatedCMD.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/Help.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/MessageException.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/Param.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/Version.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/mgmt/Cache.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/mgmt/Clear.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/mgmt/Deny.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/mgmt/Log.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/mgmt/Mgmt.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/mgmt/SessClear.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/mgmt/Session.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/Admin.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/Attrib.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/Create.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/Delete.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/Describe.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/List.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListActivity.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListAdminResponsible.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListByName.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListChildren.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListNsKeysByAttrib.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListUsers.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListUsersContact.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListUsersInRole.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/ListUsersWithPerm.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/NS.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/ns/Owner.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Create.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Delete.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Describe.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Grant.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/List.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/ListActivity.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/ListByNS.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/ListByName.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/ListByRole.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/ListByUser.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Perm.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/perm/Rename.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/CreateDelete.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/Describe.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/List.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/ListActivity.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/ListByNS.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/ListByNameOnly.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/ListByPerm.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/ListByRole.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/ListByUser.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/Role.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/role/User.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/Cred.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/Delg.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/ID.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/List.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/ListActivity.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/ListApprovals.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/ListDelegates.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/ListForCreds.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/ListForPermission.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/ListForRoles.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/Role.java
auth/auth-cmd/src/main/java/org/onap/aaf/auth/cmd/user/User.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/HMangrStub.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/JU_AAFCli.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/JU_BaseCmd.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/JU_BasicAuth.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/JU_Cmd.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/JU_DeprecatedCMD.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/JU_Help.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/JU_Version.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/mgmt/JU_Clear.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/mgmt/JU_Deny.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/mgmt/JU_Log.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/mgmt/JU_SessClear.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_Admin.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_Attrib.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_Create.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_Delete.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_Describe.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_List.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListActivity.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListAdminResponsible.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListByName.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListChildren.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListNsKeysByAttrib.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListUsers.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListUsersContact.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListUsersInRole.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_ListUsersWithPerm.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_Owner.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/ns/JU_Responsible.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_Create.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_Delete.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_Describe.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_Grant.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_ListActivity.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_ListByNS.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_ListByName.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_ListByRole.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_ListByUser.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/perm/JU_Rename.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_CreateDelete.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_Describe.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_List.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_ListActivity.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_ListByNS.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_ListByNameOnly.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_ListByPerm.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_ListByRole.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_ListByUser.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/role/JU_User.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_Cred.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_Delg.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_ListActivity.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_ListApprovals.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_ListDelegates.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_ListForCreds.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_ListForPermission.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_ListForRoles.java
auth/auth-cmd/src/test/java/org/onap/aaf/auth/cmd/test/user/JU_Role.java
auth/auth-core/src/main/java/org/onap/aaf/auth/cache/Cache.java
auth/auth-core/src/main/java/org/onap/aaf/auth/common/Define.java
auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzEnv.java
auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzTrans.java
auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzTransFilter.java
auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzTransImpl.java
auth/auth-core/src/main/java/org/onap/aaf/auth/env/AuthzTransOnlyFilter.java
auth/auth-core/src/main/java/org/onap/aaf/auth/env/NullTrans.java
auth/auth-core/src/main/java/org/onap/aaf/auth/layer/DirectIntrospectImpl.java
auth/auth-core/src/main/java/org/onap/aaf/auth/layer/FacadeImpl.java
auth/auth-core/src/main/java/org/onap/aaf/auth/layer/Result.java
auth/auth-core/src/main/java/org/onap/aaf/auth/local/AbsData.java
auth/auth-core/src/main/java/org/onap/aaf/auth/local/DataFile.java
auth/auth-core/src/main/java/org/onap/aaf/auth/local/TextIndex.java
auth/auth-core/src/main/java/org/onap/aaf/auth/log4j/Log4JAccessAppender.java
auth/auth-core/src/main/java/org/onap/aaf/auth/org/EmailWarnings.java
auth/auth-core/src/main/java/org/onap/aaf/auth/org/Executor.java
auth/auth-core/src/main/java/org/onap/aaf/auth/org/FileMailer.java
auth/auth-core/src/main/java/org/onap/aaf/auth/org/Mailer.java
auth/auth-core/src/main/java/org/onap/aaf/auth/org/Organization.java
auth/auth-core/src/main/java/org/onap/aaf/auth/org/OrganizationException.java
auth/auth-core/src/main/java/org/onap/aaf/auth/org/OrganizationFactory.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Acceptor.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/CachingFileAccess.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/CodeSetter.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Content.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/HttpCode.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/HttpMethods.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Match.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Pair.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/RServlet.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Route.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/RouteReport.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Routes.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/TransFilter.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/TransOnlyFilter.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/TypedCode.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/Version.java
auth/auth-core/src/main/java/org/onap/aaf/auth/rserv/doc/ApiDoc.java
auth/auth-core/src/main/java/org/onap/aaf/auth/server/AbsService.java
auth/auth-core/src/main/java/org/onap/aaf/auth/server/AbsServiceStarter.java
auth/auth-core/src/main/java/org/onap/aaf/auth/server/JettyServiceStarter.java
auth/auth-core/src/main/java/org/onap/aaf/auth/server/Log4JLogIt.java
auth/auth-core/src/main/java/org/onap/aaf/auth/server/ServiceStarter.java
auth/auth-core/src/main/java/org/onap/aaf/auth/validation/Validator.java
auth/auth-core/src/test/java/org/onap/aaf/auth/common/test/JU_Define.java
auth/auth-core/src/test/java/org/onap/aaf/auth/env/test/JU_AuthzEnv.java
auth/auth-core/src/test/java/org/onap/aaf/auth/env/test/JU_AuthzTransFilter.java
auth/auth-core/src/test/java/org/onap/aaf/auth/env/test/JU_AuthzTransImpl.java
auth/auth-core/src/test/java/org/onap/aaf/auth/env/test/JU_NullTrans.java
auth/auth-core/src/test/java/org/onap/aaf/auth/local/test/JU_AbsData.java
auth/auth-core/src/test/java/org/onap/aaf/auth/local/test/JU_DataFile.java
auth/auth-core/src/test/java/org/onap/aaf/auth/local/test/JU_TextIndex.java
auth/auth-core/src/test/java/org/onap/aaf/auth/log4j/test/JU_Log4jAccessAppender.java
auth/auth-core/src/test/java/org/onap/aaf/auth/org/test/JU_Organization.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/CredCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/JU_RequestCheck.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/MultiCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/NSAttribCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/NSCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/PermCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/RoleCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/RolePermCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/RosettaCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/request/test/UserRoleCompare.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_BetterMatch.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_BetterMatch1.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_BetterRoute.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_Content.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_Content1.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_Pair.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_Route.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_RouteReport.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_Routes.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_TypedCode.java
auth/auth-core/src/test/java/org/onap/aaf/auth/rserv/test/JU_Version.java
auth/auth-core/src/test/java/org/onap/aaf/auth/server/test/JU_AbsService.java
auth/auth-core/src/test/java/org/onap/aaf/auth/server/test/JU_AbsServiceStarter.java
auth/auth-core/src/test/java/org/onap/aaf/auth/server/test/JU_JettyServiceStarter.java
auth/auth-core/src/test/java/org/onap/aaf/auth/util/test/JU_Mask.java
auth/auth-core/src/test/java/org/onap/aaf/auth/util/test/TestKill.java
auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrg.java
auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrgIdentity.java
auth/auth-deforg/src/main/java/org/onap/aaf/org/DefaultOrgWarnings.java
auth/auth-deforg/src/main/java/org/onap/aaf/org/Identities.java
auth/auth-deforg/src/test/java/org/onap/aaf/org/test/JU_DefaultOrg.java
auth/auth-deforg/src/test/java/org/onap/aaf/org/test/JU_DefaultOrgIdentity.java
auth/auth-deforg/src/test/java/org/onap/aaf/org/test/JU_DefaultOrgWarnings.java
auth/auth-deforg/src/test/java/org/onap/aaf/org/test/JU_Identities.java
auth/auth-deforg/src/test/java/org/onap/aaf/org/test/JU_Passwords.java
auth/auth-fs/src/main/java/org/onap/aaf/auth/fs/AAF_FS.java
auth/auth-fs/src/test/java/org/onap/aaf/auth/fs/test/JU_AAF_FS.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/AAF_GUI.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/BreadCrumbs.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/ContentCode.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/Controls.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/Display.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/Form.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/NamedCode.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/OrgLookupFilter.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/Page.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/SlotCode.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/Table.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/XFrameFilter.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/ApiDocs.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/ApiExample.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/ApprovalAction.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/ApprovalForm.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/CMArtiChangeAction.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/CMArtiChangeForm.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/CMArtifactShow.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/CredDetail.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/CredHistory.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/Home.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/LoginLanding.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/LoginLandingAction.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/NsDetail.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/NsHistory.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/NsInfoAction.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/NsInfoForm.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/NssShow.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PassChangeAction.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PassChangeForm.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PassDeleteAction.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PendingRequestsShow.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PermDetail.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PermGrantAction.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PermGrantForm.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PermHistory.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/PermsShow.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/RequestDetail.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/RoleDetail.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/RoleDetailAction.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/RoleHistory.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/RolesShow.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/UserRoleExtend.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/UserRoleRemove.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/pages/WebCommand.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/AbsCell.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/ButtonCell.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/CheckBoxCell.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/RadioCell.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/RefCell.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/TableData.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/TextAndRefCell.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/TextCell.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/TextInputCell.java
auth/auth-gui/src/main/java/org/onap/aaf/auth/gui/table/TextToolTipCell.java
auth/auth-gui/src/test/java/org/onap/aaf/auth/gui/JU_FormTest.java
auth/auth-gui/src/test/java/org/onap/aaf/auth/gui/JU_TableTest.java
auth/auth-gui/src/test/java/org/onap/aaf/auth/gui/table/JU_UICellTest.java
auth/auth-hello/src/main/java/org/onap/aaf/auth/hello/AAF_Hello.java
auth/auth-hello/src/main/java/org/onap/aaf/auth/hello/API_Hello.java
auth/auth-hello/src/test/java/org/onap/aaf/auth/hello/test/HelloTester.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/AAF_Locate.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/BasicAuthCode.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/LocateCode.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/api/API_AAFAccess.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/api/API_Api.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/api/API_Find.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/api/API_Proxy.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/facade/LocateFacade.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/facade/LocateFacadeFactory.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/facade/LocateFacadeImpl.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/facade/LocateFacade_1_1.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/mapper/Mapper.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/mapper/Mapper_1_1.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/service/LocateService.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/service/LocateServiceImpl.java
auth/auth-locate/src/main/java/org/onap/aaf/auth/locate/validation/LocateValidator.java
auth/auth-locate/src/test/java/org/onap/aaf/auth/locate/api/JU_API_AAFTest.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/AAF_OAuth.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/DirectOAuthTAF.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/OACode.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/OAuth2Filter.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/OAuth2FormHttpTafResp.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/api/API_Token.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/facade/DirectIntrospect.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/facade/DirectIntrospectImpl.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/facade/DirectOAFacadeImpl.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/facade/OAFacade.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/facade/OAFacade1_0.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/facade/OAFacadeFactory.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/facade/OAFacadeImpl.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/mapper/Mapper.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/mapper/Mapper1_0.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/mapper/MapperIntrospect.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/mapper/MapperIntrospect1_0.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/service/JSONPermLoader.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/service/JSONPermLoaderFactory.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/service/OAuthService.java
auth/auth-oauth/src/main/java/org/onap/aaf/auth/oauth/service/OCreds.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/JU_DirectOAuthTAF.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/JU_OACodeTest.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/JU_OAuth2FilterTest.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/JU_OAuth2FormHttpTafRespTest.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/facade/JU_DirectOAFacadeImplTest.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/facade/JU_OAFacadeFactory.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/mapper/JU_Mapper1_0Test.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/mapper/JU_MapperIntrospect1_0Test.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/service/JU_JSONPermLoaderFactoryTest.java
auth/auth-oauth/src/test/java/org/onap/aaf/auth/oauth/service/JU_OCredsTest.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/AAF_Service.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/AuthzCassServiceImpl.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/AuthzService.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/Code.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/MayChange.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_Api.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_Approval.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_Creds.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_Delegate.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_History.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_Mgmt.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_Multi.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_NS.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_Perms.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_Roles.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_User.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/api/API_UserRole.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/facade/AuthzFacade.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/facade/AuthzFacadeFactory.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/facade/AuthzFacadeImpl.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/facade/AuthzFacade_2_0.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/mapper/Mapper.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/mapper/Mapper_2_0.java
auth/auth-service/src/main/java/org/onap/aaf/auth/service/validation/ServiceValidator.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_Approval.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_Creds.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_Delegate.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_History.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_NS.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_Perms.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_Roles.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_User.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/api/test/JU_API_UserRole.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/facade/JU_AuthzFacadeImpl.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/mapper/JU_Mapper_2_0.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/test/JU_BaseServiceImpl.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/test/JU_ServiceImpl_createUserCred.java
auth/auth-service/src/test/java/org/onap/aaf/auth/service/validation/test/JU_ServiceValidator.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/AAFPermission.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/Defaults.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/PermEval.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/TestConnectivity.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/cert/AAFListedCertIdentity.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/client/ErrMessage.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/client/Examples.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/marshal/CertMarshal.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/marshal/CertsMarshal.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFAuthn.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFCon.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFConHttp.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFLocator.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFLurPerm.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFSingleLocator.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFTaf.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFTrustChecker.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AbsAAFLocator.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AbsAAFLur.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/Agent.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/ArtifactDir.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/CertException.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/Factory.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/PlaceArtifact.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/PlaceArtifactInFiles.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/PlaceArtifactInKeystore.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/PlaceArtifactOnStream.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/PlaceArtifactScripts.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/configure/PropHolder.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/AAFToken.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/AbsOTafLur.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/HRenewingTokenSS.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/OAuth2HttpTaf.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/OAuth2HttpTafResp.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/OAuth2Lur.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/OAuth2Principal.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/TimedToken.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/TokenClient.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/TokenClientFactory.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/TokenMgr.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/TokenPerm.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/TzClient.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/oauth/TzHClient.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/obasic/OBasicHttpTaf.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/olur/OLur.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/persist/Persist.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/persist/PersistFile.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/persist/Persistable.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/persist/Persisting.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/register/Registrant.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/register/Registrar.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/register/RegistrationCreator.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/register/RemoteRegistrant.java
cadi/aaf/src/main/java/org/onap/aaf/cadi/sso/AAFSSO.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/aaf/client/test/JU_ErrMessageTest.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/aaf/test/JU_PermEval.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/aaf/test/TestHClient.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/aaf/v2_0/JU_AAFAuthn.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/aaf/v2_0/JU_AAFSingleLocator.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/aaf/v2_0/test/JU_AAFLocator.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/aaf/v2_0/test/JU_AbsAAFLocator.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/cm/test/JU_ArtifactDir.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/cm/test/JU_CertException.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/cm/test/JU_PlaceArtifactInFiles.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/cm/test/JU_PlaceArtifactInKeystore.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/cm/test/JU_PlaceArtifactOnStream.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/oauth/test/JU_AAFToken.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/oauth/test/JU_OAuth2Lur.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/oauth/test/JU_OAuth2Principal.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/oauth/test/JU_OAuthTest.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/oauth/test/JU_TokenClientFactoryTest.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/oauth/test/JU_TokenPerm.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/oauth/test/JU_TzHClient.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/register/test/JU_RegistrationCreator.java
cadi/aaf/src/test/java/org/onap/aaf/cadi/sso/test/JU_AAFSSO.java
cadi/aaf/src/test/java/org/onap/aaf/client/sample/Sample.java
cadi/aaf/src/test/java/org/onap/aaf/content/JU_Content.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/AbsAuthentication.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/AbsTransferSS.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/BasicAuth.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/EClient.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/Future.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/Holder.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/Rcli.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/Result.java
cadi/client/src/main/java/org/onap/aaf/cadi/client/Retryable.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HAuthorizationHeader.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HBasicAuthSS.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HClient.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HMangr.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HNoAuthSS.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HRcli.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HSecurityInfoInit.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HTokenSS.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HTransferSS.java
cadi/client/src/main/java/org/onap/aaf/cadi/http/HX509SS.java
cadi/client/src/main/java/org/onap/aaf/cadi/locator/DNSLocator.java
cadi/client/src/main/java/org/onap/aaf/cadi/locator/HClientHotPeerLocator.java
cadi/client/src/main/java/org/onap/aaf/cadi/locator/PropertyLocator.java
cadi/client/src/main/java/org/onap/aaf/cadi/locator/SingleEndpointLocator.java
cadi/client/src/main/java/org/onap/aaf/cadi/locator/SizedLocator.java
cadi/client/src/main/java/org/onap/aaf/cadi/routing/GreatCircle.java
cadi/client/src/test/java/org/onap/aaf/cadi/client/test/JU_AbsAuthentication.java
cadi/client/src/test/java/org/onap/aaf/cadi/client/test/JU_AbsTransferSS.java
cadi/client/src/test/java/org/onap/aaf/cadi/client/test/JU_Future.java
cadi/client/src/test/java/org/onap/aaf/cadi/client/test/JU_Holder.java
cadi/client/src/test/java/org/onap/aaf/cadi/client/test/JU_Rcli.java
cadi/client/src/test/java/org/onap/aaf/cadi/client/test/JU_Result.java
cadi/client/src/test/java/org/onap/aaf/cadi/client/test/JU_Retryable.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HAuthorizationHeader.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HBasicAuthSS.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HClient.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HMangr.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HNoAuthSS.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HRcli.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HTokenSS.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HTransferSS.java
cadi/client/src/test/java/org/onap/aaf/cadi/http/test/JU_HX509SS.java
cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_DNSLocator.java
cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_HClientHotPeerLocator.java
cadi/client/src/test/java/org/onap/aaf/cadi/locator/test/JU_PropertyLocator.java
cadi/client/src/test/java/org/onap/aaf/cadi/routing/test/JU_GreatCircle.java
cadi/client/src/test/java/org/onap/aaf/client/test/JU_ResultTest.java
cadi/core/src/main/java/org/onap/aaf/cadi/AES.java
cadi/core/src/main/java/org/onap/aaf/cadi/AbsUserCache.java
cadi/core/src/main/java/org/onap/aaf/cadi/Access.java
cadi/core/src/main/java/org/onap/aaf/cadi/BasicCred.java
cadi/core/src/main/java/org/onap/aaf/cadi/BufferedServletInputStream.java
cadi/core/src/main/java/org/onap/aaf/cadi/CachedPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/CachingLur.java
cadi/core/src/main/java/org/onap/aaf/cadi/CadiException.java
cadi/core/src/main/java/org/onap/aaf/cadi/CadiWrap.java
cadi/core/src/main/java/org/onap/aaf/cadi/Capacitor.java
cadi/core/src/main/java/org/onap/aaf/cadi/CmdLine.java
cadi/core/src/main/java/org/onap/aaf/cadi/Connector.java
cadi/core/src/main/java/org/onap/aaf/cadi/CredVal.java
cadi/core/src/main/java/org/onap/aaf/cadi/CredValDomain.java
cadi/core/src/main/java/org/onap/aaf/cadi/GetCred.java
cadi/core/src/main/java/org/onap/aaf/cadi/Hash.java
cadi/core/src/main/java/org/onap/aaf/cadi/Locator.java
cadi/core/src/main/java/org/onap/aaf/cadi/LocatorException.java
cadi/core/src/main/java/org/onap/aaf/cadi/Lur.java
cadi/core/src/main/java/org/onap/aaf/cadi/Permission.java
cadi/core/src/main/java/org/onap/aaf/cadi/PropAccess.java
cadi/core/src/main/java/org/onap/aaf/cadi/Revalidator.java
cadi/core/src/main/java/org/onap/aaf/cadi/SecuritySetter.java
cadi/core/src/main/java/org/onap/aaf/cadi/ServletContextAccess.java
cadi/core/src/main/java/org/onap/aaf/cadi/Symm.java
cadi/core/src/main/java/org/onap/aaf/cadi/Taf.java
cadi/core/src/main/java/org/onap/aaf/cadi/Transmutate.java
cadi/core/src/main/java/org/onap/aaf/cadi/TrustChecker.java
cadi/core/src/main/java/org/onap/aaf/cadi/User.java
cadi/core/src/main/java/org/onap/aaf/cadi/UserChain.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/Config.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/Get.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/GetAccess.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/MultiGet.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/RegistrationPropHolder.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/SecurityInfo.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/SecurityInfoC.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/SecurityInfoInit.java
cadi/core/src/main/java/org/onap/aaf/cadi/config/UsersDump.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/AUTHZ.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/AUTHZServlet.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/AccessGetter.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/CadiApiEnforcementFilter.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/CadiFilter.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/CadiHTTPManip.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/FCGet.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/MapBathConverter.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/MapPermConverter.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/PermConverter.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/RolesAllowed.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/ServletImpl.java
cadi/core/src/main/java/org/onap/aaf/cadi/filter/SideChain.java
cadi/core/src/main/java/org/onap/aaf/cadi/lur/ConfigPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/lur/EpiLur.java
cadi/core/src/main/java/org/onap/aaf/cadi/lur/LocalLur.java
cadi/core/src/main/java/org/onap/aaf/cadi/lur/LocalPermission.java
cadi/core/src/main/java/org/onap/aaf/cadi/lur/NullLur.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/BasicPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/BearerPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/CachedBasicPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/Kind.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/OAuth2FormPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/TaggedPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/TrustPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/UnAuthPrincipal.java
cadi/core/src/main/java/org/onap/aaf/cadi/principal/X509Principal.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/AbsTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/EpiTaf.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/HttpEpiTaf.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/HttpTaf.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/LoginPageTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/NullTaf.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/NullTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/PuntTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/Redirectable.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/TafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/TrustNotTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/TrustTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/basic/BasicHttpTaf.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/basic/BasicHttpTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/cert/CertIdentity.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/cert/X509HttpTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/cert/X509Taf.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/dos/DenialOfServiceTaf.java
cadi/core/src/main/java/org/onap/aaf/cadi/taf/dos/DenialOfServiceTafResp.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/CSV.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/Chmod.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/FQI.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/FixURIinfo.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/JsonOutputStream.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/MaskFormatException.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/MyConsole.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/NetMask.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/Pool.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/Split.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/SubStandardConsole.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/TheConsole.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/Timing.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/UserChainManip.java
cadi/core/src/main/java/org/onap/aaf/cadi/util/Vars.java
cadi/core/src/main/java/org/onap/aaf/cadi/wsse/Action.java
cadi/core/src/main/java/org/onap/aaf/cadi/wsse/Match.java
cadi/core/src/main/java/org/onap/aaf/cadi/wsse/WSSEParser.java
cadi/core/src/main/java/org/onap/aaf/cadi/wsse/XEvent.java
cadi/core/src/main/java/org/onap/aaf/cadi/wsse/XReader.java
cadi/core/src/test/java/org/onap/aaf/cadi/config/test/JU_Get.java
cadi/core/src/test/java/org/onap/aaf/cadi/config/test/JU_MapBathConverter.java
cadi/core/src/test/java/org/onap/aaf/cadi/config/test/JU_RegistrationPropHolder.java
cadi/core/src/test/java/org/onap/aaf/cadi/config/test/JU_SecurityInfo.java
cadi/core/src/test/java/org/onap/aaf/cadi/config/test/JU_SecurityInfoC.java
cadi/core/src/test/java/org/onap/aaf/cadi/filter/test/JU_PathFilter.java
cadi/core/src/test/java/org/onap/aaf/cadi/lur/test/JU_ConfigPrincipal.java
cadi/core/src/test/java/org/onap/aaf/cadi/lur/test/JU_LocalLur.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_BasicPrincipal.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_CachedBasicPrincipal.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_Kind.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_OAuth2FormPrincipal.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_StringTagLookup.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_TaggedPrincipal.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_TrustPrincipal.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_UnAuthPrincipal.java
cadi/core/src/test/java/org/onap/aaf/cadi/principal/test/JU_X509Principal.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/basic/test/JU_BasicHttpTafResp.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/dos/test/JU_DenialOfServiceTaf.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/dos/test/JU_DenialOfServiceTafResp.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/test/JU_AbsTafResp.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/test/JU_EpiTaf.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/test/JU_NullTaf.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/test/JU_PuntTafResp.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/test/JU_TrustNotTafResp.java
cadi/core/src/test/java/org/onap/aaf/cadi/taf/test/JU_TrustTafResp.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_AES.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_BufferedCadiWrap.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_CadiException.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_CadiWrap.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_Capacitor.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_CmdLine.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_Hash.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_LocatorException.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_PropAccess.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_ServletContextAccess.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_Symm.java
cadi/core/src/test/java/org/onap/aaf/cadi/test/JU_User.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_CSV.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_Chmod.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_FQI.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_JsonOutputStream.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_MaskFormatException.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_NetMask.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_Pool.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_Split.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_SubStandardConsole.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_TheConsole.java
cadi/core/src/test/java/org/onap/aaf/cadi/util/test/JU_Vars.java
cadi/core/src/test/java/org/onap/aaf/cadi/wsse/test/JU_WSSEParser.java
cadi/core/src/test/java/org/onap/aaf/cadi/wsse/test/JU_XReader.java
cadi/oauth-enduser/src/main/java/org/onap/aaf/cadi/enduser/ClientFactory.java
cadi/oauth-enduser/src/main/java/org/onap/aaf/cadi/enduser/RESTException.java
cadi/oauth-enduser/src/main/java/org/onap/aaf/cadi/enduser/SimpleRESTClient.java
cadi/oauth-enduser/src/test/java/org/onap/aaf/cadi/enduser/test/OAuthExample.java
cadi/oauth-enduser/src/test/java/org/onap/aaf/cadi/enduser/test/OnapClientExample.java
cadi/oauth-enduser/src/test/java/org/onap/aaf/cadi/enduser/test/SimpleRestClientExample.java
cadi/servlet-sample/src/main/java/org/onap/aaf/sample/cadi/MyServlet.java
cadi/servlet-sample/src/main/java/org/onap/aaf/sample/cadi/jetty/Config.java
cadi/servlet-sample/src/main/java/org/onap/aaf/sample/cadi/jetty/JettyServletServer.java
cadi/servlet-sample/src/main/java/org/onap/aaf/sample/cadi/jetty/JettyStandalone.java
cadi/servlet-sample/src/main/java/org/onap/aaf/sample/cadi/jetty/MiniJASPIWrap.java
docs/sections/release-notes.rst
misc/env/src/main/java/org/onap/aaf/misc/env/util/Chrono.java
misc/env/src/test/java/org/onap/aaf/misc/env/Api.java
misc/env/src/test/java/org/onap/aaf/misc/env/JU_BaseDataFactory.java
misc/env/src/test/java/org/onap/aaf/misc/env/JU_JavaUtilLogTarget.java
misc/env/src/test/java/org/onap/aaf/misc/env/JU_NullLifeCycle.java
misc/env/src/test/java/org/onap/aaf/misc/env/impl/JU_AbsTrans.java
misc/env/src/test/java/org/onap/aaf/misc/env/impl/JU_AbsTransJaxb.java
misc/env/src/test/java/org/onap/aaf/misc/env/impl/JU_Log4JLogTargetTest.java
misc/env/src/test/java/org/onap/aaf/misc/env/jaxb/JU_JAXBDF.java
misc/env/src/test/java/org/onap/aaf/misc/env/jaxb/JU_JAXBObjectifierTest.java
misc/env/src/test/java/org/onap/aaf/misc/env/jaxb/JU_JAXBStringifierTest.java
misc/env/src/test/java/org/onap/aaf/misc/env/jaxb/JU_StoreImplTest.java
misc/log4j/src/test/java/org/onap/aaf/misc/env/log4j/JU_LogFileNamerTest.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/InJson.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/InXML.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/JaxEval.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/JaxInfo.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/JaxSet.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/Ladder.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/Marshal.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/Nulls.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/Out.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/OutJax.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/OutJson.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/OutRaw.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/OutXML.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/Parse.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/ParseException.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/Parsed.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/Prop.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/Saved.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/XmlEscape.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/env/RosettaDF.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/env/RosettaData.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/env/RosettaEnv.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/DataWriter.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/DocMarshal.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/FieldArray.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/FieldBlob.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/FieldDate.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/FieldDateTime.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/FieldHexBinary.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/FieldMarshal.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/FieldNumeric.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/FieldString.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/ListIterator.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/ObjArray.java
misc/rosetta/src/main/java/org/onap/aaf/misc/rosetta/marshal/ObjMarshal.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/JU_ParseException.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/env/Api.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/env/JU_RosettaData.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/env/JU_RosettaEnv.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/marshal/JU_FieldBlob.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_FromJSON.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_FromXML.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_JSON.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_Ladder.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_Nulls.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_RosettaDF.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_Saved.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_Stream2Obj.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_Struct.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/JU_Types.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/OutDump.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/Report.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/obj/MultiMarshal.java
misc/rosetta/src/test/java/org/onap/aaf/misc/rosetta/test/obj/SingleMarshal.java

index 506303b..e44b648 100644 (file)
--- a/INFO.yaml
+++ b/INFO.yaml
@@ -28,12 +28,7 @@ meetings:
       repeats: 'weekly'
       time: '14:00 UTC'
 repositories:
-    - 'aaf-authz'
-    - 'aaf/cadi'
-    - 'aaf/luaplugin'
-    - 'aaf/oom'
-    - 'aaf/sms'
-    - 'aaf/sshsm'
+    - 'aaf/authz'
 committers:
     - <<: *onap_aaf_ptl
     - name: 'Kiran Kamineni'
@@ -46,15 +41,5 @@ committers:
       company: 'ATT'
       id: 'sg481n'
       timezone: 'America/Dallas'
-    - name: 'Girish Havaldar'
-      email: 'hg0071052@techmahindra.com'
-      company: 'Techmahindra'
-      id: 'giri'
-      timezone: 'India/Bangalore'
-    - name: 'Huabing Zhao'
-      email: 'zhaohuabing@gmail.com'
-      company: 'ZTE'
-      id: 'Huabing_Zhao'
-      timezone: 'China/Chengdu'
 tsc:
     approval: 'https://lists.onap.org/pipermail/onap-tsc'
index f361e75..d2695a3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -73,12 +73,12 @@ public abstract class Batch {
 
     protected static final String STARS = "*****";
 
-    protected static Cluster cluster; 
+    protected static Cluster cluster;
     protected static AuthzEnv env;
     protected static Session session;
     protected static Set<String> specialNames;
     protected static List<String> specialDomains;
-    protected static boolean dryRun; 
+    protected static boolean dryRun;
     protected static String batchEnv;
 
     private static File logdir;
@@ -88,12 +88,12 @@ public abstract class Batch {
     protected static final String MAX_EMAILS="MAX_EMAILS";
     protected static final String VERSION="VERSION";
     public static final String GUI_URL="GUI_URL";
-    
+
     protected final Organization org;
     protected String version;
     protected static final Date now = new Date();
     protected static final Date never = new Date(0);
-    
+
     protected Batch(AuthzEnv env) throws APIException, IOException, OrganizationException {
         if (batchEnv != null) {
             env.info().log("Redirecting to ",batchEnv,"environment");
@@ -149,22 +149,22 @@ public abstract class Batch {
                 }
             }
         }
-        
+
         version = env.getProperty(VERSION,Config.AAF_DEFAULT_API_VERSION);
     }
 
     protected abstract void run(AuthzTrans trans);
     protected void _close(AuthzTrans trans) {}
-    
+
     public String[] args() {
         return env.get(ssargs);
     }
-    
+
     public boolean isDryRun()
     {
         return dryRun;
     }
-    
+
     public boolean isSpecial(String user) {
         if(user==null) {
             return false;
@@ -230,7 +230,7 @@ public abstract class Batch {
 
         return (organization);
     }
-    
+
     public static Row executeDeleteQuery(Statement stmt) {
         Row row = null;
         if (!dryRun) {
@@ -240,7 +240,7 @@ public abstract class Batch {
         return (row);
 
     }
-        
+
     public static int acquireRunLock(String className) {
         Boolean testEnv = true;
         String envStr = env.getProperty("AFT_ENVIRONMENT");
@@ -264,8 +264,7 @@ public abstract class Batch {
         try {
             hostname = InetAddress.getLocalHost().getHostName();
         } catch (UnknownHostException e) {
-            e.printStackTrace();
-            env.warn().log("Unable to get hostname");
+            env.warn().log("Unable to get hostname : "+e.getMessage());
             return (0);
         }
 
@@ -320,7 +319,7 @@ public abstract class Batch {
         }
         return (1);
     }
-    
+
     private static void deleteLock( String className) {
         Row row = session.execute( String.format( "DELETE FROM authz.run_lock WHERE class = '%s' IF EXISTS", className ) ).one();
         if (! row.getBool("[applied]")) {
@@ -336,7 +335,7 @@ public abstract class Batch {
             }
         }
     }
-    
+
     protected static File logDir() {
         if(logdir == null) {
             String ld = env.getProperty(LOG_DIR);
@@ -351,7 +350,7 @@ public abstract class Batch {
             if(!logdir.exists()) {
                 logdir.mkdirs();
             }
-        } 
+        }
         return logdir;
     }
     protected int count(String str, char c) {
@@ -386,13 +385,13 @@ public abstract class Batch {
             sbos.getBuffer().append(s);
             sbos.getBuffer().append(' ');
         }
-        
+
         InputStream is = null;
         String filename;
         String propLoc;
         try {
             Define.set(access);
-            
+
             if(access.getProperty(Config.CADI_PROP_FILES)==null) {
                 File f = new File("authBatch.props");
                 try {
@@ -424,7 +423,7 @@ public abstract class Batch {
             }
 
             env = new AuthzEnv(access);
-            
+
             transferVMProps(env, CASS_ENV, "DRY_RUN", "NS", "Organization");
 
             // Be able to change Environments
@@ -446,7 +445,7 @@ public abstract class Batch {
 
                 Batch batch = null;
                 AuthzTrans trans = env.newTrans();
-    
+
                 TimeTaken tt = trans.start("Total Run", Env.SUB);
                 try {
                     int len = args.length;
@@ -459,23 +458,23 @@ public abstract class Batch {
                         if (len > 0) {
                             System.arraycopy(args, 1, nargs, 0, len);
                         }
-    
+
                         env.put(ssargs = env.staticSlot("ARGS"), nargs);
-    
+
                         /*
                          * Add New Batch Programs (inherit from Batch) here
                          */
-    
+
                         // Might be a Report, Update or Temp Batch
                         Class<?> cls = null;
                         String classifier = "";
-    
+
                         String[] pkgs = new String[] {
                                 "org.onap.aaf.auth.batch.update",
                                 "org.onap.aaf.auth.batch.reports",
                                 "org.onap.aaf.auth.batch.temp"
                                 };
-                                
+
                         String ebp = env.getProperty("EXTRA_BATCH_PKGS");
                         if(ebp!=null) {
                             String[] ebps = Split.splitTrim(':', ebp);
@@ -484,12 +483,12 @@ public abstract class Batch {
                             System.arraycopy(ebps,0,temp,pkgs.length,ebps.length);
                             pkgs = temp;
                         }
-                        
+
                         for(String p : pkgs) {
                             try {
                                 cls = ClassLoader.getSystemClassLoader().loadClass(p + '.' + toolName);
                                 int lastDot = p.lastIndexOf('.');
-                                if(p.length()>0 || p.length()!=lastDot) { 
+                                if(p.length()>0 || p.length()!=lastDot) {
                                     StringBuilder sb = new StringBuilder();
                                     sb.append(Character.toUpperCase(p.charAt(++lastDot)));
                                     while(++lastDot<p.length()) {
@@ -508,15 +507,15 @@ public abstract class Batch {
                             batch = (Batch) cnst.newInstance(trans);
                             env.info().log("Begin", classifier, toolName);
                         }
-                    
-    
+
+
                         if (batch == null) {
                             trans.error().log("No Batch named", toolName, "found");
                         }
                         /*
                          * End New Batch Programs (inherit from Batch) here
                          */
-    
+
                     }
                     if (batch != null) {
                         try {
@@ -545,7 +544,7 @@ public abstract class Batch {
             if(cluster!=null && !cluster.isClosed()) {
                 cluster.close();
             }
-            e.printStackTrace(System.err);
+            env.warn().log(System.err);
         }
     }
 
index dbb2dc3..38e3c2f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,7 +24,7 @@ package org.onap.aaf.auth.batch;
 public class BatchException extends Exception {
 
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = -3877245367723491192L;
 
index 0bc58ad..510fc2b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,7 +24,7 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
 
 public class BatchPrincipal extends TaggedPrincipal {
     private final String name;
-    
+
     public BatchPrincipal(final String name) {
         this.name = "batch:"+name;
     }
index 1fc16e4..9606242 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,7 +39,7 @@ public abstract class CassBatch extends Batch {
         super(trans.env());
         // Flow all Env Logs to Log4j
         Log4JLogTarget.setLog4JEnv(log4JName, env);
-        
+
         TimeTaken tt = trans.start("Connect to Cluster", Env.REMOTE);
         try {
             session = cluster.connect();
@@ -75,7 +75,7 @@ public abstract class CassBatch extends Batch {
                 }
                 throw e;
             }
-        } 
+        }
         return null;
     }
 
index e8961f1..f7bf324 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ public class ApprovalSet {
     private DataView dataview;
     protected FutureDAO.Data fdd;
     protected List<ApprovalDAO.Data> ladd;
-    
+
     public ApprovalSet(final GregorianCalendar start, final String target, final DataView dv) {
         dataview = dv;
         fdd = new FutureDAO.Data();
@@ -46,7 +46,7 @@ public class ApprovalSet {
         fdd.start = start.getTime();
         ladd = new ArrayList<>();
     }
-    
+
     protected void setConstruct(final ByteBuffer bytes) {
         fdd.construct = bytes;
     }
@@ -54,11 +54,11 @@ public class ApprovalSet {
     protected void setMemo(final String memo) {
         fdd.memo = memo;
     }
-    
+
     protected void setExpires(final GregorianCalendar expires) {
         fdd.expires = expires.getTime();
     }
-    
+
     public Result<Void> write(AuthzTrans trans) {
         StringBuilder errs = null;
         if(ladd == null || ladd.isEmpty()) {
@@ -89,7 +89,7 @@ public class ApprovalSet {
     public boolean hasApprovals() {
         return !ladd.isEmpty();
     }
-    
+
     public Set<String> approvers() {
         Set<String> rv = new HashSet<>();
         for(ApprovalDAO.Data app : ladd) {
index c197f7f..018f949 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,7 @@ import org.onap.aaf.auth.layer.Result;
 
 /**
  * I have become convinced that Data for Apps is modeled by abstract access methods against multiple data
- * sources.  With the insistence of JUnits, it becomes much more paramount to create a model which can 
+ * sources.  With the insistence of JUnits, it becomes much more paramount to create a model which can
  *   1) be easily loaded from Disk "Test Data" without resorting to complex "mokito" schemes
  *   2) tested in Memory
  *   3) combined for REAL time by running Cached Memory
@@ -42,14 +42,14 @@ import org.onap.aaf.auth.layer.Result;
  *      c) JSON
  *      d) XML
  *   5) persisted Globally through a store like Cassandra
- *   
+ *
  * But in the end, it looks like:
  *   1) Data Structures
- *   2) Find the Data Structures by various means, accounting for 
+ *   2) Find the Data Structures by various means, accounting for
  *       a) Multiple Responses
  *      b) Errors from the deepest level, made available through the call stack
- *   3) 
- *     
+ *   3)
+ *
  * @author jonathan.gathman
  *
  */
@@ -63,11 +63,11 @@ public interface DataView {
     // Inserts
     public Result<ApprovalDAO.Data> insert(final AuthzTrans trans, final ApprovalDAO.Data add);
     public Result<FutureDAO.Data> insert(final AuthzTrans trans, final FutureDAO.Data add);
-    
+
     // Deletes
     public Result<ApprovalDAO.Data> delete(final AuthzTrans trans, final ApprovalDAO.Data add);
     public Result<FutureDAO.Data> delete(final AuthzTrans trans, final FutureDAO.Data add);
-    
+
     // Clear any buffers
     public void flush();
 }
index d91c42c..654c2bb 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
index 9a66698..04083d9 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -31,11 +31,11 @@ import org.onap.aaf.misc.env.util.Chrono;
 
 public class Pending {
     public static final String REMIND = "remind";
-    
+
     int qty;
     boolean hasNew;
     Date earliest;
-    
+
     /**
      * Use this constructor to indicate when last Notified
      * @param lastNotified
@@ -74,32 +74,32 @@ public class Pending {
     public void inc() {
         ++qty;
     }
-    
+
     public void inc(Pending value) {
-        qty+=value.qty;
-        if(earliest==null) {
+        qty += value.qty;
+        if(earliest == null) {
             earliest = value.earliest;
-        } else if(value.earliest!=null && value.earliest.before(earliest)) {
+        } else if(value.earliest != null && value.earliest.before(earliest)) {
             earliest = value.earliest;
         }
     }
 
     public void earliest(Date lastnotified) {
-        if(lastnotified==null) {
+        if(lastnotified == null) {
             hasNew=true;
-        } else if (earliest==null || lastnotified.before(earliest)) {
+        } else if (earliest == null || lastnotified.before(earliest)) {
             earliest = lastnotified;
         }
     }
-    
+
     public int qty() {
         return qty;
     }
-    
+
     public Date earliest() {
         return earliest;
     }
-    
+
     public boolean newApprovals() {
         return hasNew;
     }
index 1884262..0b8006c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,7 +29,7 @@ import org.onap.aaf.auth.batch.helpers.Future;
 public class Ticket {
     public final Future f;
     public final Set<Approval> approvals;
-    
+
     public Ticket(Future future) {
         this.f = future;
         approvals = new HashSet<>();
index da13e84..6b9e5e0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -57,9 +57,9 @@ public class URApprovalSet extends ApprovalSet {
             expires.setTime(urdd.expires);
         }
         setExpires(expires);
-        setTargetKey(urdd.user+'|'+urdd.role);
+        setTargetKey(urdd.user + '|' + urdd.role);
         setTargetDate(urdd.expires);
-        
+
         Result<RoleDAO.Data> r = dv.roleByName(trans, urdd.role);
         if(r.notOKorIsEmpty()) {
             throw new CadiException(r.errorString());
@@ -81,10 +81,10 @@ public class URApprovalSet extends ApprovalSet {
         if(found==null) {
             throw new CadiException(String.format("User '%s' in Role '%s' does not exist", urdd.user,urdd.role));
         }
-        
+
         // Primarily, Owners are responsible, unless it's owned by self
         boolean isOwner = false;
-        Result<List<UserRoleDAO.Data>> owners = dv.ursByRole(trans, urdd.ns+".owner");
+        Result<List<UserRoleDAO.Data>> owners = dv.ursByRole(trans, urdd.ns + ".owner");
         if(owners.isOK()) {
             for(UserRoleDAO.Data owner : owners.value) {
                 if(urdd.user.equals(owner.user)) {
@@ -114,7 +114,7 @@ public class URApprovalSet extends ApprovalSet {
             }
         }
     }
-    
+
     private void setTargetDate(Date expires) {
         fdd.target_date = expires;
     }
index a902962..470cfb1 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -55,7 +55,7 @@ public class Approval implements CacheChange.Data  {
     public static TreeMap<UUID,List<Approval>> byTicket = new TreeMap<>();
     public static List<Approval> list = new LinkedList<>();
     private static final CacheChange<Approval> cache = new CacheChange<>();
-    
+
     public final ApprovalDAO.Data add;
     private String role;
 
@@ -109,8 +109,8 @@ public class Approval implements CacheChange.Data  {
             }
         }
     };
-    
-    public Approval(UUID id, UUID ticket, String approver,// Date last_notified, 
+
+    public Approval(UUID id, UUID ticket, String approver,// Date last_notified,
             String user, String memo, String operation, String status, String type, long updated) {
         add = new ApprovalDAO.Data();
         add.id = id;
@@ -124,7 +124,7 @@ public class Approval implements CacheChange.Data  {
         add.updated = new Date(updated);
         role = roleFromMemo(memo);
     }
-    
+
     public static String roleFromMemo(String memo) {
         if (memo==null) {
             return null;
@@ -156,31 +156,31 @@ public class Approval implements CacheChange.Data  {
     public static int load(Trans trans, Session session, Creator<Approval> creator, Visitor<Approval> visitor) {
         int count = 0;
         try {
-            count+=call(trans,session,creator.query(null), creator, visitor);
+            count += call(trans,session,creator.query(null), creator, visitor);
         } finally {
             trans.info().log("Found",count,"Approval Records");
         }
         return count;
     }
-    
+
     public static int load(Trans trans, Session session, Creator<Approval> creator ) {
         int count = 0;
         try {
-            count+=call(trans,session,creator.query(null), creator, FullLoad);
+            count += call(trans,session,creator.query(null), creator, FullLoad);
         } finally {
             trans.info().log("Found",count,"Approval Records");
         }
         return count;
     }
-    
+
     public static int loadUsers(Trans trans, Session session, Set<String> users, Visitor<Approval> visitor) {
         int total = 0;
         for(String user : users) {
-            total+=call(trans,session,String.format("%s WHERE user='%s';",v2_0_17.select(), user),v2_0_17,visitor);
+            total += call(trans,session,String.format("%s WHERE user='%s';",v2_0_17.select(), user),v2_0_17,visitor);
         }
         return total;
     }
-    
+
     public static void row(CSV.RowSetter crs, Approval app) {
         crs.row("approval",app.add.id,app.add.ticket,app.add.user,app.role,app.add.memo);
     }
@@ -201,14 +201,14 @@ public class Approval implements CacheChange.Data  {
             tt.done();
         }
     }
-    
+
     @Override
     public void expunge() {
         List<Approval> la = byApprover.get(getApprover());
         if (la!=null) {
             la.remove(this);
         }
-        
+
         la = byUser.get(getUser());
         if (la!=null) {
             la.remove(this);
@@ -288,11 +288,11 @@ public class Approval implements CacheChange.Data  {
         add.ticket=null;
         add.status="lapsed";
     }
-    
+
     public String getRole() {
         return role;
     }
-    
+
     public String toString() {
         return getUser() + ' ' + getMemo();
     }
@@ -310,12 +310,12 @@ public class Approval implements CacheChange.Data  {
             }
         }
     }
-    
+
 
     public static void resetLocalData() {
         cache.resetLocalData();
     }
-    
+
     public static int sizeForDeletion() {
         return cache.cacheSize();
     }
index 9906f49..156cb09 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -57,7 +57,7 @@ public class BatchDataView implements DataView {
     public Session getSession(AuthzTrans trans){
         return session;
     }
-    
+
     public Result<NsDAO.Data> ns(AuthzTrans trans, String id) {
         NS n;
         TimeTaken tt = trans.start("Get NS by ID %s", Trans.SUB, id);
@@ -66,14 +66,14 @@ public class BatchDataView implements DataView {
         } finally {
             tt.done();
         }
-        
+
         if(n==null || n.ndd==null) {
             return Result.err(Result.ERR_Backend,"Namespace '%s' does not exist", id);
         }
         return Result.ok(n.ndd);
     }
 
-    
+
     @Override
     public Result<RoleDAO.Data> roleByName(AuthzTrans trans, String name) {
         Role r = Role.byName.get(name);
@@ -116,22 +116,22 @@ public class BatchDataView implements DataView {
         StringBuilder sb = cqlBatch.inc();
         sb.append("DELETE from authz.future WHERE id = ");
         sb.append(fdd.id.toString());
-        return Result.ok(fdd);        
+        return Result.ok(fdd);
     }
-    
+
     @Override
     public Result<ApprovalDAO.Data> delete(AuthzTrans trans, ApprovalDAO.Data add) {
         StringBuilder sb = cqlBatch.inc();
         sb.append("DELETE from authz.approval WHERE id = ");
         sb.append(add.id.toString());
-        return Result.ok(add);        
+        return Result.ok(add);
     }
 
 
     @Override
     public Result<ApprovalDAO.Data> insert(AuthzTrans trans, ApprovalDAO.Data add) {
         StringBuilder sb = cqlBatch.inc();
-        sb.append("INSERT INTO authz.approval (id,approver,memo,operation,status,ticket,type,user) VALUES ("); 
+        sb.append("INSERT INTO authz.approval (id,approver,memo,operation,status,ticket,type,user) VALUES (");
         sb.append(add.id.toString());
         sb.append(COMMA_QUOTE);
         sb.append(add.approver);
@@ -154,7 +154,7 @@ public class BatchDataView implements DataView {
     @Override
     public Result<FutureDAO.Data> insert(AuthzTrans trans, FutureDAO.Data fdd) {
         StringBuilder sb = cqlBatch.inc();
-        sb.append("INSERT INTO authz.future (id,construct,expires,memo,start,target,target_key,target_date) VALUES ("); 
+        sb.append("INSERT INTO authz.future (id,construct,expires,memo,start,target,target_key,target_date) VALUES (");
         sb.append(fdd.id.toString());
         sb.append(',');
         fdd.construct.hasArray();
@@ -178,7 +178,7 @@ public class BatchDataView implements DataView {
         sb.append(QUOTE_PAREN_SEMI);
         return Result.ok(fdd);
     }
-    
+
     @Override
     public void flush() {
         cqlBatch.flush();
index d62c778..a045b74 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -20,7 +20,6 @@
 
 package org.onap.aaf.auth.batch.helpers;
 
-import org.onap.aaf.cadi.Access;
 import org.onap.aaf.misc.env.LogTarget;
 
 import com.datastax.driver.core.ResultSet;
@@ -47,7 +46,7 @@ public class CQLBatch {
         hasAdded = sb.length();
         return sb;
     }
-    
+
     private boolean end() {
         if(sb.length()==hasAdded) {
             return false;
@@ -57,7 +56,7 @@ public class CQLBatch {
             return true;
         }
     }
-    
+
     public ResultSet execute() {
         if(end()) {
             if(sleep>0) {
@@ -66,17 +65,19 @@ public class CQLBatch {
                     try {
                         Thread.sleep(left);
                     } catch (InterruptedException e) {
-                        Access.NULL.log(e); // Keep code check idiocy at bay
+                        // PER ORACLE, this isn't actually needed, but Sonar idiocy
+                        // requires something or flags as error.
+                        Thread.currentThread().interrupt();
                     }
                 }
-                last = System.currentTimeMillis()+sleep;
+                last = System.currentTimeMillis() + sleep;
             }
             return session.execute(sb.toString());
         } else {
             return null;
         }
     }
-    
+
     public ResultSet execute(boolean dryRun) {
         ResultSet rv = null;
         if(dryRun) {
@@ -86,10 +87,12 @@ public class CQLBatch {
                     try {
                         Thread.sleep(left);
                     } catch (InterruptedException e) {
-                        Access.NULL.log(e); // Keep code check idiocy at bay
+                        // PER ORACLE, this isn't actually needed, but Sonar idiocy
+                        // requires something or flags as error.
+                        Thread.currentThread().interrupt();
                     }
                 }
-                last = System.currentTimeMillis()+sleep;
+                last = System.currentTimeMillis() + sleep;
             }
             end();
         } else {
@@ -98,7 +101,7 @@ public class CQLBatch {
         sb.setLength(0);
         return rv;
     }
-    
+
     public ResultSet singleExec(StringBuilder query, boolean dryRun) {
         if(dryRun) {
             return null;
@@ -106,10 +109,10 @@ public class CQLBatch {
             return session.execute(query.toString());
         }
     }
-    
+
     public void touch(String table, int begin, int end, boolean dryRun) {
         StringBuilder sb = begin();
-        for(int i=begin;i<end;++i) {
+        for(int i=begin; i<end; ++i) {
             sb.append("UPDATE cache SET touched=dateof(now()) WHERE name='");
             sb.append(table);
             sb.append("' AND seg=");
@@ -118,11 +121,11 @@ public class CQLBatch {
         }
         execute(dryRun);
     }
-    
-    public void sleep(int j) {
+
+    public void sleep(long j) {
         sleep = j*1000;
     }
-    
+
     public String toString() {
         return sb.toString();
     }
index 9cd7341..9bb2fa3 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -23,7 +23,7 @@ package org.onap.aaf.auth.batch.helpers;
 
 public class CQLBatchLoop {
     private static final int MAX_CHARS = (50 * 1024)/2;
-    
+
     private final CQLBatch cqlBatch;
     private final int maxBatch;
     private final StringBuilder sb;
@@ -52,17 +52,17 @@ public class CQLBatchLoop {
     /**
      * Assume this is another line in the Batch
      * @return
-     */        
+     */
     public StringBuilder inc() {
-        if((i>=maxBatch || current.length()+sb.length()>MAX_CHARS)&&(i>0)) {
-            
-                   cqlBatch.execute(dryRun);
+        if((i>=maxBatch || current.length() + sb.length() > MAX_CHARS) && (i > 0)) {
+
+                cqlBatch.execute(dryRun);
                 i = -1;
                 incBatch();
     }
-        if(i<0) {
+        if(i < 0) {
             cqlBatch.begin();
-            i=0;
+            i = 0;
         }
         if(current.length() > MAX_CHARS) {
             cqlBatch.singleExec(current, dryRun);
@@ -74,23 +74,23 @@ public class CQLBatchLoop {
         ++total;
         return current;
     }
-    
+
     /**
      * Close up when finished.
      */
     public void flush() {
-        if(current.length()+sb.length()>MAX_CHARS) {
-            if(i>0) {
+        if(current.length() + sb.length() > MAX_CHARS) {
+            if(i > 0) {
                 cqlBatch.execute(dryRun);
                 incBatch();
             }
-            if(current.length()>0) {
+            if(current.length() > 0) {
                 cqlBatch.singleExec(current, dryRun);
                 current.setLength(0);
                 incBatch();
             }
         } else {
-            if(i<0) {
+            if(i < 0) {
                 cqlBatch.begin();
             }
             sb.append(current);
@@ -98,23 +98,23 @@ public class CQLBatchLoop {
             cqlBatch.execute(dryRun);
             incBatch();
         }
-        i=-1;
+        i = -1;
     }
 
     private void incBatch() {
         ++batches;
         if(showProgress) {
             System.out.print('.');
-            if(batches%70==0) {
+            if(batches%70 == 0) {
                 System.out.println();
-            } 
+            }
         }
     }
 
     public int total() {
         return total;
     }
-    
+
     public int batches() {
         return batches;
     }
@@ -124,7 +124,7 @@ public class CQLBatchLoop {
         batches = 0;
         i = -1;
     }
-    
+
     public String toString() {
         return cqlBatch.toString();
     }
index 84d7b5a..a623945 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -27,24 +27,24 @@ import java.util.List;
 
 public class CacheChange<T extends CacheChange.Data> {
     private List<T> removed;
-    
+
     public CacheChange() {
         removed = new ArrayList<>();
     }
-    
-    @FunctionalInterface 
+
+    @FunctionalInterface
     interface Data {
         public abstract void expunge();
     }
-    
+
     public final void delayedDelete(T t) {
         removed.add(t);
     }
-    
+
     public final List<T> getRemoved() {
         return removed;
     }
-    
+
     public final void resetLocalData() {
         if (removed==null || removed.isEmpty()) {
             return;
index a4e4112..d138943 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,11 +26,11 @@ import com.datastax.driver.core.Row;
 public abstract class Creator<T> {
     public abstract T create(Row row);
     public abstract String select();
-    
+
     public String suffix() {
         return "";
     }
-    
+
     public String query(String where) {
         StringBuilder sb = new StringBuilder(select());
         if (where!=null) {
index 6f23c51..4930900 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -22,7 +22,6 @@
 
 package org.onap.aaf.auth.batch.helpers;
 
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -53,13 +52,13 @@ public class Cred  {
     public final String id;
     public final List<Instance> instances;
     public final String ns;
-    
+
     public Cred(String id) {
         this.id = id;
         instances = new ArrayList<>();
         ns=Question.domain2ns(id);
     }
-    
+
     public static class Instance {
         public final int type;
         public final Date expires,written;
@@ -67,7 +66,7 @@ public class Cred  {
         public final String tag;
         public List<Note> notes;
 
-        
+
         public Instance(int type, Date expires, Integer other, long written, String tag) {
             this.type = type;
             this.expires = expires;
@@ -75,7 +74,7 @@ public class Cred  {
             this.written = new Date(written);
             this.tag = tag;
         }
-        
+
         /**
          * Usually returns Null...
          * @return
@@ -83,23 +82,23 @@ public class Cred  {
         public List<Note> notes() {
             return notes;
         }
-        
+
         public void addNote(int level, String note) {
             if(notes==null) {
                 notes=new ArrayList<>();
-            } 
+            }
             notes.add(new Note(level,note));
         }
-        
+
         public String toString() {
             return expires.toString() + ": " + type + ' ' + tag;
         }
     }
-    
+
     public static class Note {
         public final int level;
         public final String note;
-        
+
         public Note(int level, String note) {
             this.level = level;
             this.note = note;
@@ -127,7 +126,7 @@ public class Cred  {
         return last;
     }
 
-    
+
     public Set<Integer> types() {
         Set<Integer> types = new HashSet<>();
         for (Instance i : instances) {
@@ -148,7 +147,7 @@ public class Cred  {
 
         trans.info().log( "query: " + query );
         TimeTaken tt = trans.start("Read Creds", Env.REMOTE);
-       
+
         ResultSet results;
         try {
             Statement stmt = new SimpleStatement( query );
@@ -190,7 +189,7 @@ public class Cred  {
     }
 
     public static void add(
-            final String id, 
+            final String id,
             final int type,
             final Date timestamp,
             final int other,
@@ -203,10 +202,10 @@ public class Cred  {
             data.put(id, cred);
         }
         cred.instances.add(new Instance(type, timestamp, other, written/1000,tag));
-        
-        List<Cred> lscd = byNS.get(cred.ns);   
+
+        List<Cred> lscd = byNS.get(cred.ns);
         if (lscd==null) {
-               lscd=new ArrayList<>();
+            lscd=new ArrayList<>();
             byNS.put(cred.ns,lscd);
         }
         boolean found = false;
@@ -222,10 +221,10 @@ public class Cred  {
     }
 
 
-    /** 
+    /**
      * Count entries in Cred data.
      * Note, as opposed to other methods, need to load the whole cred table for the Types.
-     * @param numbuckets 
+     * @param numbuckets
      * @return
      */
     public static CredCount count(int numbuckets) {
@@ -246,7 +245,7 @@ public class Cred  {
         public int x509Added[];
         public int x509Expired[];
         public Date dates[];
-        
+
         public CredCount(int numbuckets) {
             raw = new int[numbuckets];
             basic_auth = new int[numbuckets];
@@ -263,17 +262,17 @@ public class Cred  {
             gc.set(GregorianCalendar.SECOND,0);
             gc.set(GregorianCalendar.MILLISECOND,0);
             gc.add(GregorianCalendar.MILLISECOND, -1); // last milli of month
-            for (int i=1;i<numbuckets;++i) {
+            for (int i = 1; i < numbuckets; ++i) {
                 dates[i] = gc.getTime();
                 gc.add(GregorianCalendar.MONTH, -1);
             }
-            
+
         }
-        
+
         public void inc(int type, Date start, Date expires) {
-            for (int i=0;i<dates.length-1;++i) {
+            for (int i = 0; i < dates.length - 1; ++i) {
                 if (start.before(dates[i])) {
-                    if ((type==CredDAO.CERT_SHA256_RSA)&&(start.after(dates[i+1]))) {
+                    if ((type == CredDAO.CERT_SHA256_RSA)&&(start.after(dates[i + 1]))) {
                             ++x509Added[i];
                          }
                     if (expires.after(dates[i])) {
@@ -297,15 +296,15 @@ public class Cred  {
         }
 
         public long authCount(int idx) {
-            return (long)basic_auth[idx]+basic_auth_256[idx];
+            return (long)basic_auth[idx] + basic_auth_256[idx];
         }
-        
+
         public long x509Count(int idx) {
             return cert[idx];
         }
 
     }
-    
+
     public void row(final CSV.Writer csvw, final Instance inst) {
         csvw.row("cred",id,ns,Integer.toString(inst.type),Chrono.dateOnlyStamp(inst.expires),
                 inst.expires.getTime(),inst.tag);
@@ -316,10 +315,9 @@ public class Cred  {
                 inst.expires.getTime(),inst.tag,reason);
     }
 
-    static SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd HH:mm:ss+SSSS");
     public static void batchDelete(StringBuilder sb, List<String> row) {
         Long l = Long.parseLong(row.get(5));
-        String date = sdf.format(new Date(l));
+        String date = Chrono.batchFmt.format(new Date(l));
         sb.append("DELETE from authz.cred WHERE id='");
         sb.append(row.get(1));
         sb.append("' AND type=");
@@ -331,7 +329,7 @@ public class Cred  {
 //        sb.append(" AND expires=dateof(maxtimeuuid(");
 //        sb.append(row.get(5));
 //        sb.append("));\n");
-        
+
     }
 
     public String toString() {
index c7d4e7d..3c246db 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -47,7 +47,7 @@ public class ExpireRange {
     public final Range approveDelete ;
 
     private Range delRange;
-    
+
     public ExpireRange(final Access access) {
         ranges = new HashMap<>();
         intervalDates = new HashMap<>();
@@ -58,8 +58,8 @@ public class ExpireRange {
                 List<Range> lcred = getRangeList("cred");
                 List<Range> lur = getRangeList("ur");
                 List<Range> lx509 = getRangeList("x509");
-    
-                
+
+
                 /*
                    Range(Name, ReportingLevel, PeopleInterval, AppInterval, Start(Type,Qty) End(Type,Qty) )
                    Interval of -1 Means "only once"
@@ -70,25 +70,21 @@ public class ExpireRange {
                 lur.add(delRange);
                 lcred.add(delRange);
                 lx509.add(delRange);
-                
+
                 lcred.add(new Range(ONE_WEEK ,3,-1,1,0,0,GregorianCalendar.WEEK_OF_MONTH,1));
                 lcred.add(new Range(TWO_WEEK ,2,-1,-1,GregorianCalendar.WEEK_OF_MONTH,1,GregorianCalendar.WEEK_OF_MONTH,2));
                 lcred.add(new Range(ONE_MONTH,1,7,7,GregorianCalendar.WEEK_OF_MONTH,2,GregorianCalendar.MONTH,1));
                 lcred.add(new Range(TWO_MONTH,1,-1,-1,GregorianCalendar.MONTH,1,GregorianCalendar.MONTH,2));
-                
+
                 lur.add(  new Range(ONE_MONTH,1,-1,-1,0,0,GregorianCalendar.MONTH,1));
-                // Comment out until we can get some more clear actions in place for GUI
-                // lur.add(  new Range(ONE_MONTH,1,-1,-1,GregorianCalendar.WEEK_OF_MONTH,2,GregorianCalendar.MONTH,1));
-                // lur.add(  new Range(ONE_WEEK,2,-1,1,0,0,GregorianCalendar.WEEK_OF_MONTH,1));
-                
                 lx509.add(new Range(ONE_MONTH,1,-1,-1,GregorianCalendar.WEEK_OF_MONTH,2,GregorianCalendar.MONTH,1));
             }
     }
-    
+
     public Range newFutureRange() {
         return new Range("Approval",7,7,1,0,0,GregorianCalendar.MONTH,1);
     }
-    
+
     public Set<String> names() {
         Set<String> names = new HashSet<>();
         for(List<Range> lr : ranges.values()) {
@@ -99,7 +95,7 @@ public class ExpireRange {
 
         return names;
     }
-    
+
     private synchronized List<Range> getRangeList(final String key) {
         List<Range> rv = ranges.get(key);
         if(rv==null) {
@@ -108,7 +104,7 @@ public class ExpireRange {
         }
         return rv;
     }
-    
+
     public class Range {
         private final String name;
         private final int reportingLevel;
@@ -117,11 +113,11 @@ public class ExpireRange {
         private final Date start;
         private final Date end;
         private final Date lowerValid;
-        
+
         public Range(
-                final String name, final int reportingLevel, 
-                final int peopleInterval, final int appInterval,  
-                final int startGCType, final int startQty,  
+                final String name, final int reportingLevel,
+                final int peopleInterval, final int appInterval,
+                final int startGCType, final int startQty,
                 final int endGCType,final int endQty) {
             this.name = name;
             this.reportingLevel = reportingLevel;
@@ -135,7 +131,7 @@ public class ExpireRange {
                 gc.add(startGCType, startQty);
             }
             start = gc.getTime();
-            
+
             if(endGCType<0) {
                 gc.set(GregorianCalendar.YEAR, 1);
             } else {
@@ -143,7 +139,7 @@ public class ExpireRange {
                 gc.add(endGCType, endQty);
             }
             end = gc.getTime();
-            
+
 
             if(endGCType<0) {
                 gc.set(GregorianCalendar.YEAR, -1);
@@ -154,11 +150,11 @@ public class ExpireRange {
             lowerValid = gc.getTime();
 
         }
-        
+
         public String name() {
             return name;
         }
-        
+
         public int reportingLevel() {
             return reportingLevel;
         }
@@ -190,11 +186,11 @@ public class ExpireRange {
         public Date getStart() {
             return start;
         }
-        
+
         public Date getEnd() {
             return end;
         }
-        
+
         public boolean inRange(final Date date) {
             if(date==null) {
                 return false;
@@ -226,6 +222,6 @@ public class ExpireRange {
     public Date now() {
         return now;
     }
-    
+
 
 }
index fd0de1f..4bbab9d 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -51,7 +51,7 @@ import com.datastax.driver.core.Statement;
 public class Future implements CacheChange.Data, Comparable<Future> {
     public static final Map<UUID,Future> data = new TreeMap<>();
     public static final Map<String,List<Future>> byRole = new TreeMap<>();
-    
+
     public final FutureDAO.Data fdd;
     public final String role; // derived
     private static final CacheChange<Future> cache = new CacheChange<>();
@@ -106,27 +106,27 @@ public class Future implements CacheChange.Data, Comparable<Future> {
         }
         this.role = role;
     }
-    
+
     public final UUID id() {
         return fdd.id;
     }
-    
+
     public final String memo() {
         return fdd.memo;
     }
-    
+
     public final String target() {
         return fdd.target;
     }
-    
+
     public final Date start() {
         return fdd.start;
     }
-    
+
     public final Date expires() {
         return fdd.expires;
     }
-    
+
     public static void load(Trans trans, Session session, Creator<Future> creator) {
         load(trans,session,creator, f -> {
             data.put(f.fdd.id,f);
@@ -149,7 +149,7 @@ public class Future implements CacheChange.Data, Comparable<Future> {
         } finally {
             tt.done();
         }
-        
+
         int count = 0;
         tt = trans.start("Process Futures", Env.SUB);
         try {
@@ -181,7 +181,7 @@ public class Future implements CacheChange.Data, Comparable<Future> {
         }
         return rv;
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.helpers.CacheChange.Data#resetLocalData()
      */
@@ -207,7 +207,7 @@ public class Future implements CacheChange.Data, Comparable<Future> {
     public static void resetLocalData() {
         cache.resetLocalData();
     }
-    
+
     public static int sizeForDeletion() {
         return cache.cacheSize();
     }
@@ -215,7 +215,7 @@ public class Future implements CacheChange.Data, Comparable<Future> {
     public static boolean pendingDelete(Future f) {
         return cache.contains(f);
     }
-    
+
     public static void row(CSV.Writer cw, Future f) {
         cw.row("future",f.fdd.id,f.fdd.target,f.fdd.expires,f.role,f.fdd.memo);
     }
index dfacd81..67203af 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -49,28 +49,28 @@ public class LastNotified {
     private Session session;
     public static final Date NEVER = new Date(0);
     private static final String SELECT = "SELECT user,target,key,last FROM authz.notified";
-    
+
     public LastNotified(Session session) {
         this.session = session;
     }
-    
+
     public void add(Set<String> users) {
         StringBuilder query = new StringBuilder();
         startQuery(query);
         int cnt = 0;
         for(String user : users) {
-            if(++cnt>1) {
+            if(++cnt > 1) {
                 query.append(',');
             }
             query.append('\'');
             query.append(user);
             query.append('\'');
-            if(cnt>=30) {
+            if(cnt >= 30) {
                 endQuery(query);
                 add(session.execute(query.toString()),lastNotifiedVar, (x,y) -> false);
                 query.setLength(0);
                 startQuery(query);
-                cnt=0;
+                cnt = 0;
             }
         }
         if(cnt>0) {
@@ -81,7 +81,7 @@ public class LastNotified {
 
     /**
      * Note: target_key CAN also contain a Pipe.
-     * 
+     *
      * @param user
      * @param target
      * @param targetkey
@@ -91,12 +91,12 @@ public class LastNotified {
         String key = user + '|' + target + '|' + (targetkey==null?"":targetkey);
         return lastNotified(key);
     }
-    
+
     public Date lastNotified(String key) {
         Date d = lastNotifiedVar.get(key);
         return d==null?NEVER:d;
     }
-    
+
     private Date add(ResultSet result, Map<String, Date> lastNotified, MarkDelete md) {
         Date last = null;
         Row r;
@@ -104,7 +104,7 @@ public class LastNotified {
             r = iter.next();
             String ttKey = r.getString(1) + '|' +
                             r.getString(2);
+
             String fullKey = r.getString(0) + '|' +
                              ttKey;
             last=r.getTimestamp(3);
@@ -118,7 +118,7 @@ public class LastNotified {
         }
         return last;
     }
-    
+
     @FunctionalInterface
     private interface MarkDelete {
         boolean process(String fullKey, Date last);
@@ -167,7 +167,7 @@ public class LastNotified {
     }
 
     public static String newKey(UserRole ur) {
-        return "ur|" + ur.user() + '|'+ur.role();
+        return "ur|" + ur.user() + '|' + ur.role();
     }
 
     public static String newKey(Cred cred, Instance inst) {
index e76f523..bf1338f 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -62,9 +62,9 @@ public class    NS implements Comparable<NS> {
         ndd.description = description;
         ndd.parent = parent;
         ndd.type = type;
-        // ndd.attrib = 
+        // ndd.attrib =
     }
-    
+
     public static void load(Trans trans, Session session, Creator<NS> creator) {
         load(trans,session,
                 "select name, description, parent, type, scope from authz.ns;"
@@ -72,10 +72,10 @@ public class    NS implements Comparable<NS> {
                 , v -> data.put(v.ndd.name,v)
                 );
     }
-    
+
     public static void loadOne(Trans trans, Session session, Creator<NS> creator, String ns) {
         load(trans,session,
-                ("select name, description, parent, type, scope from authz.ns WHERE name='"+ns+"';")
+                ("select name, description, parent, type, scope from authz.ns WHERE name='" + ns + "';")
                 ,creator
                 , v -> data.put(v.ndd.name,v)
                 );
@@ -84,7 +84,7 @@ public class    NS implements Comparable<NS> {
     public static void load(Trans trans, Session session, Creator<NS> creator, Visitor<NS> visitor) {
          load(trans,session,creator.query(null),creator, visitor);
     }
-    
+
     public void row(final CSV.Writer csvw, String tag) {
         csvw.row(tag,ndd.name,ndd.type,ndd.parent);
     }
@@ -102,7 +102,7 @@ public class    NS implements Comparable<NS> {
         } finally {
             tt.done();
         }
-        
+
 
         try {
             Iterator<Row> iter = results.iterator();
@@ -136,7 +136,7 @@ public class    NS implements Comparable<NS> {
             tt.done();
         }
     }
-        
+
     public String toString() {
         return ndd.name;
     }
@@ -161,21 +161,21 @@ public class    NS implements Comparable<NS> {
     public int compareTo(NS o) {
         return ndd.name.compareTo(o.ndd.name);
     }
-    
+
     public static class NSSplit {
         public String ns;
         public String other;
         public NSSplit(String s, int dot) {
             ns = s.substring(0,dot);
-            other = s.substring(dot+1);
+            other = s.substring(dot + 1);
         }
     }
     public static NSSplit deriveParent(String dotted) {
         if (dotted==null) {
             return null;
         }
-        for (int idx = dotted.lastIndexOf('.');idx>=0; idx=dotted.lastIndexOf('.',idx-1)) {
-            if (data.get(dotted.substring(0, idx))!=null) {
+        for (int idx = dotted.lastIndexOf('.');idx >= 0; idx = dotted.lastIndexOf('.',idx - 1)) {
+            if (data.get(dotted.substring(0, idx)) != null) {
                 return new NSSplit(dotted,idx);
             }
         }
index a2cba25..16c4095 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -50,14 +50,14 @@ public class NsAttrib {
             return "select ns,key,value from authz.ns_attrib";
         }
     };
-    
-    
+
+
     public NsAttrib(String ns, String key, String value) {
         this.ns = ns;
         this.key = key;
         this.value = value;
     }
-    
+
    public static void load(Trans trans, Session session, Creator<NsAttrib> creator, Visitor<NsAttrib> visitor) {
         trans.info().log( "query: " + creator.select() );
         ResultSet results;
index e69ef51..3f750fb 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -50,7 +50,7 @@ public class Role implements Comparable<Role> {
     public RoleDAO.Data rdd;
     private String full;
     private String encode;
-    
+
     public Role(String full) {
         rdd = new RoleDAO.Data();
         rdd.ns = "";
@@ -59,7 +59,7 @@ public class Role implements Comparable<Role> {
         rdd.perms = new HashSet<>();
         this.full = full;
     }
-    
+
     public Role(String ns, String name, String description,Set<String> perms) {
            rdd = new RoleDAO.Data();
         rdd.ns = ns;
@@ -69,18 +69,18 @@ public class Role implements Comparable<Role> {
         this.full = null;
         this.encode = null;
     }
-    
+
     public String encode() {
         if (encode==null) {
             encode = rdd.ns + '|' + rdd.name;
-        } 
+        }
         return encode;
     }
 
     public String fullName() {
         if (full==null) {
             full = rdd.ns + '.' + rdd.name;
-        } 
+        }
         return full;
     }
 
@@ -95,7 +95,7 @@ public class Role implements Comparable<Role> {
     private static void load(Trans trans, Session session, String query) {
         trans.info().log( "query: " + query );
         TimeTaken tt = trans.start("Read Roles", Env.REMOTE);
-       
+
         ResultSet results;
         try {
             Statement stmt = new SimpleStatement( query );
@@ -123,7 +123,7 @@ public class Role implements Comparable<Role> {
             trans.info().log("Found",data.size(),"roles");
         }
     }
-    
+
     public static long count(Trans trans, Session session) {
         String query = "select count(*) from authz.role LIMIT 1000000;";
         trans.info().log( "query: " + query );
@@ -166,11 +166,11 @@ public class Role implements Comparable<Role> {
     public static String fullName(String role) {
         return role.replace('|', '.');
     }
-    
+
     public static void stageRemove(Role r) {
         deleteRoles.add(r);
     }
-    
+
     public static void executeRemove() {
         for (Role p : deleteRoles) {
             keys.remove(p.encode);
index dd24d7d..ae46253 100644 (file)
@@ -57,7 +57,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
     // CACHE Calling
     private static final String LOG_FMT = "%s UserRole - %s: %s-%s (%s, %s) expiring %s";
     private static final String REPLAY_FMT = "%s|%s|%s|%s|%s\n";
-    private static final String DELETE_FMT = "# %s\n"+ REPLAY_FMT;
+    private static final String DELETE_FMT = "# %s\n" + REPLAY_FMT;
 
     private static final List<UserRole> data = new ArrayList<>();
     private static final SortedMap<String,List<UserRole>> byUser = new TreeMap<>();
@@ -81,7 +81,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
         }
     };
 
-    public UserRole(String user, String ns, String rname, Date expires) {    
+    public UserRole(String user, String ns, String rname, Date expires) {
         urdd = new UserRoleDAO.Data();
         urdd.user = user;
         urdd.role = ns + '.' + rname;
@@ -114,7 +114,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
     public static void load(Trans trans, Session session, Creator<UserRole> creator) {
         load(trans,session,creator,null,new DataLoadVisitor());
     }
-    
+
     public static void load(Trans trans, Session session, Creator<UserRole> creator, Visitor<UserRole> visitor ) {
         load(trans,session,creator,null,visitor);
     }
@@ -122,19 +122,19 @@ public class UserRole implements Cloneable, CacheChange.Data  {
     public static void loadOneRole(Trans trans, Session session, Creator<UserRole> creator, String role, Visitor<UserRole> visitor) {
         load(trans,session,creator,"role='" + role +"' ALLOW FILTERING;",visitor);
     }
-    
+
     public static void loadOneUser(Trans trans, Session session, Creator<UserRole> creator, String user, Visitor<UserRole> visitor ) {
-        load(trans,session,creator,"user='"+ user +'\'',visitor);
+        load(trans,session,creator,"user='" + user + '\'',visitor);
     }
 
     public static void load(Trans trans, CSV csv, Creator<UserRole> creator, Visitor<UserRole> visitor) throws IOException, CadiException {
 //        public UserRole(String user, String role, String ns, String rname, Date expires) {
-        csv.visit( row -> 
+        csv.visit( row ->
             visitor.visit(new UserRole(row.get(1),row.get(2),row.get(3),row.get(4),
                 new Date(Long.parseLong(row.get(6)))))
         );
     }
-    
+
     private static void load(Trans trans, Session session, Creator<UserRole> creator, String where, Visitor<UserRole> visitor) {
         String query = creator.query(where);
         trans.debug().log( "query: " + query );
@@ -189,30 +189,30 @@ public class UserRole implements Cloneable, CacheChange.Data  {
             lur.add(ur);
         }
     }
-    
+
     public int totalLoaded() {
         return totalLoaded;
     }
-    
+
     public int deleted() {
         return deleted;
     }
-    
+
     @Override
     public void expunge() {
         data.remove(this);
-        
+
         List<UserRole> lur = byUser.get(urdd.user);
         if (lur!=null) {
             lur.remove(this);
         }
-    
+
         lur = byRole.get(urdd.role);
         if (lur!=null) {
             lur.remove(this);
         }
     }
-    
+
     public static void setDeleteStream(PrintStream ds) {
         urDelete = ds;
     }
@@ -238,27 +238,27 @@ public class UserRole implements Cloneable, CacheChange.Data  {
     public UserRoleDAO.Data urdd() {
         return urdd;
     }
-    
+
     public String user() {
         return urdd.user;
     }
-    
+
     public String role() {
         return urdd.role;
     }
-    
+
     public String ns() {
         return urdd.ns;
     }
-    
+
     public String rname() {
         return urdd.rname;
     }
-    
+
     public Date expires() {
         return urdd.expires;
     }
-    
+
     public void expires(Date time) {
         urdd.expires = time;
     }
@@ -296,7 +296,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
         cache.delayedDelete(this);
         ++deleted;
     }
-    
+
 
     /**
      * Calls expunge() for all deleteCached entries
@@ -304,7 +304,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
     public static void resetLocalData() {
         cache.resetLocalData();
     }
-    
+
     public void row(final CSV.Writer csvw, String tag) {
         csvw.row(tag,user(),role(),ns(),rname(),Chrono.dateOnlyStamp(expires()),expires().getTime());
     }
@@ -312,7 +312,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
     public void row(final CSV.Writer csvw, String tag, String reason) {
         csvw.row(tag,user(),role(),ns(),rname(),Chrono.dateOnlyStamp(expires()),expires().getTime(),reason);
     }
-    
+
     public static Data row(List<String> row) {
         Data data = new Data();
         data.user = row.get(1);
@@ -350,7 +350,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
         sb.append(role());
         sb.append("';\n");
     }
-    
+
     public void batchUpdateExpires(StringBuilder sb) {
         sb.append("UPDATE authz.user_role SET expires='");
         sb.append(Chrono.dateTime(expires()));
@@ -364,7 +364,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
     public static String histMemo(String fmt, List<String> row) {
         String reason;
         if(row.size()>7) { // Reason included
-            reason = String.format("%s removed from %s because %s", 
+            reason = String.format("%s removed from %s because %s",
                     row.get(1),row.get(2),row.get(7));
         } else {
             reason = String.format(fmt, row.get(1),row.get(2), row.get(5));
@@ -373,7 +373,7 @@ public class UserRole implements Cloneable, CacheChange.Data  {
     }
 
     public static String histSubject(List<String> row) {
-        return row.get(1) + '|' + row.get(2);    
+        return row.get(1) + '|' + row.get(2);
     }
 
     public static void clear() {
@@ -381,6 +381,6 @@ public class UserRole implements Cloneable, CacheChange.Data  {
         byUser.clear();
         byRole.clear();
         cache.resetLocalData();
-        
+
     }
 }
\ No newline at end of file
index 38a7647..e1b2e01 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -22,14 +22,14 @@ package org.onap.aaf.auth.batch.helpers;
 
 public interface Visitor<T> {
     void visit(T t);
-    
+
     public static class Multi<T> implements Visitor<T> {
         private final Visitor<T>[] visitors;
         @SafeVarargs
         public Multi(Visitor<T> ... vs) {
             visitors  = vs;
         }
-        
+
         @Override
         public void visit(T t) {
             for(Visitor<T> v : visitors) {
index e2d8694..59b03f6 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -48,7 +48,7 @@ public class X509 {
     public final String x500;
     public final String x509;
     public ByteBuffer serial;
-    
+
     public X509(String ca, String id, String x500, String x509, ByteBuffer serial) {
         this.ca = ca;
         this.id = id;
@@ -56,12 +56,12 @@ public class X509 {
         this.x509 = x509;
         this.serial = serial;
     }
-    
+
 
     public static void load(Trans trans, Session session, Visitor<X509> visitor) {
         load(trans,session, "" , visitor);
     }
-    
+
     public static void load(Trans trans, Session session, String where, Visitor<X509> visitor) {
         load(trans,session, visitor,"select ca, id, x500, x509, serial from authz.x509 " + where +';');
     }
@@ -70,7 +70,7 @@ public class X509 {
     private static void load(Trans trans, Session session, Visitor<X509> visitor, String query) {
         trans.info().log( "query: " + query );
         TimeTaken tt = trans.start("Read X509", Env.REMOTE);
-       
+
         ResultSet results;
         try {
             Statement stmt = new SimpleStatement( query );
@@ -97,7 +97,7 @@ public class X509 {
             trans.info().log("Found",count,"X509 Certificates");
         }
     }
-    
+
     public static long count(Trans trans, Session session) {
         String query = "select count(*) from authz.x509 LIMIT 1000000;";
         trans.info().log( "query: " + query );
@@ -111,7 +111,7 @@ public class X509 {
             tt.done();
         }
     }
-    
+
 
     public void row(CSV.Writer cw, X509Certificate x509Cert) {
         cw.row("x509",ca,Hash.toHex(serial.array()),Chrono.dateOnlyStamp(x509Cert.getNotAfter()),x500);
index 5780c60..78c6ae3 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -75,8 +75,8 @@ public class Analyze extends Batch {
     private static final int total=0;
     private static final int pending=1;
     private static final int approved=2;
-    
-    
+
+
     public static final String NEED_APPROVALS = "NeedApprovals";
     private static final String EXTEND = "Extend";
     private static final String EXPIRED_OWNERS = "ExpiredOwners";
@@ -92,11 +92,11 @@ public class Analyze extends Batch {
     private Range futureRange;
     private final String sdate;
     private LastNotified ln;
-    
+
     public Analyze(AuthzTrans trans) throws APIException, IOException, OrganizationException {
         super(trans.env());
         trans.info().log("Starting Connection Process");
-        
+
         TimeTaken tt0 = trans.start("Cassandra Initialization", Env.SUB);
         try {
             TimeTaken tt = trans.start("Connect to Cluster", Env.REMOTE);
@@ -105,13 +105,13 @@ public class Analyze extends Batch {
             } finally {
                 tt.done();
             }
-            
+
 
             minOwners=1;
 
-            // Create Intermediate Output 
+            // Create Intermediate Output
             writerList = new HashMap<>();
-            
+
             expireRange = new ExpireRange(trans.env().access());
             sdate = Chrono.dateOnlyStamp(now);
             for( List<Range> lr : expireRange.ranges.values()) {
@@ -130,7 +130,7 @@ public class Analyze extends Batch {
                     }
                 }
             }
-            
+
             // Setup New Approvals file
             futureRange = expireRange.newFutureRange();
             File file = new File(logDir(),NEED_APPROVALS + sdate +CSV);
@@ -138,14 +138,14 @@ public class Analyze extends Batch {
             needApproveCW = approveCSV.writer();
             needApproveCW.row(INFO,NEED_APPROVALS,sdate,1);
             writerList.put(NEED_APPROVALS,needApproveCW);
-            
+
             // Setup Extend Approvals file
             file = new File(logDir(),EXTEND + sdate +CSV);
             CSV extendCSV = new CSV(env.access(),file);
             extendCW = extendCSV.writer();
             extendCW.row(INFO,EXTEND,sdate,1);
             writerList.put(EXTEND,extendCW);
-            
+
             // Load full data of the following
             ln = new LastNotified(session);
 
@@ -158,17 +158,17 @@ public class Analyze extends Batch {
     protected void run(AuthzTrans trans) {
         TimeTaken tt;
         AuthzTrans noAvg = trans.env().newTransNoAvg();
-        
+
         ////////////////////
         // Load all Notifieds, and either add to local Data, or mark for Deletion.
         ln.loadAll(noAvg,expireRange.approveDelete,deleteCW);
-        
+
         // Hold Good Tickets to keyed User/Role for UserRole Step
         Map<String,Ticket> mur = new TreeMap<>();
 
         try {
             Approval.load(trans, session, Approval.v2_0_17);
-    
+
             ////////////////////
             final Map<UUID,Ticket> goodTickets = new TreeMap<>();
             tt = trans.start("Analyze Expired Futures",Trans.SUB);
@@ -193,7 +193,7 @@ public class Analyze extends Batch {
             } finally {
                 tt.done();
             }
-            
+
             Set<String> approvers = new TreeSet<>();
             tt = trans.start("Connect Approvals with Futures",Trans.SUB);
             try {
@@ -209,7 +209,7 @@ public class Analyze extends Batch {
                     } else {
                         // for users and approvers still valid
                         String user = appr.getUser();
-                        
+
                         if(org.isRevoked(noAvg, appr.getApprover())) {
                             deleteCW.comment("Approver ID is revoked");
                             Approval.row(deleteCW, appr);
@@ -225,16 +225,16 @@ public class Analyze extends Batch {
             } finally {
                 tt.done();
             }
-    
-            /* Run through all Futures, and see if 
+
+            /* Run through all Futures, and see if
              * 1) they have been executed (no longer valid)
-             * 2) The current Approvals indicate they can proceed 
+             * 2) The current Approvals indicate they can proceed
              */
             Map<String,Pending> pendingApprs = new HashMap<>();
             Map<String,Pending> pendingTemp = new HashMap<>();
-    
+
             String approver;
-            
+
             tt = trans.start("Analyze Good Tickets",Trans.SUB);
             try {
                 for(Ticket ticket : goodTickets.values()) {
@@ -244,7 +244,7 @@ public class Analyze extends Batch {
                             case "user_role":
                                 int state[][] = new int[3][3];
                                 int type;
-                                        
+
                                 for(Approval appr : ticket.approvals) {
                                     switch(appr.getType()) {
                                         case "owner":
@@ -276,13 +276,13 @@ public class Analyze extends Batch {
                                             ++state[type][unknown];
                                     }
                                 }
-                                
+
                                 // To Approve:
                                 // Always must have at least 1 owner
                                 if((state[owner][total]>0 && state[owner][approved]>0) &&
                                     // If there are no Supervisors, that's ok
-                                    (state[supervisor][total]==0 || 
-                                    // But if there is a Supervisor, they must have approved 
+                                    (state[supervisor][total]==0 ||
+                                    // But if there is a Supervisor, they must have approved
                                     (state[supervisor][approved]>0))) {
                                         UserRoleDAO.Data urdd = new UserRoleDAO.Data();
                                         try {
@@ -307,7 +307,7 @@ public class Analyze extends Batch {
                         }
                     } finally {
                         if("user_role".equals(ticket.f.fdd.target)) {
-                            String key = ticket.f.fdd.target_key; 
+                            String key = ticket.f.fdd.target_key;
                             if(key!=null) {
                                 mur.put(key, ticket);
                             }
@@ -319,7 +319,7 @@ public class Analyze extends Batch {
             }
             // Good Tickets no longer needed
             goodTickets.clear();
-    
+
             /**
              * Decide to Notify about Approvals, based on activity/last Notified
              */
@@ -328,11 +328,11 @@ public class Analyze extends Batch {
                 GregorianCalendar gc = new GregorianCalendar();
                 gc.add(GregorianCalendar.DAY_OF_WEEK, 5);
                 Date remind = gc.getTime();
-                
+
                 for(Entry<String, Pending> es : pendingApprs.entrySet()) {
                     Pending p = es.getValue();
-                    if(p.newApprovals() 
-                            || p.earliest() == LastNotified.NEVER // yes, equals. 
+                    if(p.newApprovals()
+                            || p.earliest() == LastNotified.NEVER // yes, equals.
                             || p.earliest().after(remind)) {
                         p.row(needApproveCW,es.getKey());
                     }
@@ -340,22 +340,22 @@ public class Analyze extends Batch {
             } finally {
                 tt.done();
             }
-            
+
             // clear out Approval Intermediates
             pendingTemp = null;
             pendingApprs = null;
         } finally {
         }
-            
+
         /**
-           Run through User Roles.  
+           Run through User Roles.
            Owners are treated specially in next section.
            Regular roles are checked against Date Ranges.  If match Date Range, write out to appropriate file.
-        */    
-        
+        */
+
         try {
             Role.load(trans, session);
-    
+
             try {
                 tt = trans.start("Analyze UserRoles, storing Owners",Trans.SUB);
                 Set<String> specialCommented = new HashSet<>();
@@ -391,8 +391,7 @@ public class Analyze extends Batch {
                                 return;
                             }
                             // Just let expired UserRoles sit until deleted
-                            if(futureRange.inRange(ur.expires())) {
-                                if(!mur.containsKey(ur.user() + '|' + ur.role())) {
+                            if(futureRange.inRange(ur.expires())&&(!mur.containsKey(ur.user() + '|' + ur.role()))) {
                                     // Cannot just delete owners, unless there is at least one left. Process later
                                     if ("owner".equals(ur.rname())) {
                                         Set<UserRole> urs = owners.get(ur.role());
@@ -410,8 +409,7 @@ public class Analyze extends Batch {
                                             }
                                         }
                                     }
-                                }
-                            }
+                             }
                         } catch (OrganizationException e) {
                             noAvg.error().log(e);
                         }
@@ -420,11 +418,11 @@ public class Analyze extends Batch {
                      tt.done();
                  }
                  mur.clear();
-                 
+
                 /**
                   Now Process Owners, one owner Role at a time, ensuring one is left,
-                  preferably a good one. If so, process the others as normal. 
-                  
+                  preferably a good one. If so, process the others as normal.
+
                   Otherwise, write to ExpiredOwners Report
                 */
                  tt = trans.start("Analyze Owners Separately",Trans.SUB);
@@ -434,7 +432,7 @@ public class Analyze extends Batch {
                         final CSV ownerCSV = new CSV(env.access(),file);
                         CSV.Writer expOwner = ownerCSV.writer();
                         expOwner.row(INFO,EXPIRED_OWNERS,sdate,2);
-    
+
                         try {
                             for (Set<UserRole> sur : owners.values()) {
                                 int goodOwners = 0;
@@ -443,7 +441,7 @@ public class Analyze extends Batch {
                                         ++goodOwners;
                                     }
                                 }
-        
+
                                 for (UserRole ur : sur) {
                                     if (goodOwners >= minOwners) {
                                         Range r = writeAnalysis(noAvg, ur);
@@ -475,14 +473,14 @@ public class Analyze extends Batch {
                 Role.clear();
                 UserRole.clear();
             }
-            
+
             /**
              * Check for Expired Credentials
              */
             try {
                  // Load Cred.  We don't follow Visitor, because we have to gather up everything into Identity Anyway
                  Cred.load(trans, session);
-    
+
                 tt = trans.start("Analyze Expired Credentials",Trans.SUB);
                 try {
                     for (Cred cred : Cred.data.values()) {
@@ -511,7 +509,7 @@ public class Analyze extends Batch {
             } finally {
                 Cred.clear();
             }
-    
+
             ////////////////////
             tt = trans.start("Analyze Expired X509s",Trans.SUB);
             try {
@@ -531,7 +529,7 @@ public class Analyze extends Batch {
             noAvg.info().log(e);
         }
     }
+
     private Approval findApproval(UserRole ur) {
         Approval existing = null;
         List<Approval> apprs = Approval.byUser.get(ur.user());
@@ -539,7 +537,7 @@ public class Analyze extends Batch {
             for(Approval appr : apprs) {
                 if(ur.role().equals(appr.getRole()) &&
                     appr.getMemo().contains(Chrono.dateOnlyStamp(ur.expires()))) {
-                        existing = appr; 
+                        existing = appr;
                 }
             }
         }
@@ -557,7 +555,7 @@ public class Analyze extends Batch {
             } catch (OrganizationException e) {
                 i=null;
             }
-            if(r.needsContact(lnd,i)) {                
+            if(r.needsContact(lnd,i)) {
                 CSV.Writer cw = writerList.get(r.name());
                 if(cw!=null) {
                     ur.row(cw,UserRole.UR);
@@ -566,7 +564,7 @@ public class Analyze extends Batch {
         }
         return r;
     }
-    
+
     private void writeAnalysis(AuthzTrans noAvg, Cred cred, Instance inst) {
         if(cred!=null && inst!=null) {
             Range r = expireRange.getRange("cred", inst.expires);
@@ -579,7 +577,7 @@ public class Analyze extends Batch {
                 } catch (OrganizationException e) {
                     i=null;
                 }
-                if(r.needsContact(lnd,i)) {                
+                if(r.needsContact(lnd,i)) {
                     CSV.Writer cw = writerList.get(r.name());
                     if(cw!=null) {
                         cred.row(cw,inst);
@@ -608,7 +606,7 @@ public class Analyze extends Batch {
             }
         }
     }
-    
+
     @Override
     protected void _close(AuthzTrans trans) {
         session.close();
index 880173b..a6c49f0 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -49,18 +49,18 @@ import com.datastax.driver.core.Statement;
 
 
 public class ApprovedRpt extends Batch {
-    
+
     private static final String APPR_RPT = "ApprovedRpt";
     private static final String CSV = ".csv";
     private Date now;
     private Writer approvedW;
     private CSV historyR;
     private static String yr_mon;
-    
+
     public ApprovedRpt(AuthzTrans trans) throws APIException, IOException, OrganizationException {
         super(trans.env());
         trans.info().log("Starting Connection Process");
-        
+
         TimeTaken tt0 = trans.start("Cassandra Initialization", Env.SUB);
         try {
 //            TimeTaken tt = trans.start("Connect to Cluster", Env.REMOTE);
@@ -69,15 +69,15 @@ public class ApprovedRpt extends Batch {
 //            } finally {
 //                tt.done();
 //            }
-            
+
             now = new Date();
             String sdate = Chrono.dateOnlyStamp(now);
             File file = new File(logDir(),APPR_RPT + sdate +CSV);
             CSV csv = new CSV(env.access(),file);
             approvedW = csv.writer(false);
-            
+
             historyR = new CSV(env.access(),args()[1]).setDelimiter('|');
-            
+
             yr_mon = args()[0];
         } finally {
             tt0.done();
@@ -86,7 +86,7 @@ public class ApprovedRpt extends Batch {
 
     @Override
     protected void run(AuthzTrans trans) {
-        try {          
+        try {
 //            ResultSet results;
 //            Statement stmt = new SimpleStatement( "select dateof(id), approver, status, user, type, memo from authz.approved;" );
 //            results = session.execute(stmt);
@@ -132,15 +132,15 @@ public class ApprovedRpt extends Batch {
                     }
                 }
             });
-            
+
         } catch (Exception e) {
             trans.info().log(e);
         }
     }
-    
+
     private void write(String a_or_d, List<String> row) {
         String[] target = Split.splitTrim('|', row.get(4));
-        
+
         if(target.length>1) {
             UUID id = UUID.fromString(row.get(0));
             Date date = Chrono.uuidToDate(id);
@@ -166,7 +166,7 @@ public class ApprovedRpt extends Batch {
             }
         }
 
-        
+
     }
 
 }
index bd56fc2..82542e1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,20 +45,20 @@ import org.onap.aaf.misc.env.util.Chrono;
 
 
 public class NotInOrg extends Batch {
-    
+
     private static final String NOT_IN_ORG = "NotInOrg";
     private static final String CSV = ".csv";
     private static final String INFO = "info";
     private Map<String, CSV.Writer> writerList;
-    private Map<String, CSV.Writer> whichWriter; 
+    private Map<String, CSV.Writer> whichWriter;
     private Date now;
     private Writer notInOrgW;
     private Writer notInOrgDeleteW;
-    
+
     public NotInOrg(AuthzTrans trans) throws APIException, IOException, OrganizationException {
         super(trans.env());
         trans.info().log("Starting Connection Process");
-        
+
         TimeTaken tt0 = trans.start("Cassandra Initialization", Env.SUB);
         try {
             TimeTaken tt = trans.start("Connect to Cluster", Env.REMOTE);
@@ -67,11 +67,11 @@ public class NotInOrg extends Batch {
             } finally {
                 tt.done();
             }
-            
+
             // Load Cred.  We don't follow Visitor, because we have to gather up everything into Identity Anyway
             Cred.load(trans, session);
 
-            // Create Intermediate Output 
+            // Create Intermediate Output
             writerList = new HashMap<>();
             whichWriter = new TreeMap<>();
 
@@ -82,7 +82,7 @@ public class NotInOrg extends Batch {
             notInOrgW = csv.writer(false);
             notInOrgW.row(INFO,NOT_IN_ORG,Chrono.dateOnlyStamp(now),0);
             writerList.put(NOT_IN_ORG,notInOrgW);
-            
+
             // These will have been double-checked by the Organization, and can be deleted immediately.
             String fn = NOT_IN_ORG+"Delete";
             file = new File(logDir(),fn + sdate +CSV);
@@ -90,7 +90,7 @@ public class NotInOrg extends Batch {
             notInOrgDeleteW = csvDelete.writer(false);
             notInOrgDeleteW.row(INFO,fn,Chrono.dateOnlyStamp(now),0);
             writerList.put(NOT_IN_ORG,notInOrgW);
-            
+
         } finally {
             tt0.done();
         }
@@ -102,7 +102,7 @@ public class NotInOrg extends Batch {
             Map<String,Boolean> checked = new TreeMap<String, Boolean>();
             trans.info().log("Process Organization Identities");
             trans.info().log("User Roles");
-            
+
             final AuthzTrans transNoAvg = trans.env().newTransNoAvg();
             UserRole.load(trans, session, UserRole.v2_0_11, ur -> {
                 try {
@@ -113,9 +113,9 @@ public class NotInOrg extends Batch {
                     trans.error().log(e, "Error Decrypting X509");
                 }
             });
-            
+
             trans.info().log("Checking for Creds without IDs");
-            
+
             for (Cred cred : Cred.data.values()) {
                 if(!check(transNoAvg,checked, cred.id)) {
                     CSV.Writer cw = whichWriter(transNoAvg, cred.id);
@@ -124,13 +124,13 @@ public class NotInOrg extends Batch {
                     }
                 }
             }
-            
+
         } catch (OrganizationException e) {
             trans.info().log(e);
         }
     }
-    
+
+
     private Writer whichWriter(AuthzTrans transNoAvg, String id) {
         Writer w = whichWriter.get(id);
         if(w==null) {
@@ -146,7 +146,7 @@ public class NotInOrg extends Batch {
         Boolean rv = checked.get(id);
         if(rv==null) {
             if(isSpecial(id)) { // do not check against org... too important to delete.
-                return true; 
+                return true;
             }
             Organization org = trans.org();
             if(org != null) {
@@ -160,7 +160,7 @@ public class NotInOrg extends Batch {
         return rv;
     }
 
-    
+
     @Override
     protected void _close(AuthzTrans trans) {
         session.close();
index 5ad6163..981f300 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -134,7 +134,7 @@ import org.onap.aaf.misc.env.util.Chrono;
          }
 
          urgent = false;
-         
+
          sb.setLength(0);
          fhh = new File(footer_html);
          if(!fhh.exists()) {
@@ -153,14 +153,14 @@ import org.onap.aaf.misc.env.util.Chrono;
          }
 
          noAvg = trans.env().newTransNoAvg();
-         cqlBatch = new CQLBatch(noAvg.debug(),session); 
+         cqlBatch = new CQLBatch(noAvg.debug(),session);
           cbl = new CQLBatchLoop(cqlBatch,50,dryRun);
-         
+
           lastN = new LastNotified(session);
      }
 
      /*
-      * Note: We try to put things related to Notify as Main Class in Run, where we might have put in 
+      * Note: We try to put things related to Notify as Main Class in Run, where we might have put in
       * Constructor, so that we can have other Classes call just the "notify" method.
       */
      @Override
@@ -175,7 +175,7 @@ import org.onap.aaf.misc.env.util.Chrono;
              NotifyBody.load(env.access());
 
 
-             // Create Intermediate Output 
+             // Create Intermediate Output
              File logDir = logDir();
              Set<File> notifyFile = new HashSet<>();
              if(args().length>0) {
@@ -219,14 +219,14 @@ import org.onap.aaf.misc.env.util.Chrono;
                      e.printStackTrace();
                  }
 
-             }    
+             }
 
              // now create Notification
              for(NotifyBody nb : NotifyBody.getAll()) {
                  int count = notify(noAvg, nb);
                  trans.info().printf("Emailed %d for %s",count,nb.name());
              }
-             
+
              //
              // Do Pending Approval Notifies. We do this separately, because we are consolidating
              // all the new entries, etc.
@@ -238,7 +238,7 @@ import org.onap.aaf.misc.env.util.Chrono;
                      csvList.add(new CSV(access,f));
                  }
              }
-             
+
              Map<String,Pending> mpending = new TreeMap<>();
              Holder<Integer> count = new Holder<>(0);
              for(CSV approveCSV : csvList) {
@@ -261,7 +261,7 @@ import org.onap.aaf.misc.env.util.Chrono;
                                     count.set(count.get()+1);
                                 } catch (ParseException e) {
                                     trans.error().log(e);
-                                } 
+                                }
                             break;
                         }
                     });
@@ -272,25 +272,25 @@ import org.onap.aaf.misc.env.util.Chrono;
                 }
             }
             trans.info().printf("Read %d Reminder Rows", count.get());
-            
+
             NotifyPendingApprBody npab = new NotifyPendingApprBody(access);
 
             GregorianCalendar gc = new GregorianCalendar();
             gc.add(GregorianCalendar.DAY_OF_MONTH, 7); // Get from INFO?
             Date oneWeek = gc.getTime();
             CSV.Saver rs = new CSV.Saver();
-            
+
             TimeTaken tt = trans.start("Obtain Last Notifications for Approvers", Trans.SUB);
             try {
                 lastN.add(mpending.keySet());
             } finally {
                 tt.done();
             }
-            
+
             Pending p;
-            
+
             tt = trans.start("Notify for Pending", Trans.SUB);
-            List<String> idList = new ArrayList<String>();
+            List<String> idList = new ArrayList<>();
             String id;
             try {
                 for(Entry<String, Pending> es : mpending.entrySet()) {
@@ -336,7 +336,7 @@ import org.onap.aaf.misc.env.util.Chrono;
 
          String run = nb.type()+nb.name();
          String test = dryRun?run:null;
-         
+
          ONE_EMAIL:
          for(String id : nb.users()) {
              toList.clear();
index bcdd440..072363f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -51,9 +51,9 @@ public class PrepExtend extends Batch {
     /**
      * Create a list of Creds and UserRoles to extend
      * Note: Certificates cannot be renewed in this way.
-     * 
+     *
      * Arguments From (0 = today, -2 = 2 weeks back) and To (weeks from today)
-     * 
+     *
      * @param trans
      * @throws APIException
      * @throws IOException
@@ -80,15 +80,15 @@ public class PrepExtend extends Batch {
     protected void run(AuthzTrans trans) {
         GregorianCalendar gc = new GregorianCalendar();
         Date now = gc.getTime();
-        
+
         int ifrom = 0;
         int ito = 4;
-        
+
         for(int i=0; i< args().length;++i) {
             switch(args()[i]) {
                 case "-from":
                     if(args().length>i+1) {
-                        ifrom = Integer.parseInt(args()[i++ +1]); 
+                        ifrom = Integer.parseInt(args()[i++ +1]);
                     }
                     break;
                 case "-to":
@@ -102,23 +102,23 @@ public class PrepExtend extends Batch {
             System.err.println("Invalid -from param");
             return;
         }
-        
+
         if(ito<=0 || ito>24 || ifrom>ito) {
             System.err.println("Invalid -to param");
             return;
         }
-        
+
         // Make sure to is Zero based from today.
         if(ifrom<0) {
             ito+= ifrom*-1;
         }
-        
+
         gc.add(GregorianCalendar.WEEK_OF_MONTH, ifrom);
         Date from = gc.getTime();
-        
+
         gc.add(GregorianCalendar.WEEK_OF_MONTH, ito /* with From calculated in */);
         Date to = gc.getTime();
-        
+
         try {
             File file = new File(logDir(), PREP_EXTEND + Chrono.dateOnlyStamp(now) + CSV);
             final CSV puntCSV = new CSV(env.access(),file);
@@ -128,7 +128,7 @@ public class PrepExtend extends Batch {
             try {
                 trans.info().log("Process UserRoles for Extending");
                 /**
-                   Run through User Roles.  
+                   Run through User Roles.
                    If match Date Range, write out to appropriate file.
                 */
                 UserRole.load(trans, session, UserRole.v2_0_11, ur -> {
@@ -136,7 +136,7 @@ public class PrepExtend extends Batch {
                         ur.row(cw,UserRole.UR);
                     }
                 });
-                
+
                 trans.info().log("Process BasicAuth for Extending");
                 TimeTaken tt0 = trans.start("Load Credentials", Env.REMOTE);
                 try {
@@ -148,7 +148,7 @@ public class PrepExtend extends Batch {
 
 
                 /**
-                   Run through Creds.  
+                   Run through Creds.
                    If match Date Range, write out to appropriate file.
                 */
                 Map<Integer,Instance> imap = new HashMap<>();
index 6c95f02..04814e0 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -53,13 +53,13 @@ public abstract class NotifyBody {
     protected Map<String,List<List<String>>> rows;
     protected final String env;
     protected final String gui_url;
-    
+
     private final String name;
     private final String type;
     private String date;
     private int escalation;
     private int count;
-    
+
     public NotifyBody(Access access, final String type, final String name) {
         rows = new TreeMap<>();
         this.name = name;
@@ -70,7 +70,7 @@ public abstract class NotifyBody {
         env = access.getProperty("CASS_ENV","DEVL");
         gui_url = access.getProperty("GUI_URL", "");
     }
-    
+
     public void store(List<String> row) {
         if(!row.isEmpty()) {
             if("info".equals(row.get(0))) {
@@ -84,7 +84,7 @@ public abstract class NotifyBody {
             } else if(type.equals(row.get(0))) {
                 String user = user(row);
                 if(user!=null) {
-                    List<List<String>> lss = rows.get(user); 
+                    List<List<String>> lss = rows.get(user);
                     if(lss == null) {
                         lss = new ArrayList<>();
                         rows.put(user,lss);
@@ -98,25 +98,25 @@ public abstract class NotifyBody {
     public String name() {
         return name;
     }
-    
+
     public String type() {
         return type;
     }
-    
+
     public String date() {
         return date;
     }
     public int escalation() {
         return escalation;
     }
-    
+
     public Set<String> users() {
         return rows.keySet();
     }
-    
+
     /**
      * ID must be set from Row for Email lookup
-     * 
+     *
      * @param trans
      * @param n
      * @param id
@@ -124,30 +124,30 @@ public abstract class NotifyBody {
      * @return
      */
     public abstract boolean body(AuthzTrans trans, StringBuilder sb, int indent, Notify n, String id);
-    
+
     /**
      * Return "null" if user not found in row... Code will handle.
      * @param row
      * @return
      */
     protected abstract String user(List<String> row);
-    
+
     /**
      * Provide a context-sensitive Subject, which includes ENV as well as details
-     * 
+     *
      * @return
      */
     public abstract String subject();
 
     /**
      * Record the fact that a particular Notification was marked as "sent" by Emailer.
-     * 
+     *
      * @param trans
      * @param approver
      * @param ln
      */
     public abstract void record(AuthzTrans trans, StringBuilder query, String id, List<String> notified, LastNotified ln);
-    
+
     /**
      * Get Notify Body based on key of
      * type|name
@@ -155,10 +155,10 @@ public abstract class NotifyBody {
     public static NotifyBody get(String key) {
         return bodyMap.get(key);
     }
-    
+
     /**
      * Return set of loaded NotifyBodies
-     * 
+     *
      */
     public static Collection<NotifyBody> getAll() {
         // Note: The same Notify Body is entered several times with different keys.
@@ -167,11 +167,11 @@ public abstract class NotifyBody {
         set.addAll(bodyMap.values());
         return set;
     }
-    
+
     /**
-     * @param propAccess 
-     * @throws URISyntaxException 
-     * 
+     * @param propAccess
+     * @throws URISyntaxException
+     *
      */
     public static void load(Access access) throws APIException, IOException {
         // class load available NotifyBodies
@@ -199,7 +199,7 @@ public abstract class NotifyBody {
             File dir = new File(url.getFile());
             for( String f : dir.list()) {
                 if(f.endsWith(".class")) {
-                    classNames.add(pkg.getName()+'.'+f.substring(0,f.length()-6));
+                    classNames.add(pkg.getName() + '.' + f.substring(0,f.length() - 6));
                 }
             }
         }
@@ -210,8 +210,8 @@ public abstract class NotifyBody {
                        Constructor<?> cst = c.getConstructor(Access.class);
                         NotifyBody nb = (NotifyBody)cst.newInstance(access);
                         if(nb!=null) {
-                            bodyMap.put("info|"+nb.name, nb);
-                            bodyMap.put(nb.type+'|'+nb.name, nb);
+                            bodyMap.put("info|" + nb.name, nb);
+                            bodyMap.put(nb.type+'|' + nb.name, nb);
                           }
                 }
             } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
@@ -221,14 +221,14 @@ public abstract class NotifyBody {
     }
 
     protected void print(StringBuilder sb, int indent, Object ... objs) {
-        for(int i=0;i<indent;++i) {
+        for(int i = 0; i < indent; ++i) {
             sb.append(' ');
         }
         for(Object o : objs) {
             sb.append(o.toString());
         }
     }
-            
+
     protected void println(StringBuilder sb, int indent, Object ... objs) {
         print(sb,indent,objs);
         sb.append('\n');
@@ -246,15 +246,15 @@ public abstract class NotifyBody {
         }
         return current; // use to set prev...
     }
-    
+
     protected void printCell(StringBuilder sb, int indent, String current) {
         println(sb,indent,"<td>",current,"</td>");
     }
-    
+
     public synchronized void inc() {
         ++count;
     }
-    
+
     public int count() {
         return count;
     }
index 67013a9..1ef8344 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -35,16 +35,16 @@ public abstract class NotifyCredBody extends NotifyBody {
 
     private final String explanation;
     private final String instruction;
-     
+
     public NotifyCredBody(Access access, String name) {
         super(access,"cred",name);
-        
+
         // Default
         explanation = "The following Credentials that you are responsible for "
                 + "are expiring on the dates shown. <br><br>"
                 ;
-                
-        instruction = "<br><h3>Instructions for 'Password':</h3><ul>" 
+
+        instruction = "<br><h3>Instructions for 'Password':</h3><ul>"
                 + "<li><b><i>Click</i></b> on the Fully Qualified ID to ADD a new Password</li>"
                 + "<li><b>REMEMBER!</b> You are not finished until you <ol>"
                 + "<li><b>CHANGE <i>ALL</i></b> the configurations on <b><i>ALL</i></b> your processes!!</li>"
@@ -52,7 +52,7 @@ public abstract class NotifyCredBody extends NotifyBody {
                 + "<li>IF there is a WARNING, click the link for more information</li>"
                 + "</ul>";
     }
-    
+
     /**
      * Default Dynamic Text.  Override is expected
      * @return
@@ -67,15 +67,15 @@ public abstract class NotifyCredBody extends NotifyBody {
         print(sb,indent,dynamic());
         println(sb,indent,instruction);
         println(sb,indent,"<table>");
-        indent+=2;
+        indent += 2;
         println(sb,indent,"<tr>");
-        indent+=2;
+        indent += 2;
         println(sb,indent,"<th>Fully Qualified ID</th>");
         println(sb,indent,"<th>Unique ID</th>");
         println(sb,indent,"<th>Type</th>");
         println(sb,indent,"<th>Expires</th>");
         println(sb,indent,"<th>Warnings</th>");
-        indent-=2;
+        indent -= 2;
         println(sb,indent,"</tr>");
         String theid;
         String type;
@@ -97,13 +97,13 @@ public abstract class NotifyCredBody extends NotifyBody {
                     type = "Unknown, see AAF GUI";
                     break;
             }
-            theid = "<a href=\""+n.guiURL+"/creddetail?ns="+row.get(2)+"\">"+theid+"</a>";
+            theid = "<a href=\"" + n.guiURL + "/creddetail?ns=" + row.get(2) + "\">" + theid + "</a>";
             gc.setTimeInMillis(Long.parseLong(row.get(5)));
             expires = Chrono.niceUTCStamp(gc);
             info = row.get(6);
-            //TODO get Warnings 
+            //TODO get Warnings
             warnings = "";
-            
+
             println(sb,indent,"<tr>");
             indent+=2;
             printCell(sb,indent,theid);
@@ -116,10 +116,10 @@ public abstract class NotifyCredBody extends NotifyBody {
         }
         indent-=2;
         println(sb,indent,"</table>");
-        
+
         return true;
     }
-    
+
     @Override
     public void record(AuthzTrans trans, StringBuilder query, String id, List<String> notified, LastNotified ln) {
         for(List<String> row : rows.get(id)) {
index 76a4416..cfb0f3c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,7 +47,7 @@ public class NotifyPendingApprBody extends NotifyBody {
             rv = true;
             break; // only one
         }
-        
+
         return rv;
     }
 
@@ -64,7 +64,7 @@ public class NotifyPendingApprBody extends NotifyBody {
         return String.format("AAF Pending Approval Notification (ENV: %s)",env);
     }
 
-    
+
     @Override
     public void record(AuthzTrans trans, StringBuilder query, String id, List<String> notified, LastNotified lastN) {
         for(String n : notified) {
@@ -72,7 +72,7 @@ public class NotifyPendingApprBody extends NotifyBody {
             lastN.update(query,n,"pending","");
         }
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.batch.reports.bodies.NotifyBody#store(java.util.List)
      */
index d4c0463..1c1a25a 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -29,12 +29,12 @@ public class OneMonthNotifyCredBody extends NotifyCredBody {
     public OneMonthNotifyCredBody(Access access) {
         super(access, ExpireRange.ONE_MONTH);
     }
-    
+
     @Override
     public String subject() {
         return String.format("AAF One Month Credential Notification (ENV: %s)",env);
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.batch.reports.bodies.NotifyCredBody#dynamic()
      */
index 3362a25..bd7a0df 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -34,7 +34,7 @@ public class OneWeekNotifyCredBody extends NotifyCredBody {
     public String subject() {
         return String.format("AAF Final Week Credential Notification (ENV: %s)",env);
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.batch.reports.bodies.NotifyCredBody#dynamic()
      */
index 1a04775..d986e58 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -29,7 +29,7 @@ public class TwoMonthNotifyCredBody extends NotifyCredBody {
     public TwoMonthNotifyCredBody(Access access) {
         super(access, ExpireRange.TWO_MONTH);
     }
-    
+
     @Override
     public String subject() {
         return String.format("AAF Two Month Credential Notification (ENV: %s)",env);
index a802bb4..0264d34 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -33,7 +33,7 @@ public class TwoWeeksNotifyCredBody extends NotifyCredBody {
     public String subject() {
         return String.format("AAF Two Week Credential Notification (ENV: %s)",env);
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.batch.reports.bodies.NotifyCredBody#dynamic()
      */
index e2d052a..e316457 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,11 +52,11 @@ import com.datastax.driver.core.Row;
 public class DataMigrateDublin extends Batch {
     private final SecureRandom sr;
     private final AuthzTrans noAvg;
-    
+
     public DataMigrateDublin(AuthzTrans trans) throws APIException, IOException, OrganizationException {
         super(trans.env());
         trans.info().log("Starting Connection Process");
-        
+
         noAvg = env.newTransNoAvg();
         noAvg.setUser(new BatchPrincipal("Migrate"));
 
@@ -71,7 +71,7 @@ public class DataMigrateDublin extends Batch {
         } finally {
             tt0.done();
         }
-        
+
         sr = new SecureRandom();
     }
 
@@ -97,7 +97,7 @@ public class DataMigrateDublin extends Batch {
                 switch(type) {
                     case CredDAO.BASIC_AUTH:
                     case CredDAO.BASIC_AUTH_SHA256:
-                        String key = row.getString(0) + '|' + type + '|' + Hash.toHex(row.getBytesUnsafe(3).array()); 
+                        String key = row.getString(0) + '|' + type + '|' + Hash.toHex(row.getBytesUnsafe(3).array());
                         String btag = ba_tag.get(key);
                         if(btag == null) {
                             if(tag==null || tag.isEmpty()) {
@@ -108,7 +108,7 @@ public class DataMigrateDublin extends Batch {
                             }
                             ba_tag.put(key, btag);
                         }
-                        
+
                         if(!btag.equals(tag)) {
                             update(cbl,row,btag);
                         }
@@ -129,9 +129,9 @@ public class DataMigrateDublin extends Batch {
             cbl.flush();
             trans.info().printf("Processes %d cred records, updated %d records in %d batches.", count, cbl.total(), cbl.batches());
             count = 0;
-            
+
             cbl.reset();
-            
+
             trans.info().log("Add Serial to X509 Creds");
             rs = session.execute("SELECT ca, id, x509 FROM authz.x509");
             iter = rs.iterator();
@@ -164,18 +164,18 @@ public class DataMigrateDublin extends Batch {
             trans.error().log(e);
         }
     }
-    
+
     private static class CredInfo {
         public final String id;
         public final int type;
         public final Date expires;
-        
+
         public CredInfo(String id, int type, Date expires) {
             this.id = id;
             this.type = type;
             this.expires = expires;
         }
-        
+
         public void update(CQLBatchLoop cbl, String newtag) {
             StringBuilder sb = cbl.inc();
             sb.append("UPDATE authz.cred SET tag='");
@@ -189,7 +189,7 @@ public class DataMigrateDublin extends Batch {
             sb.append("));");
         }
     }
-        
+
     private void update(CQLBatchLoop cbl, Row row, String newtag) {
         StringBuilder sb = cbl.inc();
         sb.append("UPDATE authz.cred SET tag='");
index 43e234b..c63a8a9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -63,7 +63,7 @@ public class Approvals extends Batch {
     private final String sdate;
     private static final String CSV = ".csv";
     private static final String APPROVALS_NEW = "ApprovalsNew";
-    
+
     public Approvals(AuthzTrans trans) throws APIException, IOException, OrganizationException {
         super(trans.env());
         now = new GregorianCalendar();
@@ -95,13 +95,13 @@ public class Approvals extends Batch {
                 trans.error().printf("CSV File %s does not exist",f.getAbsolutePath());
             }
         }
-        
+
 
         File file = new File(logDir(),APPROVALS_NEW + sdate +CSV);
         CSV approveCSV = new CSV(env.access(),file);
         napproveCW = approveCSV.writer();
         napproveCW.row("info",APPROVALS_NEW,sdate,1);
-        
+
     }
 
     @Override
index 9e080b6..8638100 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -56,11 +56,11 @@ public class Extend extends Batch {
     private List<File> extFiles;
     private final int extendBy;
     private int gcType;
-    
+
     public Extend(AuthzTrans trans) throws APIException, IOException, OrganizationException {
         super(trans.env());
         trans.info().log("Starting Connection Process");
-        
+
         noAvg = env.newTransNoAvg();
         noAvg.setUser(new BatchPrincipal("Extend"));
 
@@ -73,14 +73,14 @@ public class Extend extends Batch {
             } finally {
                 tt.done();
             }
-            cqlBatch = new CQLBatch(noAvg.info(),session); 
+            cqlBatch = new CQLBatch(noAvg.info(),session);
         } finally {
             tt0.done();
         }
 
         gcType = GregorianCalendar.WEEK_OF_YEAR;
         int weeks = 4;
-        
+
         Set<String> cmd = new HashSet<>();
         for(int i=0; i< args().length;++i) {
             if("-weeks".equals(args()[i])) {
@@ -91,13 +91,13 @@ public class Extend extends Batch {
                 cmd.add(args()[i]);
             }
         }
-        
+
         if(weeks<1 || weeks > 24) {
             throw new APIException("Invalid --weeks");
         }
         extendBy = weeks;
 
-        // Create Intermediate Output 
+        // Create Intermediate Output
         File logDir = logDir();
         extFiles = new ArrayList<>();
         if(cmd.isEmpty()) {
@@ -107,7 +107,7 @@ public class Extend extends Batch {
                 extFiles.add(new File(logDir, fn));
             }
         }
-        
+
         // Load Cred.  We don't follow Visitor, because we have to gather up everything into Identity Anyway
         // to find the last one.
     }
@@ -130,7 +130,7 @@ public class Extend extends Batch {
             CSV csv = new CSV(env.access(),f);
             try {
                 csv.visit(new CSV.Visitor() {
-                    final Holder<Integer> hi = new Holder<>(0); 
+                    final Holder<Integer> hi = new Holder<>(0);
 
                     @Override
                     public void visit(List<String> row) throws IOException, CadiException {
@@ -138,7 +138,8 @@ public class Extend extends Batch {
                         int i = hi.get();
                         StringBuilder sb = hsb.get();
                         if(sb==null) {
-                            hsb.set(sb=cqlBatch.begin());
+                            sb=cqlBatch.begin();
+                            hsb.set(sb);
                         }
                         switch(row.get(0)) {
                             case "info":
@@ -189,7 +190,8 @@ public class Extend extends Batch {
                         if(i%maxBatch==0 && sb!=null) {
                             cqlBatch.execute(dryRun);
                             hi.set(1);
-                            hsb.set(sb=null);
+                            sb=null;
+                            hsb.set(sb);
                         }
                     }
                 });
@@ -197,12 +199,12 @@ public class Extend extends Batch {
                 e.printStackTrace();
             }
         }
-        
+
         // Cleanup, if required.
         cqlBatch.execute(dryRun);
 
     }
-    
+
     @Override
     protected void _close(AuthzTrans trans) {
         trans.info().log("End " + this.getClass().getSimpleName() + " processing" );
index 89fbfac..087ab95 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -76,9 +76,7 @@ public class Remove extends Batch {
             } finally {
                 tt2.done();
             }
-            cqlBatch = new CQLBatch(noAvg.info(),session); 
-
-
+            cqlBatch = new CQLBatch(noAvg.info(),session);
         } finally {
             tt0.done();
         }
@@ -87,7 +85,7 @@ public class Remove extends Batch {
     @Override
     protected void run(AuthzTrans trans) {
 
-        // Create Intermediate Output 
+        // Create Intermediate Output
         File logDir = logDir();
 
         List<File> remove = new ArrayList<>();
@@ -116,7 +114,7 @@ public class Remove extends Batch {
         SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
         hdd.yr_mon = Integer.parseInt(sdf.format(new Date()));
 
-        try { 
+        try {
             final CQLBatchLoop cbl = new CQLBatchLoop(cqlBatch,50,dryRun);
             for(File f : remove) {
                 trans.info().log("Processing ",f.getAbsolutePath(),"for Deletions");
@@ -140,9 +138,9 @@ public class Remove extends Batch {
                                         ur.set(true);
                                     }
                                     //TODO If deleted because Role is no longer there, double check...
-                                    
+
                                     UserRole.batchDelete(cbl.inc(),row);
-                                    hdd.target=UserRoleDAO.TABLE; 
+                                    hdd.target=UserRoleDAO.TABLE;
                                     hdd.subject=UserRole.histSubject(row);
                                     hdd.memo=UserRole.histMemo(memoFmt.get(), row);
                                     historyDAO.createBatch(cbl.inc(), hdd);
@@ -152,7 +150,7 @@ public class Remove extends Batch {
                                         cred.set(true);
                                     }
                                     Cred.batchDelete(cbl.inc(),row);
-                                    hdd.target=CredDAO.TABLE; 
+                                    hdd.target=CredDAO.TABLE;
                                     hdd.subject=Cred.histSubject(row);
                                     hdd.memo=Cred.histMemo(memoFmt.get(), orgName,row);
                                     historyDAO.createBatch(cbl.inc(), hdd);
@@ -162,7 +160,7 @@ public class Remove extends Batch {
                                         x509.set(true);
                                     }
                                     X509.batchDelete(cbl.inc(),row);
-                                    hdd.target="x509"; 
+                                    hdd.target="x509";
                                     hdd.subject=X509.histSubject(row);
                                     hdd.memo=X509.histMemo(memoFmt.get(),row);
                                     historyDAO.createBatch(cbl.inc(), hdd);
index e2580ae..b0db0a7 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -53,7 +53,7 @@ public class Upload extends Batch {
     public Upload(AuthzTrans trans) throws APIException, IOException, OrganizationException {
         super(trans.env());
         trans.info().log("Starting Connection Process");
-        
+
         TimeTaken tt0 = trans.start("Cassandra Initialization", Env.SUB);
         try {
             TimeTaken tt = trans.start("Connect to Cluster", Env.REMOTE);
@@ -62,9 +62,9 @@ public class Upload extends Batch {
             } finally {
                 tt.done();
             }
-            
+
             cqlBatch = new CQLBatch(LogTarget.NULL,session);
-            
+
             feeds=new HashMap<>();
             new Feed(feeds,"ns",1,"name,description,parent,scope=int,type=int",300);
             new Feed(feeds,"notified",3,"user,target,key,last",300);
@@ -114,7 +114,7 @@ public class Upload extends Batch {
                 trans.info().log(msg);
                 System.out.println(msg);
                 CQLBatchLoop cbl = new CQLBatchLoop(cqlBatch,feed.batchSize,dryRun).showProgress();
-                
+
                 try {
                     if(file.exists()) {
                         CSV csv = new CSV(trans.env().access(),file).setDelimiter('|');
@@ -135,7 +135,7 @@ public class Upload extends Batch {
             }
         }
     }
-    
+
     @Override
     protected void _close(AuthzTrans trans) {
         session.close();
@@ -162,7 +162,7 @@ public class Upload extends Batch {
             }
             feeds.put(feed,this);
         }
-        
+
         public String getName() {
             return name;
         }
@@ -198,7 +198,7 @@ public class Upload extends Batch {
                             break;
                           default:
                             values.append('\'');
-                            values.append(value.replaceAll("'","''"));                            
+                            values.append(value.replaceAll("'","''"));
                             values.append('\'');
                         }
                     } else switch(type) {
@@ -210,7 +210,7 @@ public class Upload extends Batch {
                             default:
                                 values.append(value);
                                 break;
-                                
+
                     }
                 }
             }
index 10f7a2b..438e14b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,20 +55,20 @@ import com.datastax.driver.core.ResultSet;
 import com.datastax.driver.core.Session;
 
 public class JU_ApprovalSetTest {
-    
+
     @Mock
     AuthzTrans trans;
     @Mock
     Cluster cluster;
     @Mock
     PropAccess access;
-    
+
     @Mock
     ApprovalSet actionObj;
 
     @Mock
     DataView dv;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -82,7 +82,7 @@ public class JU_ApprovalSetTest {
             Mockito.doReturn(Mockito.mock(TimeTaken.class)).when(trans).start(Mockito.anyString(),Mockito.anyInt());
             Mockito.doReturn(sessionObj).when(cluster).connect("authz");
             Mockito.doReturn(psObj).when(sessionObj).prepare(Mockito.anyString());
-            
+
             Mockito.doReturn(Mockito.mock(ColumnDefinitions.class)).when(psObj).getVariables();
             Mockito.doReturn(Mockito.mock(PreparedId.class)).when(psObj).getPreparedId();
             Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
@@ -95,23 +95,23 @@ public class JU_ApprovalSetTest {
             e.printStackTrace();
         }
    }
-    
+
     @Test
     public void testPuntDate() {
         actionObj.write(trans);
         ApprovalDAO.Data dataObj = new ApprovalDAO.Data();
-        
+
         Result<FutureDAO.Data> rs1 = new Result<FutureDAO.Data>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(dv).insert(Mockito.any(AuthzTrans.class), Mockito.any(FutureDAO.Data.class));
         Mockito.doReturn(rs1).when(dv).insert(Mockito.any(AuthzTrans.class), Mockito.any(ApprovalDAO.Data.class));
         actionObj.ladd.add(dataObj);
         Result<Void> retVal = actionObj.write(trans);
-        
+
         rs1 = new Result<FutureDAO.Data>(null,1,"test",new Object[0]);
         Mockito.doReturn(rs1).when(dv).insert(Mockito.any(AuthzTrans.class), Mockito.any(ApprovalDAO.Data.class));
         retVal = actionObj.write(trans);
         assertTrue("Security - test".equals(retVal.details));
-        
+
         actionObj.ladd.add(dataObj);
         retVal = actionObj.write(trans);
         assertTrue(retVal.details.contains("Security - test"));
@@ -119,32 +119,32 @@ public class JU_ApprovalSetTest {
         Mockito.doReturn(rs1).when(dv).insert(Mockito.any(AuthzTrans.class), Mockito.any(FutureDAO.Data.class));
         retVal = actionObj.write(trans);
         assertTrue(retVal.details.contains("Security - test"));
-        
+
         actionObj.setConstruct(null);
         actionObj.setExpires(new GregorianCalendar());
         actionObj.setMemo("");
         actionObj.ladd = null;
         actionObj.write(trans);
     }
-    
+
     @Test
     public void testHasApprovals() {
         assertFalse(actionObj.hasApprovals());
-        
+
         ApprovalDAO.Data dataObj = new ApprovalDAO.Data();
         actionObj.ladd.add(dataObj);
         assertTrue(actionObj.hasApprovals());
     }
-    
+
     @Test
     public void testApprovers() {
         Set<String> retVal = actionObj.approvers();
         assertTrue(retVal.size() == 0);
-        
+
         ApprovalDAO.Data dataObj = new ApprovalDAO.Data();
         actionObj.ladd.add(dataObj);
         retVal = actionObj.approvers();
         assertTrue(retVal.size() == 1);
-        
+
     }
 }
index eca5ed7..85d346b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index dd9527a..0adbd9f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index b918c31..2ddd984 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index aef5d22..4e60a65 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index a826a98..3c8f33d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 1b41f9e..16e4808 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -61,7 +61,7 @@ public class JU_Approval {
         Assert.assertEquals("org.onap.ns.admin",
                 Approval.roleFromMemo(Approval.RE_VALIDATE_ADMIN + "org.onap.ns]"));
         Assert.assertEquals("org.onap.ns.owner", Approval.roleFromMemo(Approval.RE_VALIDATE_OWNER + "org.onap.ns]"));
-        Assert.assertEquals("org.onap.ns.member", Approval.roleFromMemo(Approval.RE_APPROVAL_IN_ROLE 
+        Assert.assertEquals("org.onap.ns.member", Approval.roleFromMemo(Approval.RE_APPROVAL_IN_ROLE
                 + "bob] + [org.onap.ns.member] - Expires 2018-12-25"));
     }
 
index 27d2d3c..50305d0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,13 +40,13 @@ import org.junit.Test;
 public class JU_CacheChange {
 
     CacheChange cc;
-    
-    
+
+
     @Before
     public void setUp() {
         cc = new CacheChange();
     }
-    
+
     @Test
     public void testDelayedDelete() {
         cc.delayedDelete(null);
@@ -57,19 +57,19 @@ public class JU_CacheChange {
         List list = cc.getRemoved();
         Assert.assertNotNull(list);
     }
-    
+
     @Test
     public void testResetLocalData() {
         cc.resetLocalData();
     }
-    
+
     @Test
     public void testCacheSize() {
         int size;
         size = cc.cacheSize();
         Assert.assertEquals(0, size);
     }
-    
+
     @Test
     public void testContains() {
         boolean containsBools;
index 2a266f5..c8c27b1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,7 +38,7 @@ import static org.mockito.Mockito.*;
 import org.junit.Test;
 
 public class JU_Creator {
-    
+
     CreatorStub creatorStub;
 
     private class CreatorStub extends Creator{
@@ -54,14 +54,14 @@ public class JU_Creator {
             // TODO Auto-generated method stub
             return "Select";                    //Changed from null to Select
         }
-        
+
     }
-    
+
     @Before
     public void setUp() {
         creatorStub = new CreatorStub();
     }
-    
+
     @Test
     public void testQuery() {
         creatorStub.select();
index 05a4166..db80bbf 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,7 +50,7 @@ import java.util.Date;
 import org.junit.Test;
 
 public class JU_Cred {
-    
+
     private ByteArrayOutputStream outStream;
     private ByteArrayOutputStream errStream;
     Cred cred;
@@ -78,43 +78,43 @@ public class JU_Cred {
         prop.setProperty(Config.AAF_ROOT_NS, "org.onap.aaf");
         prop.setProperty(Config.AAF_ROOT_COMPANY,"test");
         Define.set(prop);
-        
+
         instance = new Instance(12, date, integer, 125642678910L,"234");
         cred = new Cred("myid1234@aaf.att.com");
     }
-    
+
     @Test
-    public void testLast() {        //TODO: set instances 
+    public void testLast() {        //TODO: set instances
         Assert.assertNull(cred.last(null));
     }
-    
+
     @Test
-    public void testTypes() {        //TODO: set instances 
+    public void testTypes() {        //TODO: set instances
         Assert.assertNotNull(cred.types());
     }
-    
+
     @Test
-    public void testCount() {        //TODO: set instances 
+    public void testCount() {        //TODO: set instances
         Assert.assertNotNull(cred.count(3));
     }
-    
+
     @Test
-    public void testToString() {        //TODO: set instances 
+    public void testToString() {        //TODO: set instances
         Assert.assertEquals("myid1234@aaf.att.com[]", cred.toString());
     }
-    
+
     @Test
-    public void testHashCode() {        //TODO: set instances 
+    public void testHashCode() {        //TODO: set instances
         Assert.assertEquals(-1619358251, cred.hashCode());
     }
-    
+
     @Test
-    public void testEquals() {        //TODO: set instances 
+    public void testEquals() {        //TODO: set instances
         Assert.assertEquals(true, cred.equals("myid1234@aaf.att.com"));
     }
-    
+
     @Test
-    public void testInc() {        
+    public void testInc() {
         Date begin = new Date(date.getTime() - 10);
         Date after = new Date(date.getTime() + 10);
         cc.inc(-1, begin, after);
@@ -122,17 +122,17 @@ public class JU_Cred {
         cc.inc(2, begin, after);
         cc.inc(200, begin, after);
     }
-    
+
     @Test
-    public void testAuthCount() {        //TODO: set instances 
+    public void testAuthCount() {        //TODO: set instances
         Assert.assertEquals(0, cc.authCount(1));
     }
-    
+
     @Test
-    public void testX509Count() {        //TODO: set instances 
+    public void testX509Count() {        //TODO: set instances
         Assert.assertEquals(0, cc.x509Count(0));
     }
-    
+
     @After
     public void cleanUp() {
         System.setErr(System.err);
index 81b7c96..77eafc4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,18 +35,18 @@ public class JU_ExpireRange {
     public void test() {
         ExpireRange expRange = new ExpireRange(new PropAccess());
         Date now = expRange.now();
-        
+
         Set<String> names=expRange.names();
         assertTrue(names.contains("OneMonth"));
         assertTrue(names.contains("OneWeek"));
         assertTrue(names.contains("Delete"));
         assertFalse(names.contains(null));
         assertFalse(names.contains("bogus"));
-        
+
         ExpireRange.Range r;
         GregorianCalendar gc = new GregorianCalendar();
         String[] all = new String[] {"ur","cred"};
-        
+
         // Test 3 weeks prior
         gc.setTime(now);
         gc.add(GregorianCalendar.WEEK_OF_MONTH,-3);
@@ -55,7 +55,7 @@ public class JU_ExpireRange {
             assertNotNull(r);
             assertEquals("Delete",r.name());
         }
-        
+
         // Test 1 week prior
         gc.setTime(now);
         gc.add(GregorianCalendar.WEEK_OF_MONTH,-1);
@@ -63,7 +63,7 @@ public class JU_ExpireRange {
             r = expRange.getRange(rs, gc.getTime());
             assertNull(r);
         }
-        
+
         // Test Today
         r = expRange.getRange("cred", now);
         assertNotNull(r);
index 7a94b9f..0adea2c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 3d71614..e72b55e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index ad53e0e..050f681 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,11 +31,11 @@ import org.onap.aaf.auth.batch.helpers.Role;
 import junit.framework.Assert;
 
 public class JU_Role {
-    
+
     Role shortRole;
     Role longRole;
     Set set;
-    
+
     @Before
     public void setUp() {
         set = new HashSet();
@@ -47,36 +47,36 @@ public class JU_Role {
     public void testEncode() {
         Assert.assertEquals("ns|name", longRole.encode());
     }
-    
+
     @Test
     public void testFullName() {
         Assert.assertEquals("ns.name", longRole.fullName());
         Assert.assertEquals("full", shortRole.fullName());
-        
+
         longRole.fullName("test");
     }
-    
+
     @Test
     public void testToString() {
         Assert.assertEquals("ns|name", longRole.toString());
     }
-    
+
     @Test
     public void testHashCode() {
         Assert.assertEquals(-2043567518, longRole.hashCode());
     }
-    
+
     @Test
     public void testEquals() {
         Assert.assertEquals(false, longRole.equals(longRole));
     }
-    
+
     @Test
     public void testCompareTo() {
         Assert.assertEquals(-14, longRole.compareTo(shortRole));
         Assert.assertEquals(14, shortRole.compareTo(longRole));
     }
-    
+
     @Test
     public void testStageRemove() {
         longRole.stageRemove(shortRole);
index 50833d0..efda1af 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 1ef6f3b..49cedaf 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,7 +48,7 @@ public class JU_Batch {
 
     AuthzEnv env;
     Batch batch;
-    
+
     private class BatchStub extends Batch {
 
         protected BatchStub(AuthzEnv env) throws APIException, IOException, OrganizationException {
@@ -59,17 +59,17 @@ public class JU_Batch {
         @Override
         protected void run(AuthzTrans trans) {
             // TODO Auto-generated method stub
-            
+
         }
 
         @Override
         protected void _close(AuthzTrans trans) {
             // TODO Auto-generated method stub
-            
+
         }
 
     }
-    
+
     @Before
     public void setUp() throws OrganizationException {
         env = new AuthzEnv();
@@ -82,7 +82,7 @@ public class JU_Batch {
         env.setProperty("CASS_ENV", "test");
         env.setProperty("test.VERSION", "test.VERSION");
     }
-    
+
     @Test
     public void testIsSpecial() throws APIException, IOException, OrganizationException {
         //BatchStub bStub = new BatchStub(env);
index 47a7c27..823ee28 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,12 +41,12 @@ public class JU_BatchException {
     BatchException bExcept4;
     BatchException bExcept5;
     Throwable throwable;
-    
+
     @Before
     public void setUp() {
         throwable = new Throwable();
     }
-    
+
     @Test
     public void testBatchException() {
         bExcept1 = new BatchException();
index 4e5ad67..1271d7c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ import org.junit.Test;
 public class JU_BatchPrincipal {
 
     BatchPrincipal bPrincipal;
-    
+
     @Test
     public void testBatchPrincipal() {
         bPrincipal = new BatchPrincipal("name");
index dfb3081..6f2bcd1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,9 +39,9 @@ import java.io.IOException;
 import org.junit.Test;
 
 public class JU_CassBatch {
-    
+
     AuthzTrans aTrans;
-    
+
     private class CassBatchStub extends CassBatch {
 
         protected CassBatchStub(AuthzTrans trans, String log4jName)
@@ -53,11 +53,11 @@ public class JU_CassBatch {
         @Override
         protected void run(AuthzTrans trans) {
             // TODO Auto-generated method stub
-            
+
         }
-        
+
     }
-    
+
     @Before
     public void setUp() throws APIException, IOException, OrganizationException {
         aTrans = mock(AuthzTrans.class);
index d0e4eaa..c68768e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,14 +54,14 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
     protected static final int ASSIGNMENT_COMMAS = 2;
     protected static final int WHERE_ANDS = 3;
 
-    private Cluster cluster; 
+    private Cluster cluster;
     /*
      * From DataStax
      * com.datastax.driver.core.Session
-        A session holds connections to a Cassandra cluster, allowing it to be queried. Each session maintains multiple connections to the cluster nodes, 
-        provides policies to choose which node to use for each query (round-robin on all nodes of the cluster by default), and handles retries for 
+        A session holds connections to a Cassandra cluster, allowing it to be queried. Each session maintains multiple connections to the cluster nodes,
+        provides policies to choose which node to use for each query (round-robin on all nodes of the cluster by default), and handles retries for
         failed query (when it makes sense), etc...
-        Session instances are thread-safe and usually a single instance is enough per application. However, a given session can only be set to one 
+        Session instances are thread-safe and usually a single instance is enough per application. However, a given session can only be set to one
         keyspace at a time, so one instance per keyspace is necessary.
      */
     private Session session;
@@ -73,10 +73,10 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
 //    private static Slot sessionSlot; // not used since 2015
     private static final ArrayList<AbsCassDAO<? extends TransStore,?>.PSInfo> psinfos = new ArrayList<>();
     private static final List<Object> EMPTY = new ArrayList<>(0);
-    private static final Deque<ResetRequest> resetDeque = new ConcurrentLinkedDeque<ResetRequest>();
+    private static final Deque<ResetRequest> resetDeque = new ConcurrentLinkedDeque<>();
     private static boolean resetTrigger = false;
     private static long nextAvailableReset = 0;
-    
+
     public AbsCassDAO(TRANS trans, String name, Cluster cluster, String keyspace, Class<DATA> dataClass) {
         this.name = name;
         this.cluster = cluster;
@@ -95,11 +95,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
         owningDAO = aDao;
         this.dataClass = dataClass;
     }
-    
-// Not used since 2015
-//    public static void setSessionSlot(Slot slot) {
-//        sessionSlot = slot;
-//    }
+
 
     //Note: Lower case ON PURPOSE. These names used to create History Messages
     public enum CRUD {
@@ -117,7 +113,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
 
         /**
          * Create a PSInfo and create Prepared Statement
-         * 
+         *
          * @param trans
          * @param theCQL
          * @param loader
@@ -137,7 +133,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
             } else {
                 crud = CRUD.read;
             }
-            
+
             int idx = 0, count=0;
             while ((idx=cql.indexOf('?',idx))>=0) {
                 ++idx;
@@ -145,14 +141,14 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
             }
             size=count;
         }
-        
+
         public synchronized void reset() {
             ps = null;
         }
-        
+
         private synchronized BoundStatement ps(TransStore trans) throws APIException, IOException {
             /* From Datastax
-                You should prepare only once, and cache the PreparedStatement in your application (it is thread-safe). 
+                You should prepare only once, and cache the PreparedStatement in your application (it is thread-safe).
                 If you call prepare multiple times with the same query string, the driver will log a warning.
             */
             if (ps==null) {
@@ -173,7 +169,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
 
         /**
          * Execute a Prepared Statement by extracting from DATA object
-         * 
+         *
          * @param trans
          * @param text
          * @param data
@@ -194,7 +190,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
 
         /**
          * Execute a Prepared Statement on Object[] key
-         * 
+         *
          * @param trans
          * @param text
          * @param objs
@@ -211,15 +207,15 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
                 tt.done();
             }
         }
-        
-        /* 
+
+        /*
          * Note:
-         * 
+         *
          */
 
         /**
          * Execute a Prepared Statement by extracting from DATA object
-         * 
+         *
          * @param trans
          * @param text
          * @param data
@@ -231,15 +227,15 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
                 /*
                  * "execute" (and executeAsync)
                  * Executes the provided query.
-                    This method blocks until at least some result has been received from the database. However, 
-                    for SELECT queries, it does not guarantee that the result has been received in full. But it 
-                    does guarantee that some response has been received from the database, and in particular 
+                    This method blocks until at least some result has been received from the database. However,
+                    for SELECT queries, it does not guarantee that the result has been received in full. But it
+                    does guarantee that some response has been received from the database, and in particular
                     guarantee that if the request is invalid, an exception will be thrown by this method.
 
                     Parameters:
                     statement - the CQL query to execute (that can be any Statement).
                     Returns:
-                        the result of the query. That result will never be null but can be empty (and will 
+                        the result of the query. That result will never be null but can be empty (and will
                         be for any non SELECT query).
                  */
                 return Result.ok(getSession(trans).execute(
@@ -254,7 +250,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
 
         /**
          * Execute a Prepared Statement on Object[] key
-         * 
+         *
          * @param trans
          * @param text
          * @param objs
@@ -281,12 +277,12 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
          */
         public Result<List<DATA>> read(TRANS trans, String text, Object[] key) {
             TimeTaken tt = trans.start(text,Env.REMOTE);
-            
+
             ResultSet rs;
             try {
                 rs = getSession(trans).execute(key==null?ps(trans):ps(trans).bind(key));
-/// TEST CODE for Exception                
-//                boolean force = true; 
+/// TEST CODE for Exception
+//                boolean force = true;
 //                if (force) {
 //                    Map<InetSocketAddress, Throwable> misa = new HashMap<>();
 //                    //misa.put(new InetSocketAddress(444),new Exception("no host was tried"));
@@ -301,20 +297,20 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
             } finally {
                 tt.done();
             }
-            
+
             return extract(loader,rs,null /*let Array be created if necessary*/,dflt);
         }
-        
+
         public Result<List<DATA>> read(TRANS trans, String text, DATA data) {
             return read(trans,text, loader.extract(data, size, crud));
         }
-        
+
         public Object[] keyFrom(DATA data) {
             return loader.extract(data, size, CRUD.delete); // Delete is key only
         }
 
         /*
-         * Note: in case PSInfos are deleted, we want to remove them from list.  This is not expected, 
+         * Note: in case PSInfos are deleted, we want to remove them from list.  This is not expected,
          * but we don't want a data leak if it does.  Finalize doesn't have to happen quickly
          */
         @Override
@@ -339,7 +335,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
         } else {
             DATA d;
             List<DATA> data = indata==null?new ArrayList<>(rows.size()):indata;
-            
+
             for (Row row : rows) {
                 try {
                     d = loader.load(dataClass.newInstance(),row);
@@ -353,7 +349,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
             return Result.ok(data);
         }
     }
-    
+
     private static final String NEW_CASSANDRA_SESSION_CREATED = "New Cassandra Session Created";
     private static final String NEW_CASSANDRA_CLUSTER_OBJECT_CREATED = "New Cassandra Cluster Object Created";
     private static final String NEW_CASSANDRA_SESSION = "New Cassandra Session";
@@ -363,14 +359,14 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
         //package on purpose
         Session session;
         long timestamp;
-        
+
         public ResetRequest(Session session) {
             this.session = session;
             timestamp = System.currentTimeMillis();
         }
     }
 
-    
+
     public static final void primePSIs(TransStore trans) throws APIException, IOException {
         for (AbsCassDAO<? extends TransStore, ?>.PSInfo psi : psinfos) {
             if (psi.ps==null) {
@@ -378,7 +374,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
             }
         }
     }
-    
+
     public final Session getSession(TransStore trans) throws APIException, IOException {
         // SessionFilter unused since 2015
         // Try to use Trans' session, if exists
@@ -388,12 +384,12 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
 //                return sess;
 //            }
 //        }
-        
+
         // If there's an owning DAO, use it's session
-        if (owningDAO!=null) { 
+        if (owningDAO!=null) {
             return owningDAO.getSession(trans);
         }
-        
+
         // OK, nothing else works... get our own.
         if (session==null || resetTrigger) {
             Cluster tempCluster = null;
@@ -414,7 +410,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
                             }
                         }
                     }
-    
+
                     if (reset || session == null) {
                         TimeTaken tt = trans.start(NEW_CASSANDRA_SESSION, Env.SUB);
                         try {
@@ -458,7 +454,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
         }
         return session;
     }
-    
+
     public final boolean reportPerhapsReset(TransStore trans, Exception e) {
         if (owningDAO!=null) {
             return owningDAO.reportPerhapsReset(trans, e);
@@ -468,7 +464,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
                 trans.warn().printf("Session Reset called for %s by %s ",session==null?"":session,e==null?"Mgmt Command":e.getClass().getName());
                 resetDeque.addFirst(new ResetRequest(session));
                 rv = resetTrigger = true;
-            } 
+            }
             trans.error().log(e);
             return rv;
         }
@@ -494,7 +490,7 @@ public abstract class AbsCassDAO<TRANS extends TransStore,DATA> {
 
     protected void wasModified(TRANS trans, CRUD modified, DATA data, String ... override) {
     }
-    
+
     protected interface Accept<DATA> {
         public boolean ok(DATA data);
     }
index 965ee2c..617f772 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index b148e87..13bd350 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,7 +30,7 @@ public interface CIDAO<TRANS extends Trans> {
 
     /**
      * Touch the date field for given Table
-     *  
+     *
      * @param trans
      * @param name
      * @return
@@ -39,9 +39,9 @@ public interface CIDAO<TRANS extends Trans> {
 
     /**
      * Read all Info entries, and set local Date objects
-     * 
+     *
      * This is to support regular data checks on the Database to speed up Caching behavior
-     * 
+     *
      */
     public abstract Result<Void> check(TRANS trans);
 
index 818ae14..1894682 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -24,9 +24,9 @@ package org.onap.aaf.auth.dao;
 /**
  * Interface to obtain Segment Integer from DAO Data
  * for use in Caching mechanism
- * 
+ *
  * This should typically be obtained by getting the Hash of the key, then using modulus on the size of segment.
- * 
+ *
  * @author Jonathan
  *
  */
index 5605d65..a3fe175 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -40,7 +40,7 @@ import org.onap.aaf.misc.env.Trans;
 public class Cached<TRANS extends Trans, DATA extends Cacheable> extends Cache<TRANS,DATA> {
     // Java does not allow creation of Arrays with Generics in them...
     protected final CIDAO<TRANS> info;
-    
+
     private static Timer infoTimer;
     private Object cache[];
     public final int segSize;
@@ -73,7 +73,7 @@ public class Cached<TRANS extends Trans, DATA extends Cacheable> extends Cache<T
         }
         return h%segSize;
     }
-    
+
     public void add(String key, List<DATA> data) {
         @SuppressWarnings("unchecked")
         Map<String,Dated> map = ((Map<String,Dated>)cache[cacheIdx(key)]);
@@ -105,21 +105,21 @@ public class Cached<TRANS extends Trans, DATA extends Cacheable> extends Cache<T
     public interface Getter<D> {
         public abstract Result<List<D>> get();
     };
-    
+
     // TODO utilize Segmented Caches, and fold "get" into "reads"
     @SuppressWarnings("unchecked")
     public Result<List<DATA>> get(TRANS trans, String key, Getter<DATA> getter) {
         List<DATA> ld = null;
         Result<List<DATA>> rld = null;
-        
+
         int cacheIdx = cacheIdx(key);
         Map<String, Dated> map = ((Map<String,Dated>)cache[cacheIdx]);
-        
+
         // Check for saved element in cache
         Dated cached = map.get(key);
         // Note: These Segment Timestamps are kept up to date with DB
         Date dbStamp = info.get(trans, name,cacheIdx);
-        
+
         // Check for cache Entry and whether it is still good (a good Cache Entry is same or after DBEntry, so we use "before" syntax)
         if (cached!=null && dbStamp!=null && dbStamp.before(cached.timestamp)) {
             ld = (List<DATA>)cached.data;
@@ -139,7 +139,7 @@ public class Cached<TRANS extends Trans, DATA extends Cacheable> extends Cache<T
      * @param dao
      */
     public static void startCleansing(AuthzEnv env, CachedDAO<?,?,?> ... dao) {
-        for (CachedDAO<?,?,?> d : dao) {  
+        for (CachedDAO<?,?,?> d : dao) {
             for (int i=0;i<d.segSize;++i) {
                 startCleansing(env, d.table()+i);
             }
@@ -150,11 +150,11 @@ public class Cached<TRANS extends Trans, DATA extends Cacheable> extends Cache<T
     public static<T extends Trans> void startRefresh(AuthzEnv env, CIDAO<AuthzTrans> cidao) {
         if (infoTimer==null) {
             infoTimer = new Timer("CachedDAO Info Refresh Timer");
-            int minRefresh = 10*1000*60; // 10 mins Integer.parseInt(env.getProperty(CACHE_MIN_REFRESH_INTERVAL,"2000")); // 2 second minimum refresh 
+            int minRefresh = 10*1000*60; // 10 mins Integer.parseInt(env.getProperty(CACHE_MIN_REFRESH_INTERVAL,"2000")); // 2 second minimum refresh
             infoTimer.schedule(new Refresh(env,cidao, minRefresh), 1000, minRefresh); // note: Refresh from DB immediately
         }
     }
-    
+
     public static void stopTimer() {
         Cache.stopTimer();
         if (infoTimer!=null) {
@@ -162,21 +162,21 @@ public class Cached<TRANS extends Trans, DATA extends Cacheable> extends Cache<T
             infoTimer = null;
         }
     }
-    
+
     private static final class Refresh extends TimerTask {
         private static final int MAXREFRESH = 2*60*10000; // 20 mins
         private AuthzEnv env;
         private CIDAO<AuthzTrans> cidao;
         private int minRefresh;
         private long lastRun;
-        
+
         public Refresh(AuthzEnv env, CIDAO<AuthzTrans> cidao, int minRefresh) {
             this.env = env;
             this.cidao = cidao;
             this.minRefresh = minRefresh;
             lastRun = System.currentTimeMillis()-MAXREFRESH-1000;
         }
-        
+
         @Override
         public void run() {
             // Evaluate whether to refresh based on transaction rate
index cf410d0..4e2cd72 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,25 +30,25 @@ import org.onap.aaf.misc.env.Trans;
 
 /**
  * CachedDAO
- * 
- * Cache the response of "get" of any DAO.  
- * 
- * For simplicity's sake, at this time, we only do this for single Object keys  
- * 
+ *
+ * Cache the response of "get" of any DAO.
+ *
+ * For simplicity's sake, at this time, we only do this for single Object keys
+ *
  * @author Jonathan
  *
  * @param <DATA>
  */
-public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extends Cacheable> 
+public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extends Cacheable>
         extends Cached<TRANS,DATA> implements DAO_RO<TRANS,DATA>{
-//    private final String dirty_str; 
-    
+//    private final String dirty_str;
+
     private final D dao;
 
     public CachedDAO(D dao, CIDAO<TRANS> info, int segsize, long expireIn) {
         super(info, dao.table(), segsize, expireIn);
-        
-        // Instantiate a new Cache per DAO name (so separate instances use the same cache) 
+
+        // Instantiate a new Cache per DAO name (so separate instances use the same cache)
         this.dao = dao;
         //read_str = "Cached READ for " + dao.table();
 //        dirty_str = "Cache DIRTY on " + dao.table();
@@ -56,8 +56,8 @@ public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extend
             ((CassDAOImpl<?,?>)dao).cache = this;
         }
     }
-    
-    public static<T extends Trans, DA extends DAO<T,DT>, DT extends Cacheable> 
+
+    public static<T extends Trans, DA extends DAO<T,DT>, DT extends Cacheable>
             CachedDAO<T,DA,DT> create(DA dao, CIDAO<T> info, int segsize, long expireIn) {
         return new CachedDAO<T,DA,DT>(dao,info, segsize, expireIn);
     }
@@ -68,7 +68,7 @@ public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extend
         list.add(data);
         super.add(key,list);
     }
-    
+
 //    public void invalidate(TRANS trans, Object ... objs)  {
 //        TimeTaken tt = trans.start(dirty_str, Env.SUB);
 //        try {
@@ -122,7 +122,7 @@ public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extend
             this.dao = dao;
             this.objs = objs;
         }
-        
+
         /**
          * Separated into single call for easy overloading
          * @return
@@ -130,7 +130,7 @@ public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extend
         public Result<List<DATA>> call() {
             return dao.read(trans, objs);
         }
-        
+
         @Override
         public final Result<List<DATA>> get() {
             return call();
@@ -144,7 +144,7 @@ public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extend
 
     @Override
     public Result<List<DATA>> read(final TRANS trans, final Object ... objs) {
-        DAOGetter getter = new DAOGetter(trans,dao,objs); 
+        DAOGetter getter = new DAOGetter(trans,dao,objs);
         return get(trans, keyFromObjs(objs),getter);
 //        if (ld!=null) {
 //            return Result.ok(ld);//.emptyList(ld.isEmpty());
@@ -156,9 +156,9 @@ public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extend
 //        return getter.result;
     }
 
-    // Slight Improved performance available when String and Obj versions are known. 
+    // Slight Improved performance available when String and Obj versions are known.
     public Result<List<DATA>> read(final String key, final TRANS trans, final Object[] objs) {
-        DAOGetter getter = new DAOGetter(trans,dao,objs); 
+        DAOGetter getter = new DAOGetter(trans,dao,objs);
         return get(trans, key, getter);
 //        if (ld!=null) {
 //            return Result.ok(ld);//.emptyList(ld.isEmpty());
@@ -169,7 +169,7 @@ public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extend
 //        }
 //        return getter.result;
     }
-    
+
     @Override
     public Result<List<DATA>> read(TRANS trans, DATA data) {
         return read(trans,dao.keyFrom(data));
@@ -202,24 +202,24 @@ public class CachedDAO<TRANS extends Trans,D extends DAO<TRANS,DATA>,DATA extend
         data.invalidate(this);
         return rv;
     }
-    
+
     @Override
     public void close(TRANS trans) {
         if (dao!=null) {
             dao.close(trans);
         }
     }
-    
+
 
     @Override
     public String table() {
         return dao.table();
     }
-    
+
     public D dao() {
         return dao;
     }
-    
+
     public void invalidate(TRANS trans, DATA data) {
         if (info.touch(trans, dao.table(),data.invalidate(this)).notOK()) {
         trans.error().log("Cannot touch CacheInfo for Role");
index c5ad459..4246d31 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -93,7 +93,7 @@ public class CassAccess {
                     cb.withCredentials(str, env.decryptor().decrypt(epass));
                 }
             }
-    
+
             str = env.getProperty(pre+CASSANDRA_RESET_EXCEPTIONS,env.getProperty(CASSANDRA_RESET_EXCEPTIONS,null));
             if (str!=null) {
                 env.init().log("Cass ResetExceptions = ",str );
@@ -101,7 +101,7 @@ public class CassAccess {
                     resetExceptions.add(new Resettable(env,ex));
                 }
             }
-    
+
             str = env.getProperty(Config.CADI_LATITUDE);
             Double lat = str!=null && !str.isEmpty()?Double.parseDouble(str):null;
             str = env.getProperty(Config.CADI_LONGITUDE);
@@ -109,9 +109,9 @@ public class CassAccess {
             if (lat == null || lon == null) {
                 throw new APIException(Config.CADI_LATITUDE + " and/or " + Config.CADI_LONGITUDE + " are not set");
             }
-            
+
             env.init().printf("Service Latitude,Longitude = %f,%f",lat,lon);
-            
+
             str = env.getProperty(pre+CASSANDRA_CLUSTERS,env.getProperty(CASSANDRA_CLUSTERS,"localhost"));
             env.init().printf("Cass Clusters = '%s'\n",str );
             String[] machs = Split.split(',', str);
@@ -124,7 +124,7 @@ public class CassAccess {
                 if (minfo.length>0) {
                     cpoints[i]=minfo[0];
                 }
-                
+
                 if (minfo.length>3) {
                     if (minfo[1].equals(bestDC)) {
                         ++numInBestDC;
@@ -143,9 +143,9 @@ public class CassAccess {
                     }
                 }
             }
-            
+
             cb.addContactPoints(cpoints);
-            
+
             if (bestDC!=null) {
                 // 8/26/2016 Management has determined that Accuracy is preferred over speed in bad situations
                 // Local DC Aware Load Balancing appears to have the highest normal performance, with the best
@@ -166,11 +166,11 @@ public class CassAccess {
         cb.withSocketOptions(new SocketOptions().setReadTimeoutMillis(6500000));
         return cb.build();
     }
-    
+
     private static class Resettable {
         private Class<? extends Exception> cls;
         private List<String> messages;
-        
+
         @SuppressWarnings("unchecked")
         public Resettable(Env env, String propData) throws APIException {
             if (propData!=null && propData.length()>1) {
@@ -195,7 +195,7 @@ public class CassAccess {
                 }
             }
         }
-        
+
         public boolean matches(Exception ex) {
             if (ex.getClass().equals(cls)) {
                 if (messages!=null) {
@@ -210,7 +210,7 @@ public class CassAccess {
             return false;
         }
     }
-    
+
     public static final boolean isResetException(Exception e) {
         if (e==null) {
             return true;
index 68ec2e8..bb4e210 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -62,7 +62,7 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
     protected final String U_TEXT = getClass().getSimpleName() + " UPDATE";
     protected final String D_TEXT = getClass().getSimpleName() + " DELETE";
     private String table;
-    
+
     protected final ConsistencyLevel readConsistency;
     protected final ConsistencyLevel writeConsistency;
 
@@ -71,7 +71,7 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
     protected PSInfo updatePS;
     protected PSInfo deletePS;
     protected boolean async=false;
-    
+
     // Setteable only by CachedDAO
     protected Cached<?, ?> cache;
 
@@ -89,7 +89,7 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
         readConsistency = read;
         writeConsistency = write;
     }
-    
+
     /**
      * A Constructor to share Session with other DAOs.
      *
@@ -113,18 +113,18 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
     public final String[] setCRUD(TRANS trans, String table, Class<?> dc,Loader<DATA> loader) {
         return setCRUD(trans, table, dc, loader, -1);
     }
-    
+
     public final String[] setCRUD(TRANS trans, String table, Class<?> dc,Loader<DATA> loader, int max) {
                 Field[] fields = dc.getDeclaredFields();
                 int end = max>=0 && max<fields.length?max:fields.length;
                 // get keylimit from a non-null Loader
                 int keylimit = loader.keylimit();
-            
+
                 StringBuilder sbfc = new StringBuilder();
                 StringBuilder sbq = new StringBuilder();
                 StringBuilder sbwc = new StringBuilder();
                 StringBuilder sbup = new StringBuilder();
-            
+
                 if (keylimit>0) {
                     for (int i=0;i<end;++i) {
                         if (i>0) {
@@ -148,18 +148,18 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
                             sbwc.append("=?");
                         }
                     }
-            
+
                     createPS = new PSInfo(trans, "INSERT INTO " + table + " ("+ sbfc +") VALUES ("+ sbq +");",loader,writeConsistency);
-            
+
                     readPS = new PSInfo(trans, SELECT_SP + sbfc + " FROM " + table + WHERE + sbwc + ';',loader,readConsistency);
-            
+
                     // Note: UPDATES can't compile if there are no fields besides keys... Use "Insert"
                     if (sbup.length()==0) {
                         updatePS = createPS; // the same as an insert
                     } else {
                         updatePS = new PSInfo(trans, UPDATE_SP + table + " SET " + sbup + WHERE + sbwc + ';',loader,writeConsistency);
                     }
-            
+
                     deletePS = new PSInfo(trans, "DELETE FROM " + table + WHERE + sbwc + ';',loader,writeConsistency);
                 }
                 return new String[] {sbfc.toString(), sbq.toString(), sbup.toString(), sbwc.toString()};
@@ -191,7 +191,7 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
         }
     }
 
-    
+
     /**
      * Given a DATA object, extract the individual elements from the Data into an Object Array for the
      * execute element.
@@ -231,7 +231,7 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
         }
         return readPS.read(trans, R_TEXT, key);
     }
-    
+
     public Result<DATA> readPrimKey(TRANS trans, Object ... key) {
         if (readPS==null) {
             return Result.err(Result.ERR_NotImplemented,READ_IS_DISABLED,getClass().getSimpleName());
@@ -267,7 +267,7 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
                 return Result.err(rs);
             }
         }
-        
+
         wasModified(trans, CRUD.update, data);
         return Result.ok();
     }
@@ -286,7 +286,7 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
             if (rd.isEmpty()) {
                 return Result.err(Status.ERR_NotFound,"Not Found");
             }
-            for (DATA d : rd.value) { 
+            for (DATA d : rd.value) {
                 if (async) {
                     Result<ResultSetFuture> rs = deletePS.execAsync(trans, D_TEXT, d);
                     if (rs.notOK()) {
@@ -316,7 +316,7 @@ public class CassDAOImpl<TRANS extends TransStore,DATA> extends AbsCassDAO<TRANS
         }
         return Result.ok();
     }
-    
+
     public final Object[] keyFrom(DATA data) {
         return createPS.keyFrom(data);
     }
index 3875907..8d9185b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index b6c35f2..5045f6e 100644 (file)
@@ -3,13 +3,14 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 IBM.
  * ===========================================================================
  * 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.
@@ -24,14 +25,11 @@ package org.onap.aaf.auth.dao;
 public class DAOException extends Exception {
 
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = 1527904125585539823L;
 
 //    // TODO -   enum in result class == is our intended design, currently the DAO layer does not use Result<RV> so we still use these for now
-//    public final static DAOException RoleNotFoundDAOException = new DAOException("RoleNotFound");
-//    public final static DAOException PermissionNotFoundDAOException = new DAOException("PermissionNotFound");
-//    public final static DAOException UserNotFoundDAOException = new DAOException("UserNotFound");
 
     public DAOException() {
     }
index ca4277e..b8f3448 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,11 +28,11 @@ import org.onap.aaf.misc.env.Trans;
 
 /**
  * DataAccessObject - ReadOnly
- * 
+ *
  * It is useful to have a ReadOnly part of the interface for CachedDAO
- * 
+ *
  * Normal DAOs will implement full DAO
- * 
+ *
  * @author Jonathan
  *
  * @param <DATA>
index 4a078f9..9320381 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,11 +40,11 @@ public abstract class Loader<DATA> {
     public Loader(int keylimit) {
         this.keylimit = keylimit;
     }
-    
+
     public int keylimit() {
         return keylimit;
     }
-    
+
     protected abstract DATA load(DATA data, Row row);
     protected abstract void key(DATA data, int idx, Object[] obj);
     protected abstract void body(DATA data, int idx, Object[] obj);
@@ -74,7 +74,7 @@ public abstract class Loader<DATA> {
         }
         return rv;
     }
-    
+
     public static void writeString(DataOutputStream os, String s) throws IOException {
         if (s==null) {
             os.writeInt(-1);
@@ -90,11 +90,11 @@ public abstract class Loader<DATA> {
             }
         }
     }
-    
-    
+
+
     /**
      * We use bytes here to set a Maximum
-     * 
+     *
      * @param is
      * @param MAX
      * @return
@@ -118,10 +118,10 @@ public abstract class Loader<DATA> {
 
     /**
      * Write a set with proper sizing
-     * 
+     *
      * Note: at the moment, this is just String.  Probably can develop system where types
      * are supported too... but not now.
-     * 
+     *
      * @param os
      * @param set
      * @throws IOException
@@ -137,7 +137,7 @@ public abstract class Loader<DATA> {
         }
 
     }
-    
+
     public static Set<String> readStringSet(DataInputStream is, byte[] buff) throws IOException {
         int l = is.readInt();
         if (l<0) {
@@ -149,7 +149,7 @@ public abstract class Loader<DATA> {
         }
         return set;
     }
-    
+
     public static List<String> readStringList(DataInputStream is, byte[] buff) throws IOException {
         int l = is.readInt();
         if (l<0) {
@@ -162,7 +162,7 @@ public abstract class Loader<DATA> {
         return list;
     }
 
-    /** 
+    /**
      * Write a map
      * @param os
      * @param map
@@ -198,7 +198,7 @@ public abstract class Loader<DATA> {
         os.writeInt(magic);
         os.writeInt(version);
     }
-    
+
     public static int readHeader(DataInputStream is, final int magic, final int version) throws IOException {
         if (is.readInt()!=magic) {
             throw new IOException("Corrupted Data Stream");
index af3567e..a072289 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 0fcda19..2707f7a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index c0a2c49..9b86f80 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,19 +33,19 @@ public class CachedCertDAO extends CachedDAO<AuthzTrans, CertDAO, CertDAO.Data>
     public CachedCertDAO(CertDAO dao, CIDAO<AuthzTrans> info, long expiresIn) {
         super(dao, info, CertDAO.CACHE_SEG, expiresIn);
     }
-    
+
     /**
      * Pass through Cert ID Lookup
-     * 
+     *
      * @param trans
      * @param ns
      * @return
      */
-    
+
     public Result<List<CertDAO.Data>> readID(AuthzTrans trans, final String id) {
         return dao().readID(trans, id);
     }
-    
+
     public Result<List<CertDAO.Data>> readX500(AuthzTrans trans, final String x500) {
         return dao().readX500(trans, x500);
     }
index a8a3796..b1165c2 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -35,10 +35,10 @@ import org.onap.aaf.auth.layer.Result;
 public class CachedCredDAO extends CachedDAO<AuthzTrans, CredDAO, CredDAO.Data> {
     private final ReadID readID;
     private final ReadID readIDBath;
-    
+
     public CachedCredDAO(CredDAO dao, CIDAO<AuthzTrans> info, long expiresIn) {
         super(dao, info, CredDAO.CACHE_SEG, expiresIn);
-        if(FileGetter.isLoaded) {
+        if(FileGetter.isLoaded()) {
             readID = new ReadID() {
                 @Override
                 public Result<List<Data>> read(AuthzTrans trans, final String id) {
@@ -52,12 +52,12 @@ public class CachedCredDAO extends CachedDAO<AuthzTrans, CredDAO, CredDAO.Data>
                 @Override
                 public Result<List<Data>> read(AuthzTrans trans, final String id) {
                     DAOGetter getter = new DAOGetter(trans,dao()) {
-                       @Override
+                        @Override
                         public Result<List<CredDAO.Data>> call() {
                             return dao().readID(trans, id);
                         }
                     };
-                    
+
                     Result<List<CredDAO.Data>> lurd = get(trans, id, getter);
                     if (lurd.isOK() && lurd.isEmpty()) {
                         return Result.err(Status.ERR_UserNotFound,"No User Cred found");
@@ -65,17 +65,17 @@ public class CachedCredDAO extends CachedDAO<AuthzTrans, CredDAO, CredDAO.Data>
                     return lurd;
                 }
             };
-            
+
             readIDBath = new ReadID() {
                 @Override
                 public Result<List<Data>> read(AuthzTrans trans, final String id) {
                      DAOGetter getter = new DAOGetter(trans,dao()) {
-                        @Override
+                         @Override
                          public Result<List<CredDAO.Data>> call() {
                              return dao().readIDBAth(trans, id);
                          }
                      };
-                     
+
                      Result<List<CredDAO.Data>> lurd = get(trans, id, getter);
                      if (lurd.isOK() && lurd.isEmpty()) {
                          return Result.err(Status.ERR_UserNotFound,"No User Cred found");
@@ -85,18 +85,18 @@ public class CachedCredDAO extends CachedDAO<AuthzTrans, CredDAO, CredDAO.Data>
             };
         }
     }
-    
+
     /**
      * Pass through Cred Lookup
-     * 
+     *
      * Unlike Role and Perm, we don't need or want to cache these elements... Only used for NS Delete.
-     * 
+     *
      * @param trans
      * @param ns
      * @return
      */
     public Result<List<CredDAO.Data>> readNS(AuthzTrans trans, final String ns) {
-        
+
         return dao().readNS(trans, ns);
     }
 
index e639767..df089d0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 13180ab..28b8c4b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,25 +40,19 @@ public class CachedPermDAO extends CachedDAO<AuthzTrans,PermDAO, PermDAO.Data> {
 
     public Result<List<Data>> readNS(AuthzTrans trans, final String ns) {
         DAOGetter getter = new DAOGetter(trans,dao()) {
+        @Override
             public Result<List<Data>> call() {
                 return dao.readNS(trans, ns);
             }
         };
-        
+
         Result<List<Data>> lurd = get(trans, ns, getter);
         if (lurd.isOKhasData()) {
             return lurd;
         } else {
-            
+
         }
-//        if (getter.result==null) {
-//            if (lurd==null) {
-                return Result.err(Status.ERR_PermissionNotFound,"No Permission found - " + lurd.details);
-//            } else {
-//                return Result.ok(lurd);
-//            }
-//        }
-//        return getter.result;
+        return Result.err(Status.ERR_PermissionNotFound,"No Permission found - " + lurd.details);
     }
 
     public Result<List<Data>> readChildren(AuthzTrans trans, final String ns, final String type) {
@@ -66,7 +60,7 @@ public class CachedPermDAO extends CachedDAO<AuthzTrans,PermDAO, PermDAO.Data> {
     }
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @param type
@@ -74,11 +68,12 @@ public class CachedPermDAO extends CachedDAO<AuthzTrans,PermDAO, PermDAO.Data> {
      */
     public Result<List<Data>> readByType(AuthzTrans trans, final String ns, final String type) {
         DAOGetter getter = new DAOGetter(trans,dao()) {
+        @Override
             public Result<List<Data>> call() {
                 return dao.readByType(trans, ns, type);
             }
         };
-        
+
         // Note: Can reuse index1 here, because there is no name collision versus response
         Result<List<Data>> lurd = get(trans, ns+'|'+type, getter);
         if (lurd.isOK() && lurd.isEmpty()) {
@@ -86,10 +81,10 @@ public class CachedPermDAO extends CachedDAO<AuthzTrans,PermDAO, PermDAO.Data> {
         }
         return lurd;
     }
-    
+
     /**
      * Add desciption to this permission
-     * 
+     *
      * @param trans
      * @param ns
      * @param type
@@ -98,12 +93,12 @@ public class CachedPermDAO extends CachedDAO<AuthzTrans,PermDAO, PermDAO.Data> {
      * @param description
      * @return
      */
-    public Result<Void> addDescription(AuthzTrans trans, String ns, String type, 
+    public Result<Void> addDescription(AuthzTrans trans, String ns, String type,
             String instance, String action, String description) {
         //TODO Invalidate?
         return dao().addDescription(trans, ns, type, instance, action, description);
     }
-    
+
     public Result<Void> addRole(AuthzTrans trans, PermDAO.Data perm, RoleDAO.Data role) {
         Result<Void> rv = dao().addRole(trans,perm,role.encode());
         if (trans.debug().isLoggable())
index 99fac2d..0c1fa4c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,11 +39,12 @@ public class CachedRoleDAO extends CachedDAO<AuthzTrans,RoleDAO, RoleDAO.Data> {
 
     public Result<List<Data>> readNS(AuthzTrans trans, final String ns) {
         DAOGetter getter = new DAOGetter(trans,dao()) {
+            @Override
             public Result<List<Data>> call() {
                 return dao.readNS(trans, ns);
             }
         };
-        
+
         Result<List<Data>> lurd = get(trans, ns, getter);
         if (lurd.isOK() && lurd.isEmpty()) {
             return Result.err(Status.ERR_RoleNotFound,"No Role found");
@@ -53,11 +54,12 @@ public class CachedRoleDAO extends CachedDAO<AuthzTrans,RoleDAO, RoleDAO.Data> {
 
     public Result<List<Data>> readName(AuthzTrans trans, final String name) {
         DAOGetter getter = new DAOGetter(trans,dao()) {
+            @Override
             public Result<List<Data>> call() {
                 return dao().readName(trans, name);
             }
         };
-        
+
         Result<List<Data>> lurd = get(trans, name, getter);
         if (lurd.isOK() && lurd.isEmpty()) {
             return Result.err(Status.ERR_RoleNotFound,"No Role found");
@@ -87,10 +89,10 @@ public class CachedRoleDAO extends CachedDAO<AuthzTrans,RoleDAO, RoleDAO.Data> {
         invalidate(trans, rd);
         return rv;
     }
-    
+
     /**
      * Add description to this role
-     * 
+     *
      * @param trans
      * @param ns
      * @param name
index c1aa901..c3f353e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,7 +42,7 @@ public class CachedUserRoleDAO extends CachedDAO<AuthzTrans,UserRoleDAO, UserRol
     }
 
     /**
-     * Special Case.  
+     * Special Case.
      * User Roles by User are very likely to be called many times in a Transaction, to validate "May User do..."
      * Pull result, and make accessible by the Trans, which is always keyed by User.
      * @param trans
@@ -71,7 +71,7 @@ public class CachedUserRoleDAO extends CachedDAO<AuthzTrans,UserRoleDAO, UserRol
         return lurd;
     }
 
-    
+
     public Result<List<Data>> readByRole(AuthzTrans trans, final String role) {
         DAOGetter getter = new DAOGetter(trans,dao()) {
             public Result<List<Data>> call() {
index b7a6c59..75efdfa 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,108 +42,109 @@ import org.onap.aaf.cadi.PropAccess;
 import org.onap.aaf.cadi.util.CSV;
 
 public class FileGetter {
-       private static final String AAF_FILEGETTER = "aaf_filegetter";
-       public static boolean isLoaded = false;
-       private static FileGetter singleton;
+    private static final String AAF_FILEGETTER = "aaf_filegetter";
+    private static boolean isLoaded = false;
+    private static FileGetter singleton;
+    private static List<CredDAO.Data> EMPTY = new ArrayList<>();
+    private Map<String,List<CredDAO.Data>> data;
+    private SimpleDateFormat sdf;
+    private FileGetter(Access access) {
+        if(access!=null) {
+            String filename = access.getProperty(AAF_FILEGETTER,null);
+            if((filename!=null)&&(!isLoaded)) {
+                    data = new TreeMap<>();
+                    sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss+SSSS");
+                    CSV csv = new CSV(access, filename).setDelimiter('|');
+                    try {
+                        access.log(Level.INIT, "Loading Filebased Cred from",filename);
+                        csv.visit(row -> {
+                            if(row.size()<1) {
+                                access.log(Level.INIT, "Bad Row");
+                            }
+                            int type;
+                              try {
+                                  type =Integer.parseInt(row.get(1));
+                              } catch(Exception e) {
+                                  access.log(Level.INIT, e, "skipping ", row.get(0));
+                                  return;
+                              }
+                            if(CredDAO.CERT_SHA256_RSA == type) {
+                                return;
+                            }
+                            CredDAO.Data cdd = new CredDAO.Data();
+                            cdd.id=row.get(0);
+                            cdd.type = type;
+                            try {
+                                cdd.expires = sdf.parse(row.get(2));
+                                cdd.cred = ByteBuffer.wrap(Hash.fromHex(row.get(3)));
+                                cdd.notes= row.get(4);
+                                cdd.ns = row.get(5);
+                                cdd.other = Integer.parseInt(row.get(6));
+                                if(row.size()>8) {
+                                    cdd.tag = row.get(8);
+                                } else {
+                                    cdd.tag = "";
+                                }
+                                List<CredDAO.Data> lcdd = data.get(cdd.id);
+                                if(lcdd == null) {
+                                    lcdd = new ArrayList<>();
+                                    data.put(cdd.id, lcdd);
+                                }
+                                lcdd.add(cdd);
+                            } catch (ParseException e) {
+                                access.log(Level.INIT, e);
+                            }
+
+                        });
+                        access.printf(Level.INIT, "Filebased Cred finished...");
+                        isLoaded = true;
+                    } catch( CadiException | IOException e) {
+                        access.log(Level.ERROR, e);
+                    }
+            }
+        }
+    }
+
+    public static synchronized FileGetter singleton(Access access) {
+        if(singleton==null) {
+            singleton = new FileGetter(access);
+        }
+        return singleton;
+    }
+
+    public Getter<CredDAO.Data> getter(String id) {
+        return new FGetter(id);
+    }
+    
+    public class FGetter implements Getter<CredDAO.Data> {
+        private final List<CredDAO.Data> lcdd;
+        public FGetter(final String id) {
+            lcdd = data.get(id);
+        }
+        @Override
+        public Result<List<Data>> get() {
+            return Result.ok(lcdd==null?EMPTY:lcdd);
+        }
+    }
+
+    public static void main(String[] args) {
+        PropAccess access = new PropAccess(args);
+        access.setProperty(AAF_FILEGETTER,"/Users/jg1555/cred.dat");
+        FileGetter fg = FileGetter.singleton(access);
 
-       private Map<String,List<CredDAO.Data>> data; 
-       private SimpleDateFormat sdf;
-       private FileGetter(Access access) {
-               if(access!=null) {
-                       String filename = access.getProperty(AAF_FILEGETTER,null);
-                       if(filename!=null) {
-                               if(!isLoaded) {
-                                       data = new TreeMap<>();
-                                       sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss+SSSS");
-                                       CSV csv = new CSV(access, filename).setDelimiter('|');
-                                       try {
-                                               access.log(Level.INIT, "Loading Filebased Cred from",filename);
-                                       csv.visit(row -> {
-                                               if(row.size()<1) {
-                                                       access.log(Level.INIT, "Bad Row");
-                                               }
-                                               int type;
-                                                 try {
-                                                         type =Integer.parseInt(row.get(1));
-                                                 } catch(Exception e) {
-                                                         access.log(Level.INIT, e, "skipping ", row.get(0));
-                                                         return;
-                                                 }
-                                               if(CredDAO.CERT_SHA256_RSA == type) {
-                                                       return;
-                                               }
-                                               CredDAO.Data cdd = new CredDAO.Data();
-                                               cdd.id=row.get(0);
-                                               cdd.type = type;
-                                               try {
-                                                               cdd.expires = sdf.parse(row.get(2));
-                                                               cdd.cred = ByteBuffer.wrap(Hash.fromHex(row.get(3)));
-                                                               cdd.notes= row.get(4);
-                                                               cdd.ns = row.get(5);
-                                                               cdd.other = Integer.parseInt(row.get(6));
-                                                               if(row.size()>8) {
-                                                                       cdd.tag = row.get(8);
-                                                               } else {
-                                                                       cdd.tag = "";
-                                                               }
-                                                               List<CredDAO.Data> lcdd = data.get(cdd.id);
-                                                               if(lcdd == null) {
-                                                                       lcdd = new ArrayList<>();
-                                                                       data.put(cdd.id, lcdd);
-                                                               }
-                                                               lcdd.add(cdd);
-                                                               
-                                                       } catch (ParseException e) {
-                                                               access.log(Level.INIT, e);
-                                                       }
-                                               
-                                       });
-                                       access.printf(Level.INIT, "Filebased Cred finished...");
-                                               isLoaded = true;
-                                       } catch( CadiException | IOException e) {
-                                               access.log(Level.ERROR, e);
-                                       }
-                               }
-                       }
-               }
-       }
+        for(String id : new String[] {"m01891@aaf.att.com","bogus"}) {
+            Getter<CredDAO.Data> g = fg.getter(id);
+            Result<List<CredDAO.Data>> r = g.get();
+            if(r.isOKhasData()) {
+                for(CredDAO.Data cdd : r.value) {
+                    System.out.println(cdd);
+                }
+            }
+        }
+    }
 
-       public static synchronized FileGetter singleton(Access access) {
-               if(singleton==null) {
-                       singleton = new FileGetter(access);
-               }
-               return singleton;
-               
-       }
-       public Getter<CredDAO.Data> getter(String id) {
-               return new FGetter(id);
-       }
-       private static List<CredDAO.Data> EMPTY = new ArrayList<>(); 
-       public class FGetter implements Getter<CredDAO.Data> {
-               private final List<CredDAO.Data> lcdd;  
-               public FGetter(final String id) {
-                       lcdd = data.get(id);
-               }
-               @Override
-               public Result<List<Data>> get() {
-                       return Result.ok(lcdd==null?EMPTY:lcdd);
-               }
-       }
-       
-       public static void main(String[] args) {
-               PropAccess access = new PropAccess(args);
-               access.setProperty(AAF_FILEGETTER,"/Users/jg1555/cred.dat");
-               FileGetter fg = FileGetter.singleton(access);
-               
-               for(String id : new String[] {"m01891@aaf.att.com","bogus"}) {
-                       Getter<CredDAO.Data> g = fg.getter(id);
-                       Result<List<CredDAO.Data>> r = g.get();
-                       if(r.isOKhasData()) {
-                               for(CredDAO.Data cdd : r.value) {
-                                       System.out.println(cdd);
-                               }
-                       }
-               }
-       }
+    public static boolean isLoaded() {
+        return isLoaded;
+    }
 }
 
index 5583dc0..139e85a 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -48,7 +48,7 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
     public static final String PENDING = "pending";
     public static final String DENIED = "denied";
     public static final String APPROVED = "approved";
-    
+
     private static final String TABLE = "approval";
     private static final String TABLELOG = "approved";
     private HistoryDAO historyDAO;
@@ -58,7 +58,7 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
     private PSInfo psByStatus;
 
     private static final int KEYLIMIT = 1;
-    
+
     public ApprovalDAO(AuthzTrans trans, Cluster cluster, String keyspace) {
         super(trans, ApprovalDAO.class.getSimpleName(),cluster,keyspace,Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         historyDAO = new HistoryDAO(trans, this);
@@ -83,14 +83,14 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
         public String operation;
         public Date updated;
     }
-    
+
     private static class ApprovalLoader extends Loader<Data> {
         public static final ApprovalLoader deflt = new ApprovalLoader(KEYLIMIT);
-        
+
         public ApprovalLoader(int keylimit) {
             super(keylimit);
         }
-        
+
         @Override
         public Data load(Data data, Row row) {
             data.id = row.getUUID(0);
@@ -101,7 +101,7 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
             data.status = row.getString(5);
             data.memo = row.getString(6);
             data.operation = row.getString(7);
-            // This is used to get "WRITETIME(STATUS)" from Approval, which gives us an "updated" 
+            // This is used to get "WRITETIME(STATUS)" from Approval, which gives us an "updated"
             if (row.getColumnDefinitions().size()>8) {
                 // Rows reported in MicroSeconds
                 data.updated = new Date(row.getLong(8)/1000);
@@ -125,19 +125,19 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
             obj[++idx]=data.memo;
             obj[++idx]=data.operation;
         }
-    }    
-    
+    }
+
     private void init(AuthzTrans trans) {
         String[] helpers = setCRUD(trans, TABLE, Data.class, ApprovalLoader.deflt,8);
-        psByUser = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + ", WRITETIME(status) FROM " + TABLE + 
+        psByUser = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + ", WRITETIME(status) FROM " + TABLE +
                 " WHERE user = ?", new ApprovalLoader(1) {
             @Override
             protected void key(Data data, int idx, Object[] obj) {
                 obj[idx]=data.user;
             }
         }, readConsistency);
-        
-        psByApprover = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + ", WRITETIME(status) FROM " + TABLE + 
+
+        psByApprover = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + ", WRITETIME(status) FROM " + TABLE +
                 " WHERE approver = ?", new ApprovalLoader(1) {
             @Override
             protected void key(Data data, int idx, Object[] obj) {
@@ -145,7 +145,7 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
             }
         }, readConsistency);
 
-        psByTicket = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + ", WRITETIME(status) FROM " + TABLE + 
+        psByTicket = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + ", WRITETIME(status) FROM " + TABLE +
                 " WHERE ticket = ?", new ApprovalLoader(1) {
             @Override
             protected void key(Data data, int idx, Object[] obj) {
@@ -153,7 +153,7 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
             }
         }, readConsistency);
 
-        psByStatus = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + ", WRITETIME(status) FROM " + TABLE + 
+        psByStatus = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + ", WRITETIME(status) FROM " + TABLE +
                 " WHERE status = ?", new ApprovalLoader(1) {
             @Override
             protected void key(Data data, int idx, Object[] obj) {
@@ -177,7 +177,7 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
         if (rs.notOK()) {
             return Result.err(rs);
         }
-        return Result.ok(data);    
+        return Result.ok(data);
     }
 
 
@@ -195,7 +195,7 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
 
     public Result<List<ApprovalDAO.Data>> readByStatus(AuthzTrans trans, String status) {
         return psByStatus.read(trans, R_TEXT, new Object[]{status});
-    }    
+    }
 
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.dao.CassDAOImpl#delete(com.att.inno.env.TransStore, java.lang.Object, boolean)
@@ -209,7 +209,7 @@ public class ApprovalDAO extends CassDAOImpl<AuthzTrans,ApprovalDAO.Data> {
             }
             ApprovalLoader.deflt.load(data, rd.value.one());
         }
-        if (APPROVED.equals(data.status) || DENIED.equals(data.status)) { 
+        if (APPROVED.equals(data.status) || DENIED.equals(data.status)) {
             StringBuilder sb = new StringBuilder("BEGIN BATCH\n");
             sb.append("INSERT INTO ");
             sb.append(TABLELOG);
index e0c0c0d..08de28e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,16 +43,16 @@ import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.Row;
 
 /**
- * CredDAO manages credentials. 
+ * CredDAO manages credentials.
  * @author Jonathan
  * Date: 7/19/13
  */
 public class ArtiDAO extends CassDAOImpl<AuthzTrans,ArtiDAO.Data> {
     public static final String TABLE = "artifact";
-    
+
     private HistoryDAO historyDAO;
     private PSInfo psByMechID,psByMachine, psByNs;
-    
+
     public ArtiDAO(AuthzTrans trans, Cluster cluster, String keyspace) {
         super(trans, ArtiDAO.class.getSimpleName(),cluster, keyspace, Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         init(trans);
@@ -78,7 +78,7 @@ public class ArtiDAO extends CassDAOImpl<AuthzTrans,ArtiDAO.Data> {
         public Date                      expires;
         public int                        renewDays;
         public Set<String>                sans;
-        
+
 //      // Getters
         public Set<String> type(boolean mutable) {
             if (type == null) {
@@ -104,7 +104,7 @@ public class ArtiDAO extends CassDAOImpl<AuthzTrans,ArtiDAO.Data> {
             ArtifactLoader.deflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             ArtifactLoader.deflt.unmarshal(this, toDIS(bb));
@@ -118,7 +118,7 @@ public class ArtiDAO extends CassDAOImpl<AuthzTrans,ArtiDAO.Data> {
     private static class ArtifactLoader extends Loader<Data> implements Streamer<Data>{
         public static final int MAGIC=95829343;
         public static final int VERSION=1;
-        public static final int BUFF_SIZE=48; // Note: 
+        public static final int BUFF_SIZE=48; // Note:
 
         public static final ArtifactLoader deflt = new ArtifactLoader(KEYLIMIT);
         public ArtifactLoader(int keylimit) {
@@ -225,10 +225,10 @@ public class ArtiDAO extends CassDAOImpl<AuthzTrans,ArtiDAO.Data> {
         if (historyDAO==null) {
             historyDAO = new HistoryDAO(trans,this);
         }
-        
+
         String[] helpers = setCRUD(trans, TABLE, Data.class, ArtifactLoader.deflt);
 
-        psByMechID = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE + 
+        psByMechID = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE mechid = ?", new ArtifactLoader(1) {
             @Override
             protected void key(Data data, int idx, Object[] obj) {
@@ -236,7 +236,7 @@ public class ArtiDAO extends CassDAOImpl<AuthzTrans,ArtiDAO.Data> {
             }
         },readConsistency);
 
-        psByMachine = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE + 
+        psByMachine = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE machine = ?", new ArtifactLoader(1) {
             @Override
             protected void key(Data data, int idx, Object[] obj) {
@@ -244,7 +244,7 @@ public class ArtiDAO extends CassDAOImpl<AuthzTrans,ArtiDAO.Data> {
             }
         },readConsistency);
 
-        psByNs = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE + 
+        psByNs = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE ns = ?", new ArtifactLoader(1) {
             @Override
             protected void key(Data data, int idx, Object[] obj) {
@@ -253,8 +253,8 @@ public class ArtiDAO extends CassDAOImpl<AuthzTrans,ArtiDAO.Data> {
         },readConsistency);
 
 }
-    
-    
+
+
     public Result<List<Data>> readByMechID(AuthzTrans trans, String mechid) {
         return psByMechID.read(trans, R_TEXT, new Object[]{mechid});
     }
index eea3c4c..6a32a36 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -69,7 +69,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
     public static final Map<String,Date[]> info = new ConcurrentHashMap<>();
 
     private static CacheUpdate cacheUpdate;
-    
+
     // Hold current time stamps from Tables
     private final Date startTime;
     private final boolean cacheNotify;
@@ -79,7 +79,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
     // Data Definition, matches Cassandra DM
     //////////////////////////////////////////
     private static final int KEYLIMIT = 2;
-    
+
     public CacheInfoDAO(AuthzTrans trans, Cluster cluster, String keyspace) throws APIException, IOException {
         super(trans, CacheInfoDAO.class.getSimpleName(),cluster,keyspace,Data.class,TABLE,readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         startTime = new Date();
@@ -94,8 +94,8 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
         cacheNotify = noK8s(trans);
     }
 
-    /** 
-     * Need a different point to point cache clear strategy for K8s... 
+    /**
+     * Need a different point to point cache clear strategy for K8s...
      * @param trans
      * @return
      */
@@ -124,11 +124,11 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
 
     private static class InfoLoader extends Loader<Data> {
         public static final InfoLoader dflt = new InfoLoader(KEYLIMIT);
-        
+
         public InfoLoader(int keylimit) {
             super(keylimit);
         }
-        
+
         @Override
         public Data load(Data data, Row row) {
             // Int more efficient
@@ -151,7 +151,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
             obj[idx]=data.touched;
         }
     }
-    
+
     public static synchronized <T extends Trans> void startUpdate(AuthzEnv env, HMangr hman, SecuritySetter<HttpURLConnection> ss, String ip, int port) {
         if (cacheUpdate==null) {
             cacheUpdate = new CacheUpdate(env,hman,ss, ip,port);
@@ -176,15 +176,15 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
         private SecuritySetter<HttpURLConnection> ss;
         private final String authority;
         public boolean go = true;
-        
+
         public CacheUpdate(AuthzEnv env, HMangr hman, SecuritySetter<HttpURLConnection> ss, String ip, int port) {
             this.env = env;
             this.hman = hman;
             this.ss = ss;
-            
+
             this.authority = ip+':'+port;
         }
-        
+
         private static class Transfer {
             public String table;
             public int segs[];
@@ -198,7 +198,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
             private AuthzTrans trans;
             private String type;
             private String segs;
-            
+
             public CacheClear(AuthzTrans trans) {
                 this.trans = trans;
             }
@@ -207,7 +207,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
                 type = es.getKey();
                 segs = es.getValue().toString();
             }
-            
+
         @Override
             public Integer code(Rcli<?> client) throws APIException, CadiException {
                 URI to = client.getURI();
@@ -222,11 +222,11 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
                 return total;
             }
         }
-        
+
         private class IntHolder {
             private int[] raw;
             HashSet<Integer> set;
-            
+
             public IntHolder(int ints[]) {
                 raw = ints;
                 set = null;
@@ -234,7 +234,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
             public void add(int[] ints) {
                 if (set==null) {
                     set = new HashSet<>();
-                    
+
                     for (int i=0;i<raw.length;++i) {
                         set.add(raw[i]);
                     }
@@ -270,7 +270,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
                 return sb.toString();
             }
         }
-        
+
         @Override
         public void run() {
             do {
@@ -279,7 +279,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
                     if (data==null) {
                         continue;
                     }
-                    
+
                     int count = 0;
                     CacheClear cc = null;
                     Map<String,IntHolder> gather = null;
@@ -319,7 +319,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
                             sb.append(count);
                             if (count==1) {
                                 sb.append(" entry for ");
-                            } else { 
+                            } else {
                                 sb.append(" entries for ");
                             }
                             int peers = count<=0?0:cc.total/count;
@@ -354,13 +354,13 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.dao.cass.CIDAO#touch(org.onap.aaf.auth.env.test.AuthzTrans, java.lang.String, int)
      */
-    
+
     @Override
     public Result<Void> touch(AuthzTrans trans, String name, int ... seg) {
         /////////////
         // Direct Service Cache Invalidation
         /////////////
-        // ConcurrentQueues are open-ended.  We don't want any Memory leaks 
+        // ConcurrentQueues are open-ended.  We don't want any Memory leaks
         // Note: we keep a separate counter, because "size()" on a Linked Queue is expensive
         if (cacheNotify && cacheUpdate!=null) {
             try {
@@ -389,7 +389,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
             sb.append(name);
             sb.append("' AND seg = ");
             sb.append(s);
-            sb.append(";\n");    
+            sb.append(";\n");
             if (first) {
                 first =false;
             } else {
@@ -425,7 +425,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
         } finally {
             tt.done();
         }
-        
+
         String lastName = null;
         Date[] dates = null;
         for (Row row : rs.all()) {
@@ -451,7 +451,7 @@ public class CacheInfoDAO extends CassDAOImpl<AuthzTrans,CacheInfoDAO.Data> impl
         }
         return Result.ok();
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.dao.cass.CIDAO#get(java.lang.String, int)
      */
index be7c44a..0b0ca7f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,10 +26,10 @@ import org.onap.aaf.auth.dao.Cached;
 import org.onap.aaf.auth.dao.CachedDAO;
 
 public abstract class CacheableData implements Cacheable {
-    // WARNING:  DON'T attempt to add any members here, as it will 
+    // WARNING:  DON'T attempt to add any members here, as it will
     // be treated by system as fields expected in Tables
     protected int seg(Cached<?,?> cache, Object ... fields) {
         return cache==null?0:cache.invalidate(CachedDAO.keyFromObjs(fields));
     }
-    
+
 }
index 6c23938..5924886 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,18 +43,18 @@ import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.Row;
 
 /**
- * CredDAO manages credentials. 
+ * CredDAO manages credentials.
  * @author Jonathan
  * Date: 7/19/13
  */
 public class CertDAO extends CassDAOImpl<AuthzTrans,CertDAO.Data> {
     public static final String TABLE = "x509";
     public static final int CACHE_SEG = 0x40; // yields segment 0x0-0x3F
-    
+
     private HistoryDAO historyDAO;
     private CIDAO<AuthzTrans> infoDAO;
     private PSInfo psX500,psID;
-    
+
     public CertDAO(AuthzTrans trans, Cluster cluster, String keyspace) throws APIException, IOException {
         super(trans, CertDAO.class.getSimpleName(),cluster, keyspace, Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         init(trans);
@@ -66,10 +66,10 @@ public class CertDAO extends CassDAOImpl<AuthzTrans,CertDAO.Data> {
         infoDAO = ciDao;
         init(trans);
     }
-    
+
     public static final int KEYLIMIT = 2;
     public static class Data extends CacheableData implements Bytification {
-        
+
         public String                    ca;
         public BigInteger                 serial;
         public String                      id;
@@ -82,14 +82,14 @@ public class CertDAO extends CassDAOImpl<AuthzTrans,CertDAO.Data> {
                 seg(cache,ca,serial)
             };
         }
-        
+
         @Override
         public ByteBuffer bytify() throws IOException {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             CertLoader.deflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             CertLoader.deflt.unmarshal(this, toDIS(bb));
@@ -99,7 +99,7 @@ public class CertDAO extends CassDAOImpl<AuthzTrans,CertDAO.Data> {
     private static class CertLoader extends Loader<Data> implements Streamer<Data>{
         public static final int MAGIC=85102934;
         public static final int VERSION=1;
-        public static final int BUFF_SIZE=48; // Note: 
+        public static final int BUFF_SIZE=48; // Note:
 
         public static final CertLoader deflt = new CertLoader(KEYLIMIT);
         public CertLoader(int keylimit) {
@@ -133,7 +133,7 @@ public class CertDAO extends CassDAOImpl<AuthzTrans,CertDAO.Data> {
             obj[++idx] = data.x500;
             obj[++idx] = data.x509;
 
-            
+
         }
 
         @Override
@@ -172,7 +172,7 @@ public class CertDAO extends CassDAOImpl<AuthzTrans,CertDAO.Data> {
             }
         }
     }
-    
+
     public Result<List<CertDAO.Data>> read(AuthzTrans trans, Object ... key) {
         // Translate BigInteger to Byte array for lookup
         return super.read(trans, key[0],ByteBuffer.wrap(((BigInteger)key[1]).toByteArray()));
@@ -194,9 +194,9 @@ public class CertDAO extends CassDAOImpl<AuthzTrans,CertDAO.Data> {
 
         psX500 = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE x500 = ?", CertLoader.deflt,readConsistency);
-        
+
     }
-    
+
     public Result<List<Data>> readX500(AuthzTrans trans, String x500) {
         return psX500.read(trans, R_TEXT, new Object[]{x500});
     }
index 9f402ad..1228fce 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -40,7 +40,7 @@ import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.Row;
 
 /**
- * CredDAO manages credentials. 
+ * CredDAO manages credentials.
  * @author Jonathan
  * Date: 6/25/18
  */
@@ -49,7 +49,7 @@ public class ConfigDAO extends CassDAOImpl<AuthzTrans,ConfigDAO.Data> {
     public static final int CACHE_SEG = 0x40; // yields segment 0x0-0x3F
     public static final int KEYLIMIT = 2;
     private PSInfo psName;
-    
+
     public ConfigDAO(AuthzTrans trans, Cluster cluster, String keyspace) throws APIException, IOException {
         super(trans, ConfigDAO.class.getSimpleName(),cluster, keyspace, Data.class,TABLE_NAME, readConsistency(trans,TABLE_NAME), writeConsistency(trans,TABLE_NAME));
         init(trans);
@@ -69,7 +69,7 @@ public class ConfigDAO extends CassDAOImpl<AuthzTrans,ConfigDAO.Data> {
     private static class ConfigLoader extends Loader<Data> implements Streamer<Data>{
         public static final int MAGIC=2673849;
         public static final int VERSION=1;
-        public static final int BUFF_SIZE=48; 
+        public static final int BUFF_SIZE=48;
 
         public static final ConfigLoader deflt = new ConfigLoader(KEYLIMIT);
         public ConfigLoader(int keylimit) {
@@ -113,14 +113,14 @@ public class ConfigDAO extends CassDAOImpl<AuthzTrans,ConfigDAO.Data> {
             data.value = readString(is,buff);
         }
     }
-    
+
     private void init(AuthzTrans trans) throws APIException, IOException {
         String[] helpers = setCRUD(trans, TABLE_NAME, Data.class, ConfigLoader.deflt);
 
         psName = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE_NAME +
                 " WHERE name = ?", ConfigLoader.deflt,readConsistency);
     }
-    
+
 
     /**
      * Log Modification statements to History
@@ -133,7 +133,7 @@ public class ConfigDAO extends CassDAOImpl<AuthzTrans,ConfigDAO.Data> {
     protected void wasModified(AuthzTrans trans, CRUD modified, Data data, String ... override) {
         // not an auditable table.
     }
-    
+
     public Result<List<Data>> readName(AuthzTrans trans, String name) {
         return psName.read(trans, R_TEXT, new Object[]{name});
     }
index 7140188..137969e 100644 (file)
@@ -3,13 +3,14 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 IBM.
  * ===========================================================================
  * 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.
@@ -45,7 +46,7 @@ import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.Row;
 
 /**
- * CredDAO manages credentials. 
+ * CredDAO manages credentials.
  * @author Jonathan
  * Date: 7/19/13
  */
@@ -59,13 +60,13 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
     public static final int BASIC_AUTH_SHA256 = 2;
     public static final int CERT_SHA256_RSA =200;
     public static final SecureRandom srand = new SecureRandom();
-    
+
     private HistoryDAO historyDAO;
     private CIDAO<AuthzTrans> infoDAO;
     private PSInfo psNS;
     private PSInfo psID;
     private PSInfo psIDBath;
-    
+
     public CredDAO(AuthzTrans trans, Cluster cluster, String keyspace) throws APIException, IOException {
         super(trans, CredDAO.class.getSimpleName(),cluster, keyspace, Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         init(trans);
@@ -80,7 +81,7 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
 
     public static final int KEYLIMIT = 3;
     public static class Data extends CacheableData implements Bytification {
-        
+
         public String                   id;
         public Integer                  type;
         public Date                     expires;
@@ -97,14 +98,14 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
                 seg(cache,id) // cache is for all entities
             };
         }
-        
+
         @Override
         public ByteBuffer bytify() throws IOException {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             CredLoader.deflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             CredLoader.deflt.unmarshal(this, toDIS(bb));
@@ -118,7 +119,7 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
     public static class CredLoader extends Loader<Data> implements Streamer<Data>{
         public static final int MAGIC=153323443;
         public static final int VERSION=2;
-        public static final int BUFF_SIZE=48; // Note: 
+        public static final int BUFF_SIZE=48; // Note:
 
         public static final CredLoader deflt = new CredLoader(KEYLIMIT);
         public CredLoader(int keylimit) {
@@ -131,10 +132,10 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
             data.type = row.getInt(1);    // NOTE: in datastax driver,  If the int value is NULL, 0 is returned!
             data.expires = row.getTimestamp(2);
             data.other = row.getInt(3);
-            data.ns = row.getString(4);     
+            data.ns = row.getString(4);
             data.tag = row.getString(5);
             data.notes = row.getString(6);
-            data.cred = row.getBytesUnsafe(7);            
+            data.cred = row.getBytesUnsafe(7);
             return data;
         }
 
@@ -150,7 +151,8 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
         @Override
         protected void body(Data data, int idx, Object[] obj) {
             int i;
-            obj[i=idx] = data.other;
+            i=idx;
+            obj[i] = data.other;
             obj[++i] = data.ns;
             obj[++i] = data.tag;
             obj[++i] = data.notes;
@@ -161,7 +163,7 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
         public void marshal(Data data, DataOutputStream os) throws IOException {
             writeHeader(os,MAGIC,VERSION);
             writeString(os, data.id);
-            os.writeInt(data.type);    
+            os.writeInt(data.type);
             os.writeLong(data.expires==null?-1:data.expires.getTime());
             os.writeInt(data.other==null?0:data.other);
             writeString(os, data.ns);
@@ -183,14 +185,14 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
             byte[] buff = new byte[BUFF_SIZE];
             data.id = readString(is,buff);
             data.type = is.readInt();
-            
+
             long l = is.readLong();
             data.expires = l<0?null:new Date(l);
             data.other = is.readInt();
             data.ns = readString(is,buff);
             data.tag = readString(is,buff);
             data.notes = readString(is,buff);
-            
+
             int i = is.readInt();
             data.cred=null;
             if (i>=0) {
@@ -211,16 +213,16 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
         if (infoDAO==null) {
             infoDAO = new CacheInfoDAO(trans,this);
         }
-        
+
 
         String[] helpers = setCRUD(trans, TABLE, Data.class, CredLoader.deflt);
-        
+
         psNS = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE ns = ?", CredLoader.deflt,readConsistency);
-        
+
         psID = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE id = ?", CredLoader.deflt,readConsistency);
-        
+
         // NOTE: (type) in ((1),(2)) is valid for Cass 2.1.14.  After 2.1.14, more obvious
         // syntax of type in (1,2) is available
         // ALSO, 1 & 2 STAND FOR BASIC_AUTH (MD5) AND BASIC_AUTH_SHA256(with salt).
@@ -230,7 +232,7 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
         psIDBath = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE id = ? and (type) in ((1),(2))", CredLoader.deflt,readConsistency);
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.dao.CassDAOImpl#create(org.onap.aaf.misc.env.TransStore, java.lang.Object)
      */
@@ -250,11 +252,11 @@ public class CredDAO extends CassDAOImpl<AuthzTrans,CredDAO.Data> {
     public Result<List<Data>> readNS(AuthzTrans trans, String ns) {
         return psNS.read(trans, R_TEXT, new Object[]{ns});
     }
-    
+
     public Result<List<Data>> readID(AuthzTrans trans, String id) {
         return psID.read(trans, R_TEXT, new Object[]{id});
     }
-    
+
     public Result<List<Data>> readIDBAth(AuthzTrans trans, String id) {
         return psIDBath.read(trans, R_TEXT, new Object[] {id});
     }
index e7749bd..1f7afb8 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -47,7 +47,7 @@ public class DelegateDAO extends CassDAOImpl<AuthzTrans, DelegateDAO.Data> {
     public static final String TABLE = "delegate";
     private PSInfo psByDelegate;
     private static final int KEYLIMIT = 1;
-    
+
     public DelegateDAO(AuthzTrans trans, Cluster cluster, String keyspace) {
         super(trans, DelegateDAO.class.getSimpleName(),cluster,keyspace,Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         init(trans);
@@ -57,8 +57,8 @@ public class DelegateDAO extends CassDAOImpl<AuthzTrans, DelegateDAO.Data> {
         super(trans, DelegateDAO.class.getSimpleName(),aDao,Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         init(trans);
     }
-    
-    
+
+
     public static class Data implements Bytification {
         public String user;
         public String delegate;
@@ -70,13 +70,13 @@ public class DelegateDAO extends CassDAOImpl<AuthzTrans, DelegateDAO.Data> {
             DelegateLoader.dflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             DelegateLoader.dflt.unmarshal(this, toDIS(bb));
         }
     }
-    
+
     private static class DelegateLoader extends Loader<Data> implements Streamer<Data>{
         public static final int MAGIC=0xD823ACF2;
         public static final int VERSION=1;
@@ -87,7 +87,7 @@ public class DelegateDAO extends CassDAOImpl<AuthzTrans, DelegateDAO.Data> {
         public DelegateLoader(int keylimit) {
             super(keylimit);
         }
-        
+
         @Override
         public Data load(Data data, Row row) {
             data.user = row.getString(0);
@@ -126,8 +126,8 @@ public class DelegateDAO extends CassDAOImpl<AuthzTrans, DelegateDAO.Data> {
             data.delegate = readString(is,buff);
             data.expires = new Date(is.readLong());
         }
-    }    
-    
+    }
+
     private void init(AuthzTrans trans) {
         String[] helpers = setCRUD(trans, TABLE, Data.class, DelegateLoader.dflt);
         psByDelegate = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
index eafdb88..15c2b55 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -38,9 +38,9 @@ import com.datastax.driver.core.ResultSet;
 import com.datastax.driver.core.Row;
 
 /**
- * FutureDAO stores Construction information to create 
+ * FutureDAO stores Construction information to create
  * elements at another time.
- * 
+ *
  * @author Jonathan
  * 8/20/2013
  */
@@ -152,7 +152,7 @@ public class FutureDAO extends CassDAOImpl<AuthzTrans,FutureDAO.Data> {
             return Result.err(rs);
         }
         wasModified(trans, CRUD.create, data, null, id);
-        return Result.ok(data);    
+        return Result.ok(data);
     }
 
     /**
@@ -172,10 +172,10 @@ public class FutureDAO extends CassDAOImpl<AuthzTrans,FutureDAO.Data> {
         hd.target = TABLE;
         hd.subject = subject?override[1]:"";
         hd.memo = memo?String.format("%s by %s", override[0], hd.user):data.memo;
-    
+
         if (historyDAO.create(trans, hd).status!=Status.OK) {
             trans.error().log("Cannot log to History");
         }
     }
-    
+
 }
index 82874ce..6dd0fdd 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,16 +40,16 @@ import com.datastax.driver.core.Row;
 
 /**
  * History
- * 
+ *
  * Originally written PE3617
  * @author Jonathan
- * 
+ *
  * History is a special case, because we don't want Updates or Deletes...  Too likely to mess up history.
- * 
+ *
  * Jonathan 9-9-2013 - Found a problem with using "Prepare".  You cannot prepare anything with a "now()" in it, as
  * it is evaluated once during the prepare, and kept.  That renders any use of "now()" pointless.  Therefore
  * the Create function needs to be run fresh everytime.
- * 
+ *
  * Fixed in Cassandra 1.2.6 https://issues.apache.org/jira/browse/CASSANDRA-5616
  *
  */
@@ -84,7 +84,7 @@ public class HistoryDAO extends CassDAOImpl<AuthzTrans, HistoryDAO.Data> {
         public String  memo;
         public ByteBuffer reconstruct;
     }
-    
+
     public static class HistLoader extends Loader<Data> {
         public HistLoader(int keylimit) {
             super(keylimit);
@@ -117,11 +117,10 @@ public class HistoryDAO extends CassDAOImpl<AuthzTrans, HistoryDAO.Data> {
             obj[++idx]=data.target;
             obj[++idx]=data.subject;
             obj[++idx]=data.memo;
-//            obj[++idx]=data.detail;
-            obj[++idx]=data.reconstruct;        
+            obj[++idx]=data.reconstruct;
         }
     };
-    
+
     private void init(AuthzTrans trans) {
         // Loader must match fields order
         defLoader = new HistLoader(KEYLIMIT);
@@ -130,19 +129,18 @@ public class HistoryDAO extends CassDAOImpl<AuthzTrans, HistoryDAO.Data> {
         // Need a specialty Creator to handle the "now()"
         // 9/9/2013 - Jonathan - Just great... now() is evaluated once on Client side, invalidating usage (what point is a now() from a long time in the past?
         // Unless this is fixed, we're putting in non-prepared statement
-        // Solved in Cassandra.  Make sure you are running 1.2.6 Cassandra or later. https://issues.apache.org/jira/browse/CASSANDRA-5616    
+        // Solved in Cassandra.  Make sure you are running 1.2.6 Cassandra or later. https://issues.apache.org/jira/browse/CASSANDRA-5616
         replace(CRUD.create, new PSInfo(trans, "INSERT INTO history (" +  helpers[FIELD_COMMAS] +
-                    ") VALUES(now(),?,?,?,?,?,?,?)", 
+                    ") VALUES(now(),?,?,?,?,?,?,?)",
                     new HistLoader(0) {
                         @Override
                         protected void key(Data data, int idx, Object[] obj) {
                         }
                     },writeConsistency)
                 );
-//        disable(CRUD.Create);
-        
-        replace(CRUD.read, new PSInfo(trans, SELECT_SP +  helpers[FIELD_COMMAS] +
-                " FROM history WHERE id = ?", defLoader,readConsistency) 
+
+       replace(CRUD.read, new PSInfo(trans, SELECT_SP +  helpers[FIELD_COMMAS] +
+                " FROM history WHERE id = ?", defLoader,readConsistency)
 //                new HistLoader(2) {
 //                    @Override
 //                    protected void key(Data data, int idx, Object[] obj) {
@@ -153,12 +151,12 @@ public class HistoryDAO extends CassDAOImpl<AuthzTrans, HistoryDAO.Data> {
             );
         disable(CRUD.update);
         disable(CRUD.delete);
-        
-        readByUser = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + 
+
+        readByUser = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] +
                 " FROM history WHERE user = ?", defLoader,readConsistency);
-        readBySubject = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + 
+        readBySubject = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] +
                 " FROM history WHERE subject = ? and target = ? ALLOW FILTERING", defLoader,readConsistency);
-        readByYRMN = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + 
+        readByYRMN = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] +
                 " FROM history WHERE yr_mon = ?", defLoader,readConsistency);
         async(true); //TODO dropping messages with Async
     }
@@ -169,9 +167,9 @@ public class HistoryDAO extends CassDAOImpl<AuthzTrans, HistoryDAO.Data> {
         // Sonar claims that SimpleDateFormat is not thread safe, so we can't be static
         data.yr_mon = Integer.parseInt(new SimpleDateFormat("yyyyMM").format(now));
         // data.day_time = Integer.parseInt(dayTimeFormat.format(now));
-        return data;        
+        return data;
     }
-    
+
     public void createBatch(StringBuilder sb, Data data) {
         sb.append("INSERT INTO history (");
         sb.append(helpers[FIELD_COMMAS]);
@@ -213,7 +211,7 @@ public class HistoryDAO extends CassDAOImpl<AuthzTrans, HistoryDAO.Data> {
         }
         return extract(defLoader,rs.value,null,yyyymm.length>0?new YYYYMM(yyyymm):dflt);
     }
-    
+
     public Result<List<Data>> readBySubject(AuthzTrans trans, String subject, String target, int ... yyyymm) {
         if (yyyymm.length==0) {
             return Result.err(Status.ERR_BadData, "No or invalid yyyymm specified");
@@ -224,10 +222,10 @@ public class HistoryDAO extends CassDAOImpl<AuthzTrans, HistoryDAO.Data> {
         }
         return extract(defLoader,rs.value,null,yyyymm.length>0?new YYYYMM(yyyymm):dflt);
     }
-    
+
     private class YYYYMM implements Accept<Data> {
         private int[] yyyymm;
-        public YYYYMM(int yyyymm[]) {
+        public YYYYMM(int[] yyyymm) {
             this.yyyymm = yyyymm;
         }
         @Override
@@ -240,7 +238,7 @@ public class HistoryDAO extends CassDAOImpl<AuthzTrans, HistoryDAO.Data> {
             }
             return false;
         }
-        
+
     };
-    
+
 }
index 478cceb..3fad6a7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,14 +44,14 @@ import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.Row;
 
 /**
- * LocateDAO manages credentials. 
+ * LocateDAO manages credentials.
  * @author Jonathan
  * Date: 10/11/17
  */
 public class LocateDAO extends CassDAOImpl<AuthzTrans,LocateDAO.Data> {
     public static final String TABLE = "locate";
     private AbsCassDAO<AuthzTrans, Data>.PSInfo psName;
-    
+
     public LocateDAO(AuthzTrans trans, Cluster cluster, String keyspace) throws APIException, IOException {
         super(trans, LocateDAO.class.getSimpleName(),cluster, keyspace, Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         init(trans);
@@ -61,10 +61,10 @@ public class LocateDAO extends CassDAOImpl<AuthzTrans,LocateDAO.Data> {
         super(trans, LocateDAO.class.getSimpleName(), adao, Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         init(trans);
     }
-    
+
     public static final int KEYLIMIT = 3;
     public static class Data implements Bytification {
-        
+
         public String                    name;
         public String                    hostname;
         public int                        port;
@@ -87,14 +87,14 @@ public class LocateDAO extends CassDAOImpl<AuthzTrans,LocateDAO.Data> {
             }
             return subprotocol;
         }
-        
+
         @Override
         public ByteBuffer bytify() throws IOException {
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             LocateLoader.deflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             LocateLoader.deflt.unmarshal(this, toDIS(bb));
@@ -122,8 +122,8 @@ public class LocateDAO extends CassDAOImpl<AuthzTrans,LocateDAO.Data> {
     private static class LocateLoader extends Loader<Data> implements Streamer<Data>{
         public static final int MAGIC=85102934;
             public static final int VERSION=1;
-            public static final int BUFF_SIZE=48; // Note: 
-    
+            public static final int BUFF_SIZE=48; // Note:
+
             public static final LocateLoader deflt = new LocateLoader(KEYLIMIT);
             public LocateLoader(int keylimit) {
             super(keylimit);
@@ -188,7 +188,7 @@ public class LocateDAO extends CassDAOImpl<AuthzTrans,LocateDAO.Data> {
                     writeString(os,s);
                 }
             }
-            
+
             writeString(os,data.port_key==null?"":data.port_key.toString());
         }
 
@@ -207,7 +207,7 @@ public class LocateDAO extends CassDAOImpl<AuthzTrans,LocateDAO.Data> {
             data.latitude = is.readFloat();
             data.longitude = is.readFloat();
             data.protocol = readString(is,buff);
-            
+
             int size = is.readInt();
             data.subprotocol = new HashSet<>(size);
             for (int i=0;i<size;++i) {
@@ -221,7 +221,7 @@ public class LocateDAO extends CassDAOImpl<AuthzTrans,LocateDAO.Data> {
             }
         }
     }
-    
+
     public Result<List<LocateDAO.Data>> readByName(AuthzTrans trans, String service) {
             return psName.read(trans, "Read By Name", new Object[] {service});
     }
@@ -235,7 +235,7 @@ public class LocateDAO extends CassDAOImpl<AuthzTrans,LocateDAO.Data> {
         psName = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE name = ?", new LocateLoader(1),readConsistency);
     }
-    
+
     /**
      * Log Modification statements to History
      *
index 192887b..3e66948 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,7 +49,7 @@ public class Namespace implements Bytification {
     public Integer type;
     public String parent;
     public Namespace() {}
-    
+
     public Namespace(NsDAO.Data ndd) {
         name = ndd.name;
         description = ndd.description;
@@ -62,7 +62,7 @@ public class Namespace implements Bytification {
             }
         }
     }
-    
+
     public Namespace(NsDAO.Data ndd,List<String> owner, List<String> admin) {
         name = ndd.name;
         this.owner = owner;
@@ -108,7 +108,7 @@ public class Namespace implements Bytification {
         DataInputStream is = CassDAOImpl.toDIS(bb);
         /*int version = */Loader.readHeader(is,MAGIC,VERSION);
         // If Version Changes between Production runs, you'll need to do a switch Statement, and adequately read in fields
-        
+
         byte[] buff = new byte[BUFF_SIZE];
         name = Loader.readString(is, buff);
         type = is.readInt();
@@ -116,7 +116,7 @@ public class Namespace implements Bytification {
         owner = Loader.readStringList(is,buff);
         description = Loader.readString(is,buff);
         parent = Loader.readString(is,buff);
-        
+
     }
 
     /* (non-Javadoc)
@@ -126,7 +126,7 @@ public class Namespace implements Bytification {
     public int hashCode() {
         return name.hashCode();
     }
-    
+
 
     /* (non-Javadoc)
      * @see java.lang.Object#toString()
index 10e7844..24bd01d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,9 +54,9 @@ import com.datastax.driver.core.exceptions.DriverException;
 
 /**
  * NsDAO
- * 
+ *
  * Data Access Object for Namespace Data
- * 
+ *
  * @author Jonathan
  *
  */
@@ -73,7 +73,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
     private static final String APPLY_BATCH = "\nAPPLY BATCH;\n";
     private static final String SQSCCR = "';\n";
     private static final String SQCSQ = "','";
-    
+
     private HistoryDAO historyDAO;
     private CacheInfoDAO infoDAO;
     private PSInfo psNS;
@@ -97,7 +97,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
     private static final int KEYLIMIT = 1;
     /**
      * Data class that matches the Cassandra Table "role"
-     * 
+     *
      * @author Jonathan
      */
     public static class Data extends CacheableData implements Bytification {
@@ -135,19 +135,19 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
             NSLoader.deflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             NSLoader.deflt.unmarshal(this,toDIS(bb));
         }
-        
+
         @Override
         public String toString() {
             return name;
         }
-        
+
     }
-    
+
     private void init(AuthzTrans trans) throws APIException, IOException {
         // Set up sub-DAOs
         if (historyDAO==null) {
@@ -158,19 +158,19 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
     }
 
         String[] helpers = setCRUD(trans, TABLE, Data.class, NSLoader.deflt,4/*need to skip attrib */);
-        
+
         psNS = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE parent = ?", new NSLoader(1),readConsistency);
 
     }
-    
+
     private static final class NSLoader extends Loader<Data> implements Streamer<Data> {
         public static final int MAGIC=250935515;
         public static final int VERSION=1;
         public static final int BUFF_SIZE=48;
 
         public static final NSLoader deflt = new NSLoader(KEYLIMIT);
-        
+
         public NSLoader(int keylimit) {
             super(keylimit);
         }
@@ -198,7 +198,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
             obj[++idx]=data.description;
             obj[++idx]=data.parent;
         }
-        
+
         @Override
         public void marshal(Data data, DataOutputStream os) throws IOException {
             writeHeader(os,MAGIC,VERSION);
@@ -221,7 +221,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
         public void unmarshal(Data data, DataInputStream is) throws IOException {
             /*int version = */readHeader(is,MAGIC,VERSION);
             // If Version Changes between Production runs, you'll need to do a switch Statement, and adequately read in fields
-            
+
             byte[] buff = new byte[BUFF_SIZE];
             data.name = readString(is, buff);
             data.type = is.readInt();
@@ -237,7 +237,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
         }
 
     }
-    
+
     @Override
     public Result<Data> create(AuthzTrans trans, Data data) {
         String ns = data.name;
@@ -253,8 +253,8 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
         stmt.append(APPLY_BATCH);
         try {
             getSession(trans).execute(stmt.toString());
-//// TEST CODE for Exception                
-//            boolean force = true; 
+//// TEST CODE for Exception
+//            boolean force = true;
 //            if (force) {
 //                throw new com.datastax.driver.core.exceptions.NoHostAvailableException(new HashMap<>());
 ////                throw new com.datastax.driver.core.exceptions.AuthenticationException(new InetSocketAddress(9999),"Sample Message");
@@ -293,7 +293,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
                     attribUpdateStmt(stmt, ns, es.getKey(),es.getValue());
                 }
             }
-            
+
             // No point in deleting... insert overwrites...
 //            for (Entry<String, String> es : remoteAttr.entrySet()) {
 //                str = localAttr.get(es.getKey());
@@ -320,7 +320,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
     @Override
     public Result<List<Data>> read(AuthzTrans trans, Data data) {
         Result<List<Data>> rld = super.read(trans, data);
-        
+
         if (rld.isOKhasData()) {
             for (Data d : rld.value) {
                 // Note: Map is null at this point, save time/mem by assignment
@@ -375,17 +375,17 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
         return super.delete(trans, data, reread);
 
     }
-    
+
     public Result<Map<String,String>> readAttribByNS(AuthzTrans trans, String ns) {
         Map<String,String> map = new HashMap<>();
         TimeTaken tt = trans.start("readAttribByNS " + ns, Env.REMOTE);
         try {
-            ResultSet rs = getSession(trans).execute("SELECT key,value FROM " 
-                    + TABLE_ATTRIB 
+            ResultSet rs = getSession(trans).execute("SELECT key,value FROM "
+                    + TABLE_ATTRIB
                     + " WHERE ns='"
                     + ns
                     + "';");
-            
+
             for (Iterator<Row> iter = rs.iterator();iter.hasNext(); ) {
                 Row r = iter.next();
                 map.put(r.getString(0), r.getString(1));
@@ -403,12 +403,12 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
         Set<String> set = new HashSet<>();
         TimeTaken tt = trans.start("readNsBykey " + key, Env.REMOTE);
         try {
-            ResultSet rs = getSession(trans).execute("SELECT ns FROM " 
-                + TABLE_ATTRIB 
+            ResultSet rs = getSession(trans).execute("SELECT ns FROM "
+                + TABLE_ATTRIB
                 + " WHERE key='"
                 + key
                 + "';");
-        
+
             for (Iterator<Row> iter = rs.iterator();iter.hasNext(); ) {
                 Row r = iter.next();
                 set.add(r.getString(0));
@@ -431,7 +431,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
             return Result.err(Result.ERR_Backend, CassAccess.ERR_ACCESS_MSG);
         }
     }
-    
+
     private StringBuilder attribInsertStmt(StringBuilder sb, String ns, String key, String value) {
         sb.append("INSERT INTO ");
         sb.append(TABLE_ATTRIB);
@@ -457,7 +457,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
         sb.append("';");
         return sb;
     }
-    
+
 
     public Result<Void> attribRemove(AuthzTrans trans, String ns, String key) {
         try {
@@ -468,7 +468,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
             return Result.err(Result.ERR_Backend, CassAccess.ERR_ACCESS_MSG);
         }
     }
-    
+
     private StringBuilder attribDeleteStmt(StringBuilder stmt, String ns, String key) {
         stmt.append("DELETE FROM ");
         stmt.append(TABLE_ATTRIB);
@@ -479,7 +479,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
         stmt.append("';");
         return stmt;
     }
-    
+
     private void attribDeleteAllStmt(StringBuilder stmt, Data data) {
         stmt.append("  DELETE FROM ");
         stmt.append(TABLE_ATTRIB);
@@ -505,7 +505,7 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
      */
     public Result<Void> addDescription(AuthzTrans trans, String ns, String description) {
         try {
-            getSession(trans).execute(UPDATE_SP + TABLE + " SET description = '" 
+            getSession(trans).execute(UPDATE_SP + TABLE + " SET description = '"
                 + description.replace("'", "''") + "' WHERE name = '" + ns + "';");
         } catch (DriverException | APIException | IOException e) {
             reportPerhapsReset(trans,e);
@@ -521,11 +521,11 @@ public class NsDAO extends CassDAOImpl<AuthzTrans,NsDAO.Data> {
     public Result<List<Data>> getChildren(AuthzTrans trans, String parent) {
         return psNS.read(trans, R_TEXT, new Object[]{parent});
     }
-        
+
 
     /**
      * Log Modification statements to History
-     * 
+     *
      * @param modified           which CRUD action was done
      * @param data               entity data that needs a log entry
      * @param overrideMessage    if this is specified, we use it rather than crafting a history message based on data
index 2beeaf3..017c813 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,7 +25,7 @@ public class NsSplit {
     public final String ns;
     public final String name;
     public final NsDAO.Data nsd;
-    
+
     public NsSplit(NsDAO.Data nsd, String child) {
         this.nsd = nsd;
         if (child.startsWith(nsd.name)) {
@@ -41,7 +41,7 @@ public class NsSplit {
             ns = null;
         }
     }
-    
+
     public NsSplit(String ns, String name) {
         this.ns = ns;
         this.name = name;
index e656a55..bc7aa22 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,19 +29,19 @@ package org.onap.aaf.auth.dao.cass;
 public enum NsType {
         UNKNOWN (-1),
         DOT (0),
-        ROOT (1), 
-        COMPANY (2), 
-        APP (3), 
-        STACKED_APP (10), 
+        ROOT (1),
+        COMPANY (2),
+        APP (3),
+        STACKED_APP (10),
         STACK (11);
-        
+
         public final int type;
         private NsType(int t) {
             type = t;
         }
         /**
          * This is not the Ordinal, but the Type that is stored in NS Tables
-         * 
+         *
          * @param t
          * @return
          */
@@ -53,7 +53,7 @@ public enum NsType {
             }
             return UNKNOWN;
         }
-        
+
         /**
          * Use this one rather than "valueOf" to avoid Exception
          * @param s
@@ -70,5 +70,5 @@ public enum NsType {
             return UNKNOWN;
         }
 
-        
+
 }
index 5d0f084..bda7ef0 100644 (file)
@@ -3,13 +3,14 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 IBM.
  * ===========================================================================
  * 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.
@@ -44,19 +45,19 @@ import com.datastax.driver.core.Cluster;
 import com.datastax.driver.core.Row;
 
 /**
- * CredDAO manages credentials. 
+ * CredDAO manages credentials.
  * @author Jonathan
  * Date: 7/19/13
  */
 public class OAuthTokenDAO extends CassDAOImpl<AuthzTrans,OAuthTokenDAO.Data> {
     public static final String TABLE = "oauth_token";
     private AbsCassDAO<AuthzTrans, Data>.PSInfo psByUser;
-    
+
     public OAuthTokenDAO(AuthzTrans trans, Cluster cluster, String keyspace) {
         super(trans, OAuthTokenDAO.class.getSimpleName(),cluster, keyspace, Data.class,TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
         init(trans);
     }
-    
+
     public OAuthTokenDAO(AuthzTrans trans, AbsCassDAO<AuthzTrans,?> aDao) {
             super(trans, OAuthTokenDAO.class.getSimpleName(),aDao, Data.class, TABLE, readConsistency(trans,TABLE), writeConsistency(trans,TABLE));
             init(trans);
@@ -73,7 +74,7 @@ public class OAuthTokenDAO extends CassDAOImpl<AuthzTrans,OAuthTokenDAO.Data> {
         public String                    refresh;
         public Date                      expires;
         public long                        exp_sec;
-        public String                     content;  
+        public String                     content;
         public Set<String>                  scopes;
         public String                    state;
         public String                    req_ip; // requesting
@@ -93,27 +94,27 @@ public class OAuthTokenDAO extends CassDAOImpl<AuthzTrans,OAuthTokenDAO.Data> {
             OAuthLoader.deflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             OAuthLoader.deflt.unmarshal(this, toDIS(bb));
         }
 
         public String toString() {
-            return user.toString() + ' ' + id.toString() + ' ' + Chrono.dateTime(expires) + (active?"":"in") + "active";
+            return user + ' ' + id + ' ' + Chrono.dateTime(expires) + (active?"":"in") + "active";
         }
     }
 
     private static class OAuthLoader extends Loader<Data> implements Streamer<Data>{
         public static final int MAGIC=235677843;
             public static final int VERSION=1;
-            public static final int BUFF_SIZE=96; // Note: only used when  
-    
+            public static final int BUFF_SIZE=96; // Note: only used when
+
             public static final OAuthLoader deflt = new OAuthLoader(KEYLIMIT);
             public OAuthLoader(int keylimit) {
                 super(keylimit);
             }
-    
+
             @Override
         public Data load(Data data, Row row) {
             data.id = row.getString(0);
index 699d6e2..a59682c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -53,10 +53,10 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
 
     public static final int CACHE_SEG = 0x40; // yields segment 0x0-0x3F
     private static final String STAR = "*";
-    
+
     private final HistoryDAO historyDAO;
     private final CacheInfoDAO infoDAO;
-    
+
     private PSInfo psNS, psChildren, psByType;
 
     public PermDAO(AuthzTrans trans, Cluster cluster, String keyspace) throws APIException, IOException {
@@ -80,11 +80,11 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
         public String        type;
         public String        instance;
         public String        action;
-        public Set<String>  roles; 
+        public Set<String>  roles;
         public String        description;
 
         public Data() {}
-        
+
         public Data(NsSplit nss, String instance, String action) {
             ns = nss.ns;
             type = nss.name;
@@ -103,7 +103,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
             sb.append(type);
             return sb.toString();
         }
-        
+
         public String fullPerm() {
             StringBuilder sb = new StringBuilder();
             if(ns==null) {
@@ -123,10 +123,10 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
         public String encode() {
             return ns + '|' + type + '|' + instance + '|' + action;
         }
-        
+
         /**
          * Decode Perm String, including breaking into appropriate Namespace
-         * 
+         *
          * @param trans
          * @param q
          * @param p
@@ -158,7 +158,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
 
         /**
          * Decode Perm String, including breaking into appropriate Namespace
-         * 
+         *
          * @param trans
          * @param q
          * @param p
@@ -169,7 +169,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
             if (ss[2]==null) {
                 return Result.err(Status.ERR_BadData,"Perm Encodings must be separated by '|'");
             }
-            
+
             if (ss[3]==null) { // older 3 part encoding must be evaluated for NS
                 ss[3] = ss[2];
                 ss[2] = ss[1];
@@ -206,7 +206,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
             }
             return rv;
         }
-        
+
         public static Data create(AuthzTrans trans, Question q, String name) {
             String[] s = name.split("\\|");
             Result<NsSplit> rdns = q.deriveNsSplit(trans, s[0]);
@@ -240,7 +240,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
             }
             return rv;
         }
-        
+
         ////////////////////////////////////////
         // Getters
         public Set<String> roles(boolean mutable) {
@@ -268,7 +268,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
             PermLoader.deflt.marshal(this, new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             PermLoader.deflt.unmarshal(this, toDIS(bb));
@@ -279,18 +279,18 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
             return encode();
         }
     }
-    
+
     private static class PermLoader extends Loader<Data> implements Streamer<Data> {
         public static final int MAGIC=283939453;
         public static final int VERSION=1;
         public static final int BUFF_SIZE=96;
 
         public static final PermLoader deflt = new PermLoader(KEYLIMIT);
-        
+
         public PermLoader(int keylimit) {
             super(keylimit);
         }
-        
+
         @Override
         public Data load(Data data, Row row) {
             // Int more efficient Match "fields" string
@@ -343,25 +343,25 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
             data.description = readString(is,buff);
         }
     }
-    
+
     private void init(AuthzTrans trans) {
         // the 3 is the number of key fields
         String[] helpers = setCRUD(trans, TABLE, Data.class, PermLoader.deflt);
-        
+
         // Other SELECT style statements... match with a local Method
-        psByType = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE + 
+        psByType = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE ns = ? AND type = ?", new PermLoader(2) {
             @Override
             protected void key(Data data, int idx, Object[] obj) {
                 obj[idx]=data.type;
             }
         },readConsistency);
-        
+
         psNS = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE ns = ?", new PermLoader(1),readConsistency);
-                
-        psChildren = new PSInfo(trans, SELECT_SP +  helpers[FIELD_COMMAS] +  " FROM " + TABLE + 
-                " WHERE ns=? AND type > ? AND type < ?", 
+
+        psChildren = new PSInfo(trans, SELECT_SP +  helpers[FIELD_COMMAS] +  " FROM " + TABLE +
+                " WHERE ns=? AND type > ? AND type < ?",
                 new PermLoader(3) {
             @Override
             protected void key(Data data, int _idx, Object[] obj) {
@@ -377,7 +377,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
 
     /**
      * Add a single Permission to the Role's Permission Collection
-     * 
+     *
      * @param trans
      * @param roleFullName
      * @param perm
@@ -438,11 +438,11 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
     }
 
 
-    
+
     /**
-     * Additional method: 
+     * Additional method:
      *         Select all Permissions by Name
-     * 
+     *
      * @param name
      * @return
      * @throws DAOException
@@ -450,7 +450,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
     public Result<List<Data>> readByType(AuthzTrans trans, String ns, String type) {
         return psByType.read(trans, R_TEXT, new Object[]{ns, type});
     }
-    
+
     public Result<List<Data>> readChildren(AuthzTrans trans, String ns, String type) {
         return psChildren.read(trans, R_TEXT, new Object[]{ns, type+DOT, type + DOT_PLUS_ONE});
     }
@@ -461,7 +461,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
 
     /**
      * Add description to this permission
-     * 
+     *
      * @param trans
      * @param ns
      * @param type
@@ -473,7 +473,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
     public Result<Void> addDescription(AuthzTrans trans, String ns, String type,
             String instance, String action, String description) {
         try {
-            getSession(trans).execute(UPDATE_SP + TABLE + " SET description = '" 
+            getSession(trans).execute(UPDATE_SP + TABLE + " SET description = '"
                 + description + "' WHERE ns = '" + ns + "' AND type = '" + type + "'"
                 + "AND instance = '" + instance + "' AND action = '" + action + "';");
         } catch (DriverException | APIException | IOException e) {
@@ -486,11 +486,11 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
         data.type=type;
         data.instance=instance;
         data.action=action;
-        wasModified(trans, CRUD.update, data, "Added description " + description + " to permission " 
+        wasModified(trans, CRUD.update, data, "Added description " + description + " to permission "
                 + data.encode(), null );
         return Result.ok();
     }
-    
+
     /**
      * Log Modification statements to History
      */
@@ -510,7 +510,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
         } else {
             hd.memo = String.format("%sd %s|%s|%s", modified.name(),data.fullType(),data.instance,data.action);
         }
-        
+
         if (modified==CRUD.delete) {
             try {
                 hd.reconstruct = data.bytify();
@@ -518,7 +518,7 @@ public class PermDAO extends CassDAOImpl<AuthzTrans,PermDAO.Data> {
                 trans.error().log(e,"Could not serialize PermDAO.Data");
             }
         }
-        
+
         if (historyDAO.create(trans, hd).status!=Status.OK) {
             trans.error().log("Cannot log to History");
         }
index e5c9755..ae8d525 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,7 +50,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
 
     public static final String TABLE = "role";
     public static final int CACHE_SEG = 0x40; // yields segment 0x0-0x3F
-    
+
     private final HistoryDAO historyDAO;
     private final CacheInfoDAO infoDAO;
 
@@ -96,34 +96,34 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
             }
             return perms;
         }
-        
+
         public static Data create(NsDAO.Data ns, String name) {
-            NsSplit nss = new NsSplit(ns,name);        
+            NsSplit nss = new NsSplit(ns,name);
             RoleDAO.Data rv = new Data();
             rv.ns = nss.ns;
             rv.name=nss.name;
             return rv;
         }
-        
+
         public String fullName() {
             StringBuilder sb = new StringBuilder();
             if(ns==null) {
                 sb.append('.');
             } else {
                 sb.append(ns);
-                sb.append(ns.indexOf('@')<0?'.':':'); 
+                sb.append(ns.indexOf('@')<0?'.':':');
             }
             sb.append(name);
             return sb.toString();
         }
-        
+
         public String encode() {
             return ns + '|' + name;
         }
-        
+
         /**
          * Decode Perm String, including breaking into appropriate Namespace
-         * 
+         *
          * @param trans
          * @param q
          * @param r
@@ -171,7 +171,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
 
         /**
          * Decode Perm String, including breaking into appropriate Namespace
-         * 
+         *
          * @param trans
          * @param q
          * @param p
@@ -189,7 +189,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
             }
             return Result.ok(ss);
         }
-        
+
         @Override
         public int[] invalidate(Cached<?,?> cache) {
             return new int[] {
@@ -205,7 +205,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
             RoleLoader.deflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             RoleLoader.deflt.unmarshal(this, toDIS(bb));
@@ -223,11 +223,11 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
         public static final int BUFF_SIZE=96;
 
         public static final RoleLoader deflt = new RoleLoader(KEYLIMIT);
-        
+
         public RoleLoader(int keylimit) {
             super(keylimit);
         }
-        
+
         @Override
         public Data load(Data data, Row row) {
             // Int more efficient
@@ -275,15 +275,15 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
 
     private void init(AuthzTrans trans) {
         String[] helpers = setCRUD(trans, TABLE, Data.class, RoleLoader.deflt);
-        
+
         psNS = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE ns = ?", new RoleLoader(1),readConsistency);
 
         psName = new PSInfo(trans, SELECT_SP + helpers[FIELD_COMMAS] + " FROM " + TABLE +
                 " WHERE name = ?", new RoleLoader(1),readConsistency);
 
-        psChildren = new PSInfo(trans, SELECT_SP +  helpers[FIELD_COMMAS] +  " FROM " + TABLE + 
-                " WHERE ns=? AND name > ? AND name < ?", 
+        psChildren = new PSInfo(trans, SELECT_SP +  helpers[FIELD_COMMAS] +  " FROM " + TABLE +
+                " WHERE ns=? AND name > ? AND name < ?",
                 new RoleLoader(3) {
             @Override
             protected void key(Data data, int _idx, Object[] obj) {
@@ -293,7 +293,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
                 obj[++idx]=data.name + DOT_PLUS_ONE;
             }
         },readConsistency);
-        
+
     }
 
     public Result<List<Data>> readNS(AuthzTrans trans, String ns) {
@@ -306,7 +306,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
 
     public Result<List<Data>> readChildren(AuthzTrans trans, String ns, String role) {
         if (role.length()==0 || "*".equals(role)) {
-            return psChildren.read(trans, R_TEXT, new Object[]{ns, FIRST_CHAR, LAST_CHAR}); 
+            return psChildren.read(trans, R_TEXT, new Object[]{ns, FIRST_CHAR, LAST_CHAR});
         } else {
             return psChildren.read(trans, R_TEXT, new Object[]{ns, role+DOT, role+DOT_PLUS_ONE});
         }
@@ -314,7 +314,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
 
     /**
      * Add a single Permission to the Role's Permission Collection
-     * 
+     *
      * @param trans
      * @param role
      * @param perm
@@ -326,7 +326,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
         // Note: Prepared Statements for Collection updates aren't supported
         String pencode = perm.encode();
         try {
-            getSession(trans).execute(UPDATE_SP + TABLE + " SET perms = perms + {'" + 
+            getSession(trans).execute(UPDATE_SP + TABLE + " SET perms = perms + {'" +
                 pencode + "'} WHERE " +
                 "ns = '" + role.ns + "' AND name = '" + role.name + "';");
         } catch (DriverException | APIException | IOException e) {
@@ -351,10 +351,10 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
         // Note: Prepared Statements for Collection updates aren't supported
 
         String pencode = perm.encode();
-        
+
         //ResultSet rv =
         try {
-            getSession(trans).execute(UPDATE_SP + TABLE + " SET perms = perms - {'" + 
+            getSession(trans).execute(UPDATE_SP + TABLE + " SET perms = perms - {'" +
                 pencode    + "'} WHERE " +
                 "ns = '" + role.ns + "' AND name = '" + role.name + "';");
         } catch (DriverException | APIException | IOException e) {
@@ -366,10 +366,10 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
         wasModified(trans, CRUD.update, role, "Removed permission " + pencode + " from role " + role.fullName() );
         return Result.ok();
     }
-    
+
     /**
      * Add description to role
-     * 
+     *
      * @param trans
      * @param ns
      * @param name
@@ -378,7 +378,7 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
      */
     public Result<Void> addDescription(AuthzTrans trans, String ns, String name, String description) {
         try {
-            getSession(trans).execute(UPDATE_SP + TABLE + " SET description = '" 
+            getSession(trans).execute(UPDATE_SP + TABLE + " SET description = '"
                 + description + "' WHERE ns = '" + ns + "' AND name = '" + name + "';");
         } catch (DriverException | APIException | IOException e) {
             reportPerhapsReset(trans,e);
@@ -391,8 +391,8 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
         wasModified(trans, CRUD.update, data, "Added description " + description + " to role " + data.fullName(), null );
         return Result.ok();
     }
-    
-    
+
+
     /**
      * Log Modification statements to History
      * @param modified           which CRUD action was done
@@ -426,5 +426,5 @@ public class RoleDAO extends CassDAOImpl<AuthzTrans,RoleDAO.Data> {
         }
     }
 
-    
+
 }
\ No newline at end of file
index a4d0bf4..3a05eb3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,7 +28,7 @@ import org.onap.aaf.auth.layer.Result;
 
 /**
  * Add additional Behavior for Specific Applications for Results
- * 
+ *
  * In this case, we add additional BitField information accessible by
  * method (
  * @author Jonathan
@@ -36,11 +36,11 @@ import org.onap.aaf.auth.layer.Result;
  * @param <RV>
  */
 public class Status<RV> extends Result<RV> {
-    
+
     // Jonathan 10/1/2013:  Initially, I used enum, but it's not extensible.
     public final static int ERR_NsNotFound = Result.ERR_General+1,
                             ERR_RoleNotFound = Result.ERR_General+2,
-                            ERR_PermissionNotFound = Result.ERR_General+3, 
+                            ERR_PermissionNotFound = Result.ERR_General+3,
                             ERR_UserNotFound = Result.ERR_General+4,
                             ERR_UserRoleNotFound = Result.ERR_General+5,
                             ERR_DelegateNotFound = Result.ERR_General+6,
@@ -51,9 +51,9 @@ public class Status<RV> extends Result<RV> {
                             ACC_Future = Result.ERR_General+11,
                             ERR_ChoiceNeeded = Result.ERR_General+12,
                             ERR_FutureNotRequested = Result.ERR_General+13;
-  
+
     /**
-     * Constructor for Result set. 
+     * Constructor for Result set.
      * @param data
      * @param status
      */
@@ -66,7 +66,7 @@ public class Status<RV> extends Result<RV> {
             case OK: return "OK";
             case ERR_NsNotFound: return "ERR_NsNotFound";
             case ERR_RoleNotFound: return "ERR_RoleNotFound";
-            case ERR_PermissionNotFound: return "ERR_PermissionNotFound"; 
+            case ERR_PermissionNotFound: return "ERR_PermissionNotFound";
             case ERR_UserNotFound: return "ERR_UserNotFound";
             case ERR_UserRoleNotFound: return "ERR_UserRoleNotFound";
             case ERR_DelegateNotFound: return "ERR_DelegateNotFound";
@@ -81,8 +81,8 @@ public class Status<RV> extends Result<RV> {
             case ERR_NotFound: return "ERR_NotFound";
             case ERR_ChoiceNeeded: return "ERR_ChoiceNeeded";
         }
-        //case ERR_General:   or unknown... 
+        //case ERR_General:   or unknown...
         return "ERR_General";
     }
-    
+
 }
index b6cbcf8..813f55a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,15 +47,15 @@ import com.datastax.driver.core.Row;
 
 public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
     public static final String TABLE = "user_role";
-    
+
     public static final int CACHE_SEG = 0x40; // yields segment 0x0-0x3F
 
     private static final String TRANS_UR_SLOT = "_TRANS_UR_SLOT_";
     public Slot transURSlot;
-    
+
     private final HistoryDAO historyDAO;
     private final CacheInfoDAO infoDAO;
-    
+
     private PSInfo psByUser, psByRole, psUserInRole;
 
 
@@ -82,10 +82,10 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
     public static class Data extends CacheableData implements Bytification {
         public String  user;
         public String  role;
-        public String  ns; 
-        public String  rname; 
+        public String  ns;
+        public String  rname;
         public Date   expires;
-        
+
         @Override
         public int[] invalidate(Cached<?,?> cache) {
             // Note: I'm not worried about Name collisions, because the formats are different:
@@ -105,7 +105,7 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
             URLoader.deflt.marshal(this,new DataOutputStream(baos));
             return ByteBuffer.wrap(baos.toByteArray());
         }
-        
+
         @Override
         public void reconstitute(ByteBuffer bb) throws IOException {
             URLoader.deflt.unmarshal(this, toDIS(bb));
@@ -116,14 +116,14 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
             this.rname = rname;
             this.role = ns + '.' + rname;
         }
-        
+
         public void role(RoleDAO.Data rdd) {
             ns = rdd.ns;
             rname = rdd.name;
             role = rdd.fullName();
         }
 
-        
+
         public boolean role(AuthzTrans trans, Question ques, String role) {
             this.role = role;
             Result<NsSplit> rnss = ques.deriveNsSplit(trans, role);
@@ -141,12 +141,12 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
             return user + '|' + ns + '|' +  rname + '|' + Chrono.dateStamp(expires);
         }
     }
-    
+
     private static class URLoader extends Loader<Data> implements Streamer<Data> {
         public static final int MAGIC=738469903;
         public static final int VERSION=1;
         public static final int BUFF_SIZE=48;
-        
+
         public static final URLoader deflt = new URLoader(KEYLIMIT);
 
         public URLoader(int keylimit) {
@@ -177,7 +177,7 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
             obj[++idx]=data.rname;
             obj[++idx]=data.expires;
         }
-        
+
         @Override
         public void marshal(Data data, DataOutputStream os) throws IOException {
             writeHeader(os,MAGIC,VERSION);
@@ -193,7 +193,7 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
         public void unmarshal(Data data, DataInputStream is) throws IOException {
             /*int version = */readHeader(is,MAGIC,VERSION);
             // If Version Changes between Production runs, you'll need to do a switch Statement, and adequately read in fields
-            
+
             byte[] buff = new byte[BUFF_SIZE];
             data.user = readString(is,buff);
             data.role = readString(is,buff);
@@ -204,27 +204,27 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
         }
 
     };
-    
+
     private void init(AuthzTrans trans) {
         String[] helper = setCRUD(trans, TABLE, Data.class, URLoader.deflt);
-        
-        psByUser = new PSInfo(trans, SELECT_SP + helper[FIELD_COMMAS] + " FROM user_role WHERE user = ?", 
+
+        psByUser = new PSInfo(trans, SELECT_SP + helper[FIELD_COMMAS] + " FROM user_role WHERE user = ?",
             new URLoader(1) {
                 @Override
                 protected void key(Data data, int idx, Object[] obj) {
                     obj[idx]=data.user;
                 }
             },readConsistency);
-        
+
         // Note: We understand this call may have poor performance, so only should be used in Management (Delete) func
-        psByRole = new PSInfo(trans, SELECT_SP + helper[FIELD_COMMAS] + " FROM user_role WHERE role = ? ALLOW FILTERING", 
+        psByRole = new PSInfo(trans, SELECT_SP + helper[FIELD_COMMAS] + " FROM user_role WHERE role = ? ALLOW FILTERING",
                 new URLoader(1) {
                     @Override
                     protected void key(Data data, int idx, Object[] obj) {
                         obj[idx]=data.role;
                     }
                 },readConsistency);
-        
+
         psUserInRole = new PSInfo(trans,SELECT_SP + helper[FIELD_COMMAS] + " FROM user_role WHERE user = ? AND role = ?",
                 URLoader.deflt,readConsistency);
     }
@@ -243,7 +243,7 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
     public Result<List<Data>> readByRole(AuthzTrans trans, String role) {
         return psByRole.read(trans, R_TEXT + " by Role " + role, new Object[]{role});
     }
-    
+
     /**
      * Direct Lookup of User Role
      * Don't forget to check for Expiration
@@ -266,7 +266,7 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
 
         HistoryDAO.Data hd = HistoryDAO.newInitedData();
         HistoryDAO.Data hdRole = HistoryDAO.newInitedData();
-        
+
         hd.user = hdRole.user = trans.user();
         hd.action = modified.name();
         // Modifying User/Role is an Update to Role, not a Create.  Jonathan, 07-14-2015
@@ -276,17 +276,17 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
         hd.subject = subject?override[1] : (data.user + '|'+data.role);
         hdRole.subject = data.role;
         switch(modified) {
-            case create: 
+            case create:
                 hd.memo = hdRole.memo = memo
                     ? String.format("%s by %s", override[0], hd.user)
-                    : String.format("%s added to %s",data.user,data.role);    
+                    : String.format("%s added to %s",data.user,data.role);
                 break;
-            case update: 
+            case update:
                 hd.memo = hdRole.memo = memo
                     ? String.format("%s by %s", override[0], hd.user)
                     : String.format("%s - %s was updated",data.user,data.role);
                 break;
-            case delete: 
+            case delete:
                 hd.memo = hdRole.memo = memo
                     ? String.format("%s by %s", override[0], hd.user)
                     : String.format("%s removed from %s",data.user,data.role);
@@ -305,7 +305,7 @@ public class UserRoleDAO extends CassDAOImpl<AuthzTrans,UserRoleDAO.Data> {
         if (historyDAO.create(trans, hd).status!=Status.OK) {
             trans.error().log("Cannot log to History");
         }
-        
+
         if (historyDAO.create(trans, hdRole).status!=Status.OK) {
             trans.error().log("Cannot log to History");
         }
index a92de21..27a1882 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index dd367c5..89643c4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -64,17 +64,17 @@ public class Function {
 
     public enum FUTURE_OP {
         C("Create"),U("Update"),D("Delete"),G("Grant"),UG("UnGrant"),A("Approval");
-        
+
         private String desc;
-    
+
         private FUTURE_OP(String desc) {
             this.desc = desc;
         }
-        
+
         public String desc() {
             return desc;
         }
-        
+
         /**
          *  Same as valueOf(), but passes back null instead of throwing Exception
          * @param value
@@ -94,7 +94,7 @@ public class Function {
 
     public enum OP_STATUS {
         E("Executed"),D("Denied"),P("Pending"),L("Lapsed");
-        
+
         private String desc;
         public final static Result<OP_STATUS> RE = Result.ok(OP_STATUS.E);
         public final static Result<OP_STATUS> RD = Result.ok(OP_STATUS.D);
@@ -104,11 +104,11 @@ public class Function {
         private OP_STATUS(String desc) {
             this.desc = desc;
         }
-        
+
         public String desc() {
             return desc;
         }
-        
+
     }
 
     public static final String FOP_CRED = "cred";
@@ -159,16 +159,16 @@ public class Function {
 
     /**
      * createNS
-     * 
+     *
      * Create Namespace
-     * 
+     *
      * @param trans
      * @param org
      * @param ns
      * @param user
      * @return
      * @throws DAOException
-     * 
+     *
      *             To create an NS, you need to: 1) validate permission to
      *             modify parent NS 2) Does NS exist already? 3) Create NS with
      *             a) "user" as owner. NOTE: Per 10-15 request for AAF 1.0 4)
@@ -185,7 +185,7 @@ public class Function {
                 Identity orgUser = org.getIdentity(trans, u);
                 String reason;
                 if (orgUser == null) {
-                    return Result.err(Status.ERR_Policy,"%s is not a valid user at %s",u,org.getName());    
+                    return Result.err(Status.ERR_Policy,"%s is not a valid user at %s",u,org.getName());
                 } else if ((reason=orgUser.mayOwn())!=null) {
                     if (org.isTestEnv()) {
                         String reason2;
@@ -242,7 +242,7 @@ public class Function {
             return Result.err(Status.ERR_ConflictAlreadyExists,
                     "Target Namespace already exists");
         }
-        
+
         // 2.1) Does role exist with that name
         if(cname!=null && q.roleDAO().read(trans, parent, cname).isOKhasData()) {
             return Result.err(Status.ERR_ConflictAlreadyExists,
@@ -297,7 +297,8 @@ public class Function {
         }
 
         // VALIDATIONS done... Add NS
-        if ((rq = q.nsDAO().create(trans, namespace.data())).notOK()) {
+        rq = q.nsDAO().create(trans, namespace.data());
+        if (rq.notOK()) {
             return Result.err(rq);
         }
 
@@ -347,7 +348,7 @@ public class Function {
                             trans.error().log(rpdd.errorString());
                         }
                     }
-                    
+
                     // Save off Old keys
                     String delP1 = rdd.ns;
                     String delP2 = rdd.name;
@@ -356,7 +357,7 @@ public class Function {
                     rdd.ns = namespace.name;
                     rdd.name = (delP2.length() > targetNameDot) ? delP2
                             .substring(targetNameDot) : "";
-                            
+
                     // Need to use non-cached, because switching namespaces, not
                     // "create" per se
                     if ((rq = q.roleDAO().create(trans, rdd)).isOK()) {
@@ -364,7 +365,7 @@ public class Function {
                         for (PermDAO.Data pdd : lpdd) {
                             q.permDAO().addRole(trans, pdd, rdd);
                         }
-                        // Change data for User Roles 
+                        // Change data for User Roles
                         Result<List<UserRoleDAO.Data>> rurd = q.userRoleDAO().readByRole(trans, rdd.fullName());
                         if (rurd.isOKhasData()) {
                             for (UserRoleDAO.Data urd : rurd.value) {
@@ -391,7 +392,7 @@ public class Function {
                 for (PermDAO.Data pdd : rpdc.value) {
                     // Remove old Perm from Roles, save them off
                     List<RoleDAO.Data> lrdd = new ArrayList<>();
-                    
+
                     for (String rl : pdd.roles(false)) {
                         Result<RoleDAO.Data> rrdd = RoleDAO.Data.decode(trans,q,rl);
                         if (rrdd.isOKhasData()) {
@@ -402,7 +403,7 @@ public class Function {
                             trans.error().log(rrdd.errorString());
                         }
                     }
-                    
+
                     // Save off Old keys
                     String delP1 = pdd.ns;
                     String delP2 = pdd.type;
@@ -481,9 +482,9 @@ public class Function {
 
     /**
      * deleteNS
-     * 
+     *
      * Delete Namespace
-     * 
+     *
      * @param trans
      * @param org
      * @param ns
@@ -491,8 +492,8 @@ public class Function {
      * @param user
      * @return
      * @throws DAOException
-     * 
-     * 
+     *
+     *
      *             To delete an NS, you need to: 1) validate permission to
      *             modify this NS 2) Find all Roles with this NS, and 2a) if
      *             Force, delete them, else modify to Parent NS 3) Find all
@@ -723,7 +724,7 @@ public class Function {
         if (rq.notOK()) {
             return Result.err(rq);
         }
-    
+
         rq = q.mayUser(trans, trans.user(), rq.value, Access.write);
         if (rq.notOK()) {
             Result<List<UserRoleDAO.Data>> ruinr = q.userRoleDAO().readUserInRole(trans, trans.user(),ns+".owner");
@@ -757,7 +758,7 @@ public class Function {
                 return Result.err(Status.ERR_Security,
                         "%s is not a valid AAF Credential", user);
             }
-    
+
             for (CredDAO.Data cd : cdr.value) {
                 if (cd.expires.after(now)) {
                     return Result.ok();
@@ -792,7 +793,7 @@ public class Function {
         }
 
         rq = q.mayUser(trans, trans.user(), rq.value, Access.write);
-        if (rq.notOK()) { 
+        if (rq.notOK()) {
             // Even though not a "writer", Owners still determine who gets to be an Admin
             Result<List<UserRoleDAO.Data>> ruinr = q.userRoleDAO().readUserInRole(trans, trans.user(),ns+".owner");
             if (!(ruinr.isOKhasData() && ruinr.value.get(0).expires.after(new Date()))) {
@@ -806,7 +807,7 @@ public class Function {
     /**
      * Helper function that moves permissions from a namespace being deleted to
      * its parent namespace
-     * 
+     *
      * @param trans
      * @param parent
      * @param sb
@@ -827,7 +828,7 @@ public class Function {
                 }
                 // Remove old Perm from Roles, save them off
                 List<RoleDAO.Data> lrdd = new ArrayList<>();
-                
+
                 for (String rl : pdd.roles(false)) {
                     Result<RoleDAO.Data> rrdd = RoleDAO.Data.decode(trans,q,rl);
                     if (rrdd.isOKhasData()) {
@@ -838,7 +839,7 @@ public class Function {
                         trans.error().log(rrdd.errorString());
                     }
                 }
-                
+
                 // Save off Old keys
                 String delP1 = pdd.ns;
                 NsSplit nss = new NsSplit(parent, pdd.fullType());
@@ -872,7 +873,7 @@ public class Function {
     /**
      * Helper function that moves roles from a namespace being deleted to its
      * parent namespace
-     * 
+     *
      * @param trans
      * @param parent
      * @param sb
@@ -903,7 +904,7 @@ public class Function {
                         trans.error().log(rpdd.errorString());
                     }
                 }
-                
+
                 // Save off Old keys
                 String delP1 = rdd.ns;
 
@@ -938,9 +939,9 @@ public class Function {
     /**
      * Create Permission (and any missing Permission between this and Parent) if
      * we have permission
-     * 
+     *
      * Pass in the desired Management Permission for this Permission
-     * 
+     *
      * If Force is set, then Roles listed will be created, if allowed,
      * pre-granted.
      */
@@ -1008,7 +1009,7 @@ public class Function {
         Result<PermDAO.Data> pdr = q.permDAO().create(trans, perm);
         if (pdr.isOK()) {
             return Result.ok();
-        } else { 
+        } else {
             return Result.err(pdr);
         }
     }
@@ -1118,10 +1119,10 @@ public class Function {
 
     /**
      * Only owner of Permission may add to Role
-     * 
+     *
      * If force set, however, Role will be created before Grant, if User is
      * allowed to create.
-     * 
+     *
      * @param trans
      * @param role
      * @param pd
@@ -1129,7 +1130,7 @@ public class Function {
      */
     public Result<Void> addPermToRole(AuthzTrans trans, RoleDAO.Data role,PermDAO.Data pd, boolean fromApproval) {
         String user = trans.user();
-        
+
         if (!fromApproval) {
             Result<NsDAO.Data> rRoleCo = q.deriveFirstNsForType(trans, role.ns, NsType.COMPANY);
             if (rRoleCo.notOK()) {
@@ -1148,14 +1149,14 @@ public class Function {
                     return Result.err(r);
                 }
             }
-            
+
 
             // Must be Perm Admin, or Granted Special Permission
             Result<NsDAO.Data> ucp = q.mayUser(trans, user, pd, Access.write);
             if (ucp.notOK()) {
                 // Don't allow CLI potential Grantees to change their own AAF
                 // Perms,
-                if ((ROOT_NS.equals(pd.ns) && Question.NS.equals(pd.type)) 
+                if ((ROOT_NS.equals(pd.ns) && Question.NS.equals(pd.type))
                         || !q.isGranted(trans, trans.user(),ROOT_NS,Question.PERM, rPermCo.value.name, "grant")) {
                 // Not otherwise granted
                 // TODO Needed?
@@ -1233,7 +1234,7 @@ public class Function {
 
     /**
      * Either Owner of Role or Permission may delete from Role
-     * 
+     *
      * @param trans
      * @param role
      * @param pd
@@ -1332,10 +1333,10 @@ public class Function {
 
     /**
      * Add a User to Role
-     * 
+     *
      * 1) Role must exist 2) User must be a known Credential (i.e. mechID ok if
      * Credential) or known Organizational User
-     * 
+     *
      * @param trans
      * @param org
      * @param urData
@@ -1352,9 +1353,9 @@ public class Function {
             rv = checkValidID(trans, new Date(), urData.user);
         }
         if (rv.notOK()) {
-            return rv; 
+            return rv;
         }
-        
+
         // Check if record exists
         if (q.userRoleDAO().read(trans, urData).isOKhasData()) {
             return Result.err(Status.ERR_ConflictAlreadyExists,
@@ -1366,8 +1367,8 @@ public class Function {
         }
 
         urData.expires = trans.org().expiration(null, Expiration.UserInRole, urData.user).getTime();
-        
-        
+
+
         Result<UserRoleDAO.Data> udr = q.userRoleDAO().create(trans, urData);
         if (udr.status == OK) {
             return Result.ok();
@@ -1392,9 +1393,9 @@ public class Function {
 
     /**
      * Extend User Role.
-     * 
+     *
      * extend the Expiration data, according to Organization rules.
-     * 
+     *
      * @param trans
      * @param org
      * @param urData
@@ -1406,7 +1407,7 @@ public class Function {
             return Result.err(Status.ERR_UserRoleNotFound,
                     "User Role does not exist");
         }
-        
+
         if (q.roleDAO().read(trans, urData.ns, urData.rname).notOKorIsEmpty()) {
             return Result.err(Status.ERR_RoleNotFound,
                     "Role [%s.%s] does not exist", urData.ns,urData.rname);
@@ -1485,13 +1486,13 @@ public class Function {
                     }
                 }
             }
-            
+
             if (owners.isEmpty()) {
                 return Result.err(Result.ERR_NotFound,"No Owners found for " + nsd.name);
             }
-            
+
             // Create Future Object
-            
+
             Result<FutureDAO.Data> fr = q.futureDAO().create(trans, data, id);
             if (fr.isOK()) {
                 sb.append("Created Future: ");
@@ -1518,7 +1519,7 @@ public class Function {
         } catch (Exception e) {
             return Result.err(e);
         }
-        
+
         return Result.ok(sb.toString());
     }
 
@@ -1528,7 +1529,7 @@ public class Function {
     public interface Lookup<T> {
         T get(AuthzTrans trans, Object ... keys);
     }
-    
+
     public Lookup<UserRoleDAO.Data> urDBLookup = new Lookup<UserRoleDAO.Data>() {
         @Override
         public UserRoleDAO.Data get(AuthzTrans trans, Object ... keys) {
@@ -1542,11 +1543,11 @@ public class Function {
     };
 
     /**
-     * Note: if "allApprovals for Ticket is null, it will be looked up.  
+     * Note: if "allApprovals for Ticket is null, it will be looked up.
      *       if "fdd" is null, it will be looked up, but
-     *       
+     *
      * They can be passed for performance reasons.
-     * 
+     *
      * @param trans
      * @param cd
      * @param allApprovalsForTicket
@@ -1575,7 +1576,7 @@ public class Function {
                 return Result.err(Result.ERR_BadData,"Cannot reconstitute %1",curr.memo);
             }
         }
-        
+
         boolean aDenial = false;
         int cntSuper=0, appSuper=0,cntOwner=0, appOwner=0;
         for (ApprovalDAO.Data add : la.get(trans)) {
@@ -1603,7 +1604,7 @@ public class Function {
                     break;
             }
         }
-        
+
         Result<OP_STATUS> ros=null;
         if (aDenial) {
             ros = OP_STATUS.RD;
@@ -1624,7 +1625,7 @@ public class Function {
                 }
             }
         }
-        
+
         // Decision: If not Denied, and at least owner, if exists, and at least one Super, if exists
         boolean goDecision = (cntOwner>0?appOwner>0:true) && (cntSuper>0?appSuper>0:true);
 
@@ -1720,7 +1721,7 @@ public class Function {
                     if (fop == FUTURE_OP.C) {
                         ros = set(OP_STATUS.RE, q.credDAO().dao().create(trans, data));
                     }
-                }                
+                }
             } catch (Exception e) {
                 trans.error().log("Exception: ", e.getMessage(),
                     " \n occurred while performing", curr.memo,
@@ -1732,7 +1733,7 @@ public class Function {
             //return Result.err(Status.ACC_Future, "Full Approvals not obtained: No action taken");
             ros = OP_STATUS.RP;
         }
-            
+
         return ros;
     }
 
@@ -1745,7 +1746,7 @@ public class Function {
         }
     }
 
-    private Result<ApprovalDAO.Data>  addIdentity(AuthzTrans trans, StringBuilder sb, 
+    private Result<ApprovalDAO.Data>  addIdentity(AuthzTrans trans, StringBuilder sb,
                         Boolean[] first, String user, String memo, FUTURE_OP op, Identity u, UUID ticket, String type) throws OrganizationException {
         ApprovalDAO.Data ad = new ApprovalDAO.Data();
         // Note ad.id is set by ApprovalDAO Create
index 3f0e92e..5a27e5e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,9 +38,9 @@ import org.onap.aaf.auth.env.AuthzTrans;
 import org.onap.aaf.auth.layer.Result;
 
 /**
- * PermLookup is a Storage class for the various pieces of looking up Permission 
+ * PermLookup is a Storage class for the various pieces of looking up Permission
  * during Transactions to avoid duplicate processing
- * 
+ *
  * @author Jonathan
  *
  */
@@ -53,9 +53,9 @@ public class PermLookup {
     private Result<List<RoleDAO.Data>> roles = null;
     private Result<Set<String>> permNames = null;
     private Result<List<PermDAO.Data>> perms = null;
-    
+
     private PermLookup() {}
-    
+
     public static PermLookup get(AuthzTrans trans, Question q, String user) {
         PermLookup lp=null;
         Map<String, PermLookup> permMap = trans.get(Question.PERMS, null);
@@ -74,7 +74,7 @@ public class PermLookup {
         }
         return lp;
     }
-    
+
     public Result<List<UserRoleDAO.Data>> getUserRoles() {
         if (userRoles==null) {
             userRoles = q.userRoleDAO().readByUser(trans,user);
@@ -143,7 +143,7 @@ public class PermLookup {
             return permNames;
         }
     }
-    
+
     public Result<List<PermDAO.Data>> getPerms(boolean lookup) {
         if (perms==null) {
             // Note: It should be ok for a Valid user to have no permissions -
@@ -156,7 +156,7 @@ public class PermLookup {
                         Map<String,PermDAO.Data> mspdd = new TreeMap<>();
                         Result<String[]> ap = PermDAO.Data.decodeToArray(trans, q, perm);
                         if (ap.isOK()) {
-                             
+
                             Result<List<PermDAO.Data>> rlpd = q.permDAO().read(perm,trans,ap.value);
                             if (rlpd.isOKhasData()) {
                                 for (PermDAO.Data pData : rlpd.value) {
@@ -174,7 +174,7 @@ public class PermLookup {
                                                     pdd.description = pData.description;
                                                     lpdd.add(pdd);
                                                 }
-                                                pdd.roles(true).add(pdr);    
+                                                pdd.roles(true).add(pdr);
                                                 break;
                                             }
                                         }
index c7ee593..1809686 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -81,9 +81,9 @@ import com.datastax.driver.core.Cluster;
 
 /**
  * Question HL DAO
- * 
+ *
  * A Data Access Combination Object which asks Security and other Questions
- * 
+ *
  * @author Jonathan
  *
  */
@@ -135,57 +135,57 @@ public class Question {
     public HistoryDAO historyDAO() {
         return historyDAO;
     }
-    
+
     private final CachedNSDAO nsDAO;
     public CachedNSDAO nsDAO() {
         return nsDAO;
     }
-    
+
     private final CachedRoleDAO roleDAO;
     public CachedRoleDAO roleDAO() {
         return roleDAO;
     }
-    
+
     private final CachedPermDAO permDAO;
     public CachedPermDAO permDAO() {
         return permDAO;
     }
-    
+
     private final CachedUserRoleDAO userRoleDAO;
     public CachedUserRoleDAO userRoleDAO() {
         return userRoleDAO;
     }
-    
+
     private final CachedCredDAO credDAO;
     public CachedCredDAO credDAO() {
         return credDAO;
     }
-    
+
     private final CachedCertDAO certDAO;
     public CachedCertDAO certDAO() {
         return certDAO;
     }
-    
+
     private final DelegateDAO delegateDAO;
     public DelegateDAO delegateDAO() {
         return delegateDAO;
     }
-    
+
     private final FutureDAO futureDAO;
     public FutureDAO futureDAO() {
         return futureDAO;
     }
-    
+
     private final ApprovalDAO approvalDAO;
     public ApprovalDAO approvalDAO() {
         return approvalDAO;
     }
-    
+
     public final LocateDAO locateDAO;
     public LocateDAO locateDAO() {
         return locateDAO;
     }
-    
+
     private final CacheInfoDAO cacheInfoDAO;
     private final int cldays;
     private final boolean alwaysSpecial;
@@ -216,18 +216,18 @@ public class Question {
         if (specialLogSlot==null) {
             specialLogSlot = trans.slot(AuthzTransFilter.SPECIAL_LOG_SLOT);
         }
-        
+
         if (transIDSlot==null) {
             transIDSlot = trans.slot(AuthzTransFilter.TRANS_ID_SLOT);
         }
-        
+
         AbsCassDAO.primePSIs(trans);
-        
+
         cldays = Integer.parseInt(trans.getProperty(Config.AAF_CRED_WARN_DAYS, Config.AAF_CRED_WARN_DAYS_DFT));
-        
+
         alwaysSpecial = Boolean.parseBoolean(trans.getProperty("aaf_always_special", Boolean.FALSE.toString()));
     }
-    
+
     /**
      * Note: This Constructor created for JUNIT Purposes.  Do not use otherwise.
      */
@@ -259,7 +259,7 @@ public class Question {
         CachedDAO.startCleansing(env, credDAO, userRoleDAO);
         CachedDAO.startRefresh(env, cacheInfoDAO);
     }
-    
+
     public void close(AuthzTrans trans) {
         historyDAO.close(trans);
         cacheInfoDAO.close(trans);
@@ -283,7 +283,7 @@ public class Question {
                 pdd.type = type.substring(colon+1);
                 pdd.instance = instance;
                 pdd.action = action;
-            
+
                 return Result.ok(pdd);
             } else {
                 return Result.err(Result.ERR_BadData,"Could not extract ns and type from " + type);
@@ -301,10 +301,10 @@ public class Question {
 
     /**
      * getPermsByUser
-     * 
+     *
      * Because this call is frequently called internally, AND because we already
      * look for it in the initial Call, we cache within the Transaction
-     * 
+     *
      * @param trans
      * @param user
      * @return
@@ -312,26 +312,26 @@ public class Question {
     public Result<List<PermDAO.Data>> getPermsByUser(AuthzTrans trans, String user, boolean lookup) {
         return PermLookup.get(trans, this, user).getPerms(lookup);
     }
-    
+
     public Result<List<PermDAO.Data>> getPermsByUserFromRolesFilter(AuthzTrans trans, String user, String forUser) {
         PermLookup plUser = PermLookup.get(trans, this, user);
         Result<Set<String>> plPermNames = plUser.getPermNames();
         if (plPermNames.notOK()) {
             return Result.err(plPermNames);
         }
-        
+
         Set<String> nss;
         if (forUser.equals(user)) {
             nss = null;
         } else {
-            // Setup a TreeSet to check on Namespaces to 
+            // Setup a TreeSet to check on Namespaces to
             nss = new TreeSet<>();
             PermLookup fUser = PermLookup.get(trans, this, forUser);
             Result<Set<String>> forUpn = fUser.getPermNames();
             if (forUpn.notOK()) {
                 return Result.err(forUpn);
             }
-            
+
             for (String pn : forUpn.value) {
                 Result<String[]> decoded = PermDAO.Data.decodeToArray(trans, this, pn);
                 if (decoded.isOKhasData()) {
@@ -356,7 +356,7 @@ public class Question {
                 trans.error().log(pn,", derived from a Role, is invalid.  Run Data Cleanup:",rpdd.errorString());
             }
         }
-        return Result.ok(rlpUser); 
+        return Result.ok(rlpUser);
     }
 
     public Result<List<PermDAO.Data>> getPermsByType(AuthzTrans trans, String type) {
@@ -389,7 +389,7 @@ public class Question {
             if (nss.notOK()) {
                 return Result.err(nss);
             }
-            
+
             return permDAO.read(trans, nss.value.ns, nss.value.name, instance,action);
         }
     }
@@ -462,22 +462,22 @@ public class Question {
 
     /**
      * Derive NS
-     * 
+     *
      * Given a Child Namespace, figure out what the best Namespace parent is.
-     * 
+     *
      * For instance, if in the NS table, the parent "org.osaaf" exists, but not
      * "org.osaaf.child" or "org.osaaf.a.b.c", then passing in either
      * "org.osaaf.child" or "org.osaaf.a.b.c" will return "org.osaaf"
-     * 
+     *
      * Uses recursive search on Cached DAO data
-     * 
+     *
      * @param trans
      * @param child
      * @return
      */
     public Result<NsDAO.Data> deriveNs(AuthzTrans trans, String child) {
         Result<List<NsDAO.Data>> r = nsDAO.read(trans, child);
-        
+
         if (r.isOKhasData()) {
             return Result.ok(r.value.get(0));
         } else {
@@ -502,7 +502,7 @@ public class Question {
                     return Result.ok(nsd);
                 } else {
                     int dot = str.lastIndexOf('.');
-                    
+
                     if (dot < 0) {
                         return Result.err(Status.ERR_NsNotFound, "No Namespace for [%s]", str);
                     } else {
@@ -511,7 +511,7 @@ public class Question {
                 }
             } else {
                 int dot = str.lastIndexOf('.');
-                
+
                 if (dot < 0) {
                     return Result.err(Status.ERR_NsNotFound,"There is no valid Company Namespace for %s",str);
                 } else {
@@ -539,9 +539,9 @@ public class Question {
 
     /**
      * Translate an ID into it's domain
-     * 
+     *
      * i.e. myid1234@aaf.att.com results in domain of com.att.aaf
-     * 
+     *
      * @param id
      * @return
      */
@@ -568,9 +568,9 @@ public class Question {
 
     /**
      * Validate Namespace of ID@Domain
-     * 
+     *
      * Namespace is reverse order of Domain.
-     * 
+     *
      * @param trans
      * @param id
      * @return
@@ -584,7 +584,7 @@ public class Question {
             ns = domain2ns(id);
         }
         if (ns.length() > 0) {
-            if (!trans.org().getDomain().equals(ns)) { 
+            if (!trans.org().getDomain().equals(ns)) {
                 Result<List<NsDAO.Data>> rlnsd = nsDAO.read(trans, ns);
                 if (rlnsd.isOKhasData()) {
                     return Result.ok(rlnsd.value.get(0));
@@ -611,7 +611,7 @@ public class Question {
                 ns = ns.substring(0, last);
             }
         } while (last >= 0);
-        
+
         // SAFETY - Do not allow these when NS is Root
         if(!isRoot) {
             // com.att.aaf.ns|:<client ns>:ns|<access>
@@ -681,7 +681,7 @@ public class Question {
             // Check if Access to Whole NS
             // AAF-724 - Make consistent response for May User", and not take the
             // last check... too confusing.
-            Result<org.onap.aaf.auth.dao.cass.NsDAO.Data> rv = mayUserVirtueOfNS(trans, user, ndd, 
+            Result<org.onap.aaf.auth.dao.cass.NsDAO.Data> rv = mayUserVirtueOfNS(trans, user, ndd,
                     ":" + rdd.ns + ":ns", access.name());
             if (rv.isOK()) {
                 return rv;
@@ -717,7 +717,7 @@ public class Question {
         if (isGranted(trans, user, pdd.ns, pdd.type, pdd.instance, pdd.action)) {
             return Result.ok(ndd);
         }
-        
+
         String permInst = ":perm:" + pdd.type + ':' + pdd.instance + ':' + pdd.action;
         // <ns>.access|:role:<role name>|<read|write>
         String ns = ndd.name;
@@ -795,7 +795,7 @@ public class Question {
                 break;
             case read:
             case write:
-                if (!isUser    && !isDelegate && 
+                if (!isUser    && !isDelegate &&
                         !isGranted(trans, trans.user(), ROOT_NS,DELG,org.getDomain(), access.name())) {
                     return Result.err(Status.ERR_Denied,
                             "[%s] may not %s delegates for [%s]", trans.user(),
@@ -818,14 +818,14 @@ public class Question {
         String ns = nsd.name;
 
         // If an ADMIN of the Namespace, then allow
-        
+
         Result<List<UserRoleDAO.Data>> rurd;
         if ((rurd = userRoleDAO.readUserInRole(trans, user, ns+DOT_ADMIN)).isOKhasData()) {
             return Result.ok(nsd);
         } else if (rurd.status==Result.ERR_Backend) {
             return Result.err(rurd);
         }
-        
+
         // If Specially granted Global Permission
         if (isGranted(trans, user, ROOT_NS,NS, ns_and_type, access)) {
             return Result.ok(nsd);
@@ -851,13 +851,13 @@ public class Question {
                 ns_and_type);
     }
 
-    
+
     /**
      * isGranted
-     * 
+     *
      * Important function - Check internal Permission Schemes for Permission to
      * do things
-     * 
+     *
      * @param trans
      * @param type
      * @param instance
@@ -871,7 +871,7 @@ public class Question {
                 if (ns.equals(pd.ns)) {
                     if (type.equals(pd.type)) {
                         if (PermEval.evalInstance(pd.instance, instance)) {
-                            if (PermEval.evalAction(pd.action, action)) { // don't return action here, might miss other action 
+                            if (PermEval.evalAction(pd.action, action)) { // don't return action here, might miss other action
                                 return true;
                             }
                         }
@@ -900,32 +900,32 @@ public class Question {
                 }
             } else {
                 Date now = new Date();
-                // Bug noticed 6/22. Sorting on the result can cause Concurrency Issues.  
+                // Bug noticed 6/22. Sorting on the result can cause Concurrency Issues.
                 // 9/14/2019. Use TreeSet for sorting, and using only the LAST of a Tagged entry
                 Collection<CredDAO.Data> cddl;
                 if (result.value.size() > 1) {
-                       Map<String,CredDAO.Data> mcdd = new TreeMap<>();
-                       CredDAO.Data cdd;
-                       String tag;
-                       int pseudoTag = 0;
+                    Map<String,CredDAO.Data> mcdd = new TreeMap<>();
+                    CredDAO.Data cdd;
+                    String tag;
+                    int pseudoTag = 0;
                     for (CredDAO.Data rcdd : result.value) {
                         if (rcdd.type==CredDAO.BASIC_AUTH || rcdd.type==CredDAO.BASIC_AUTH_SHA256) {
-                               if(rcdd.tag==null) {
-                                       mcdd.put(Integer.toString(++pseudoTag),rcdd);
-                               } else {
-                                       tag = rcdd.tag;
-                                       cdd = mcdd.get(tag);
-                                       if(cdd==null || cdd.expires.before(rcdd.expires)) {
-                                               mcdd.put(tag,rcdd);
-                                       }
-                               }
+                            if(rcdd.tag==null) {
+                                mcdd.put(Integer.toString(++pseudoTag),rcdd);
+                            } else {
+                                tag = rcdd.tag;
+                                cdd = mcdd.get(tag);
+                                if(cdd==null || cdd.expires.before(rcdd.expires)) {
+                                    mcdd.put(tag,rcdd);
+                                }
+                            }
                         }
                     }
                     cddl = mcdd.values();
                 } else {
                     cddl = result.value;
                 }
-    
+
                 Date expired = null;
                 StringBuilder debug = willSpecialLog(trans,user)?new StringBuilder():null;
                 for (CredDAO.Data cdd : cddl) {
@@ -934,7 +934,7 @@ public class Question {
                     }
                     if (cdd.expires.after(now)) {
                         byte[] dbcred = cdd.cred.array();
-                        
+
                         try {
                             switch(cdd.type) {
                                 case CredDAO.BASIC_AUTH:
@@ -952,7 +952,7 @@ public class Question {
                                     bb.putInt(cdd.other);
                                     bb.put(cred);
                                     byte[] hash = Hash.hashSHA256(bb.array());
-    
+
                                     if (Hash.compareTo(hash,dbcred)==0) {
                                         checkLessThanDays(trans,cldays,now,cdd);
                                         trans.setTag(cdd.tag);
@@ -974,7 +974,7 @@ public class Question {
                         }
                     }
                 } // end for each
-                
+
                 if (expired!=null) {
                     // Note: this is only returned if there are no good Credentials
                     rv = Result.err(Status.ERR_Security,
@@ -1015,7 +1015,7 @@ public class Question {
         if (cexp<close) {
             int daysLeft = days-(int)((close-cexp)/86400000);
             trans.audit().printf("user=%s,ip=%s,expires=%s,days=%d,tag=%s,msg=\"Password expires in less than %d day%s\"",
-                cdd.id,trans.ip(),Chrono.dateOnlyStamp(cdd.expires),daysLeft, cdd.tag, 
+                cdd.id,trans.ip(),Chrono.dateOnlyStamp(cdd.expires),daysLeft, cdd.tag,
                 daysLeft,daysLeft==1?"":"s");
         }
     }
@@ -1038,14 +1038,14 @@ public class Question {
             } finally {
                 tt.done();
             }
-            
+
         } else if (cred.type==CredDAO.FQI) {
             cred.cred = null;
             return Result.ok(cred);
         }
         return Result.err(Status.ERR_Security,"invalid/unreadable credential");
     }
-    
+
     public Result<Boolean> userCredCheck(AuthzTrans trans, CredDAO.Data orig, final byte[] raw) {
         Result<Boolean> rv;
         TimeTaken tt = trans.start("CheckCred Cred", Env.SUB);
@@ -1205,7 +1205,7 @@ public class Question {
         }
         return b;
     }
-    
+
     public static void logEncryptTrace(AuthzTrans trans, String data) {
         long ti;
         trans.put(transIDSlot, ti=nextTraceID());
@@ -1222,7 +1222,7 @@ public class Question {
         }
         boolean rc = specialLog.add(id);
         if (rc) {
-            trans.trace().printf("Trace on for %s requested by %s",id,trans.user());            
+            trans.trace().printf("Trace on for %s requested by %s",id,trans.user());
         }
         return rc;
     }
@@ -1236,12 +1236,12 @@ public class Question {
             specialLog = null;
         }
         if (rv) {
-            trans.trace().printf("Trace off for %s requested by %s",id,trans.user());            
+            trans.trace().printf("Trace off for %s requested by %s",id,trans.user());
         }
         return rv;
     }
 
-    /** 
+    /**
      * canMove
      * Which Types can be moved
      * @param nsType
@@ -1274,7 +1274,7 @@ public class Question {
         };
         return false;
     }
-    
+
     public boolean isOwner(AuthzTrans trans, String user, String ns) {
         Result<List<UserRoleDAO.Data>> rur = userRoleDAO().read(trans, user,ns+DOT_OWNER);
         if (rur.isOKhasData()) {for (UserRoleDAO.Data urdd : rur.value){
@@ -1297,14 +1297,14 @@ public class Question {
         }};
         return count;
     }
-    
+
     /**
      * Return a Unique String, (same string, if it is already unique), with only
      * lowercase letters, digits and the '.' character.
-     * 
+     *
      * @param name
      * @return
-     * @throws IOException 
+     * @throws IOException
      */
     public static String toUnique(String name) throws IOException {
         byte[] from = name.getBytes();
@@ -1317,7 +1317,7 @@ public class Question {
         }
         return sb.toString();
     }
-    
+
     public static String fromUnique(String name) throws IOException {
         byte[] from = name.getBytes();
         StringBuilder sb = new StringBuilder();
index bd297e7..f836255 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,18 +50,18 @@ public class DirectAAFLocator extends AbsAAFLocator<AuthzTrans> {
     private final URI uri;
 
     /**
-     * 
+     *
      * @param env
      * @param ldao
      * @param key  must be one or more of service, version, other in that order
-     * @throws LocatorException 
+     * @throws LocatorException
      */
     public DirectAAFLocator(AuthzEnv env, LocateDAO ldao, String name, String version) throws LocatorException {
-        super(env.access(), name, 1000L /* Don't hit DB more than once a second */); 
+        super(env.access(), name, 1000L /* Don't hit DB more than once a second */);
         this.env = env;
         this.ldao = ldao;
         if (version!=null) {
-            try { 
+            try {
                 String[] v = Split.split('.',version);
                 if (v.length>0) {major = Integer.parseInt(v[0]);}
                 if (v.length>1) {minor = Integer.parseInt(v[1]);}
@@ -71,7 +71,7 @@ public class DirectAAFLocator extends AbsAAFLocator<AuthzTrans> {
                 throw new LocatorException("Invalid Version String: " + version);
             }
         }
-        
+
         try {
             String aaf_url;
             if(name.indexOf('.')>=0) {
@@ -87,10 +87,10 @@ public class DirectAAFLocator extends AbsAAFLocator<AuthzTrans> {
             throw new LocatorException(e);
         }
         myhostname=null;
-        myport = 0; 
+        myport = 0;
     }
-    
-    
+
+
     @Override
     public boolean refresh() {
         AuthzTrans trans = env.newTransNoAvg();
@@ -119,7 +119,7 @@ public class DirectAAFLocator extends AbsAAFLocator<AuthzTrans> {
                     for (String s : d.subprotocol(false)) {
                         endpoint.getSubprotocol().add(s);
                     }
-                    
+
                     try {
                         epl.add(new EP(endpoint,latitude,longitude));
                     } catch (URISyntaxException e) {
index 5961396..b25e205 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,18 +44,17 @@ import org.onap.aaf.misc.env.util.Split;
 public class DirectAAFLur implements Lur {
     private final AuthzEnv env;
     private final Question question;
-    
+
     public DirectAAFLur(AuthzEnv env, Question question/*, TokenMgr tm*/) {
         this.env = env;
-        this.question = question;
-//        oauth = new OAuth2Lur(null);
+        this.question = question
     }
 
     @Override
     public boolean fish(Principal bait, Permission ... pond) {
         return fish(env.newTransNoAvg(),bait,pond);
     }
-    
+
     public boolean fish(AuthzTrans trans, Principal bait, Permission ... pond) {
         boolean rv = false;
         Result<List<Data>> pdr = question.getPermsByUser(trans, bait.getName(),false);
@@ -94,7 +93,7 @@ public class DirectAAFLur implements Lur {
                 env.error().log("Can't access Cassandra to fulfill Permission Query: ",pdr.status,"-", pdr.details);
         }
     }
-    
+
     @Override
     public void destroy() {
     }
@@ -103,7 +102,7 @@ public class DirectAAFLur implements Lur {
     public boolean handlesExclusively(Permission ... pond) {
         return false;
     }
-    
+
     /**
      * Small Class implementing CADI's Permission with Cassandra Data
      * @author Jonathan
@@ -111,15 +110,15 @@ public class DirectAAFLur implements Lur {
      */
     public static class PermPermission implements Permission {
         private PermDAO.Data data;
-        
+
         public PermPermission(PermDAO.Data d) {
             data = d;
         }
-        
+
         public PermPermission(AuthzTrans trans, Question q, String p) {
             data = PermDAO.Data.create(trans, q, p);
         }
-        
+
         public PermPermission(String ns, String type, String instance, String action) {
             data = new PermDAO.Data();
             data.ns = ns;
@@ -148,7 +147,9 @@ public class DirectAAFLur implements Lur {
                                 return true;
             } else{
                 String[] lp = p.getKey().split("\\|");
-                if (lp.length<3)return false;
+                if (lp.length<3) {
+                    return false;
+                }
                 if (data.fullType().equals(lp[0]))
                     if (data.instance!=null && (data.instance.equals(lp[1]) || "*".equals(data.instance)))
                         if (data.action!=null && (data.action.equals(lp[2]) || "*".equals(data.action)))
@@ -161,12 +162,12 @@ public class DirectAAFLur implements Lur {
         public String permType() {
             return "AAFLUR";
         }
-        
+
     }
-    
+
     public String toString() {
         return "DirectAAFLur is enabled";
-        
+
     }
 
     /* (non-Javadoc)
index bdeb77f..f5b7779 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,14 +37,14 @@ import org.onap.aaf.cadi.CredVal;
 /**
  * DirectAAFUserPass is intended to provide password Validation directly from Cassandra Database, and is only
  * intended for use in AAF itself.  The normal "AAF Taf" objects are, of course, clients.
- * 
+ *
  * @author Jonathan
  *
  */
 public class DirectAAFUserPass implements CredVal {
     private final AuthzEnv env;
     private final Question question;
-    
+
     public DirectAAFUserPass(AuthzEnv env, Question question) {
         this.env = env;
         this.question = question;
@@ -55,7 +55,7 @@ public class DirectAAFUserPass implements CredVal {
             if(user==null || type==null || pass==null) {
                 return false;
             }
-        
+
             try {
                 AuthzTrans trans;
                 boolean transfer = false;
index f3351da..d78ddca 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,10 +40,10 @@ import org.onap.aaf.cadi.taf.cert.X509Taf;
 
 /**
  * Direct view of CertIdentities
- * 
- * Warning:  this class is difficult to instantiate.  The only service that can use it is AAF itself, and is thus 
+ *
+ * Warning:  this class is difficult to instantiate.  The only service that can use it is AAF itself, and is thus
  * entered in the "init" after the CachedCertDAO is created.
- * 
+ *
  * @author Jonathan
  *
  */
@@ -62,7 +62,7 @@ public class DirectCertIdentity implements CertIdentity {
         byte[] fingerprint = X509Taf.getFingerPrint(certBytes);
 
         AuthzTrans trans = (AuthzTrans) req.getAttribute(TransFilter.TRANS_TAG);
-        
+
         Result<List<Data>> cresp = certDAO.read(trans, ByteBuffer.wrap(fingerprint));
         if (cresp.isOKhasData()) {
             Data cdata = cresp.value.get(0);
index aa6bf8c..2ea6830 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,12 +31,12 @@ public class DirectLocatorCreator implements AbsAAFLocator.LocatorCreator {
     private final LocateDAO locateDAO;
     private String myhostname;
     private int myport;
-    
+
     public DirectLocatorCreator(AuthzEnv env, LocateDAO locateDAO) {
         this.env = env;
         this.locateDAO = locateDAO;
     }
-    
+
     @Override
     public AbsAAFLocator<?> create(String key, String version) throws LocatorException {
         DirectAAFLocator dal = new DirectAAFLocator(env,locateDAO,key,version);
@@ -45,7 +45,7 @@ public class DirectLocatorCreator implements AbsAAFLocator.LocatorCreator {
         }
         return dal;
     }
-    
+
     /**
      * Make sure DirectAAFLocator created does not include self.
      * @param hostname
index ce9d593..7583086 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,7 +39,7 @@ import locate.v1_0.MgmtEndpoints;
 public class DirectRegistrar implements Registrant<AuthzEnv> {
 
     private LocateDAO ldao;
-    private List<LocateDAO.Data> ldd; 
+    private List<LocateDAO.Data> ldd;
     public DirectRegistrar(Access access, LocateDAO ldao, int port) throws CadiException {
         this.ldao = ldao;
         ldd = new ArrayList<>();
@@ -70,7 +70,7 @@ public class DirectRegistrar implements Registrant<AuthzEnv> {
     @Override
 
     public Result<Void> update(AuthzEnv env) {
-        AuthzTrans trans = env.newTransNoAvg(); 
+        AuthzTrans trans = env.newTransNoAvg();
         StringBuilder sb = null;
         for(LocateDAO.Data ld : ldd) {
             org.onap.aaf.auth.layer.Result<Void> dr = ldao.update(trans, ld);
@@ -83,7 +83,7 @@ public class DirectRegistrar implements Registrant<AuthzEnv> {
                 }
             }
         }
-        
+
         if(sb==null) {
             return Result.ok(200, null);
         } else {
@@ -96,7 +96,7 @@ public class DirectRegistrar implements Registrant<AuthzEnv> {
      */
     @Override
     public Result<Void> cancel(AuthzEnv env) {
-        AuthzTrans trans = env.newTransNoAvg(); 
+        AuthzTrans trans = env.newTransNoAvg();
         StringBuilder sb = null;
         for(LocateDAO.Data ld : ldd) {
             org.onap.aaf.auth.layer.Result<Void> dr = ldao.delete(trans, ld, false);
@@ -109,7 +109,7 @@ public class DirectRegistrar implements Registrant<AuthzEnv> {
                 }
             }
         }
-        
+
         if(sb==null) {
             return Result.ok(200, null);
         } else {
index 055e91e..f6bdf20 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -59,20 +59,20 @@ public class JU_Cached {
 
     @Mock
     CIDAO<AuthzTrans> cidaoATMock;
-    
+
     String name = "nameString";
 
     @Before
     public void setUp(){
         MockitoAnnotations.initMocks(this);
     }
-    
+
     @Test
     public void testCachedIdx(){
         Cached<Trans, DataStub> cached = new Cached<Trans, DataStub>(ciDaoMock, name, 1, 30000L);
         assertThat(cached.cacheIdx("1234567890"), is(0));
     }
-    
+
     @Test
     public void testInvalidate(){
         Cached<Trans, DataStub> cached = new Cached<Trans, DataStub>(ciDaoMock, name, 5, 30000L);
@@ -103,26 +103,26 @@ public class JU_Cached {
 //    Trans transMock;
 //    @Mock
 //    Getter<DAO> getterMock;
-//    
+//
 //    @Test
 //    public void testGet(){
 //        cached.get(transMock, name, getterMock);
 //        fail("not implemented");
 //    }
-//    
+//
 //    @SuppressWarnings("unchecked")
 //    public Result<List<DATA>> get(TRANS trans, String key, Getter<DATA> getter) {
 //        List<DATA> ld = null;
 //        Result<List<DATA>> rld = null;
-//        
+//
 //        int cacheIdx = cacheIdx(key);
 //        Map<String, Dated> map = ((Map<String,Dated>)cache[cacheIdx]);
-//        
+//
 //        // Check for saved element in cache
 //        Dated cached = map.get(key);
 //        // Note: These Segment Timestamps are kept up to date with DB
 //        Date dbStamp = info.get(trans, name,cacheIdx);
-//        
+//
 //        // Check for cache Entry and whether it is still good (a good Cache Entry is same or after DBEntry, so we use "before" syntax)
 //        if (cached!=null && dbStamp.before(cached.timestamp)) {
 //            ld = (List<DATA>)cached.data;
index 242904a..23deced 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -44,22 +44,22 @@ public class JU_CachedDAO {
     @Mock
     DAO daoMock;
     @Mock
-    CIDAO<Trans> ciDAOMock; 
+    CIDAO<Trans> ciDAOMock;
     int segsize=1;
     Object[ ] objs = new Object[2];
-    
+
     @Before
     public void setUp(){
         objs[0] = "helo";
         objs[1] = "polo";
         cachedDAO = new CachedDAO(daoMock, ciDAOMock, segsize, segsize);
     }
-        
+
     @Test
     public void testKeyFromObjs(){
         String result = cachedDAO.keyFromObjs(objs);
         System.out.println("value of resut " +result);
         assertTrue(true);
     }
-    
+
 }
index c06cd5c..3f6b150 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -43,7 +43,7 @@ import com.datastax.driver.core.Cluster.Builder;
 @RunWith(PowerMockRunner.class)
 public class JU_CassAccess {
     CassAccess cassAccess;
-    
+
     public static final String KEYSPACE = "authz";
     public static final String CASSANDRA_CLUSTERS = "cassandra.clusters";
     public static final String CASSANDRA_CLUSTERS_PORT = "cassandra.clusters.port";
@@ -58,7 +58,7 @@ public class JU_CassAccess {
     @Mock
     Env envMock;
     String prefix=null;
-    
+
     @Before
     public void setUp(){
         cassAccess = new CassAccess();
@@ -68,7 +68,7 @@ public class JU_CassAccess {
 //    @Test(expected=APIException.class)
 //    public void testCluster() throws APIException, IOException {
 ////        cassAccess.cluster(envMock, prefix);
-//        
+//
 //    }
 
 }
index 2e03c06..9eab56f 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -76,7 +76,7 @@ AuthzTrans authzTransMock;
     }
 
     //TODO: Gabe [JUnit] Visibility issue
-    @Test 
+    @Test
     public void testReadConsistency() {
         String table = "users";
         PowerMockito.when(authzTransMock.getProperty(CASS_READ_CONSISTENCY+'.'+table)).thenReturn("TWO");
@@ -84,8 +84,8 @@ AuthzTrans authzTransMock;
         System.out.println("Consistency level" + consistencyLevel.name());
         assertEquals("TWO", consistencyLevel.name());
     }
-    
-    @Test 
+
+    @Test
     public void testWriteConsistency() {
         String table = "users";
         PowerMockito.when(authzTransMock.getProperty(CASS_WRITE_CONSISTENCY+'.'+table)).thenReturn(null);
@@ -93,5 +93,5 @@ AuthzTrans authzTransMock;
         System.out.println("Consistency level" + consistencyLevel.name());
         assertEquals("ONE", consistencyLevel.name());
     }
-    
+
 }
index c1592bd..f8a09c6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -35,32 +35,32 @@ public class JU_DAOException {
     DAOException daoException;
 
     String message = "message";
-    Throwable cause;    
+    Throwable cause;
     @Before
     public void setUp(){
-        daoException = new DAOException();    
+        daoException = new DAOException();
     }
 
     @Test
     public void testNoArgConstructor(){
         assertNull(daoException.getMessage());
     }
-    
+
     @Test
     public void testOneArgConstructorMsg(){
-        daoException = new DAOException("test message"); 
+        daoException = new DAOException("test message");
         assertTrue("test message".equalsIgnoreCase(daoException.getMessage()));
     }
-    
+
     @Test
     public void testOneArgConstructorThrowable(){
-        daoException = new DAOException(new Throwable()); 
+        daoException = new DAOException(new Throwable());
         assertTrue("java.lang.Throwable".equalsIgnoreCase(daoException.getMessage()));
     }
-    
+
     @Test
     public void testTwoArgConstructor(){
-        daoException = new DAOException("test message", new Throwable()); 
+        daoException = new DAOException("test message", new Throwable());
         assertTrue("test message".equalsIgnoreCase(daoException.getMessage()));
     }
 }
index bb0fcd4..7780a16 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -50,7 +50,7 @@ import junit.framework.Assert;
 
 /**
  * Do Setup of Cassandra for Cassandra JUnit Testing
- * 
+ *
  *
  */
 public class AbsJUCass {
@@ -63,8 +63,8 @@ public class AbsJUCass {
     protected static float json = 0.0f;
     protected static AuthzTrans trans;
     protected static boolean details = true;
-    
-    @BeforeClass 
+
+    @BeforeClass
     public static void startup() throws APIException, IOException {
         synchronized(AUTHZ) {
             if (env==null) {
@@ -101,14 +101,14 @@ public class AbsJUCass {
             Assert.fail("Not able to connect to DB: " + e.getLocalizedMessage());
         }
         env.info().log("Connected");
-        
+
         // Load special data here
-        
-        
+
+
         iterations = 0;
-        
+
     }
-    
+
     @AfterClass
     public static void shutdown() {
         if (cluster!=null) {
@@ -120,10 +120,10 @@ public class AbsJUCass {
     @Before
     public void newTrans() {
         trans = env.newTrans();
-        
+
         trans.setProperty(CassDAOImpl.USER_NAME, System.getProperty("user.name"));
     }
-    
+
     @After
     public void auditTrail() {
         if (totals==0) { // "updateTotals()" was not called... just do one Trans
@@ -144,7 +144,7 @@ public class AbsJUCass {
             }
         }
     }
-    
+
     protected void updateTotals() {
         Metric metric = trans.auditTrail(0, null, Env.JSON, Env.REMOTE);
         totals+=metric.total;
@@ -163,7 +163,7 @@ public class AbsJUCass {
         }
         env.info().log(
         "Total time:",
-        totals,   
+        totals,
         "JSON time:",
         json,
         "REMOTE time:",
@@ -174,10 +174,10 @@ public class AbsJUCass {
         transTime
         );
     }
-    
+
     /**
      * Take a User/Pass and turn into an MD5 Hashed BasicAuth
-     * 
+     *
      * @param user
      * @param pass
      * @return
index 7e46089..2ef15ff 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,25 +41,25 @@ public class JU_Bytification {
 
     @Test
     public void testNS() throws IOException {
-        
+
         // Normal
         NsDAO.Data ns = new NsDAO.Data();
         ns.name = "org.osaaf.<pass>";
         ns.type = NsType.APP.type;
 
         ByteBuffer bb = ns.bytify();
-        
+
         NsDAO.Data nsr = new NsDAO.Data();
         nsr.reconstitute(bb);
         check(ns,nsr);
-        
+
         // Empty admin
 //        ns.admin(true).clear();
         bb = ns.bytify();
         nsr = new NsDAO.Data();
         nsr.reconstitute(bb);
         check(ns,nsr);
-        
+
         // Empty responsible
 //        ns.responsible(true).clear();
         bb = ns.bytify();
@@ -72,16 +72,16 @@ public class JU_Bytification {
         nsr.reconstitute(bb);
         check(ns,nsr);
     }
-    
+
     private void check(NsDAO.Data a, NsDAO.Data b) {
         assertEquals(a.name,b.name);
         assertEquals(a.type,b.type);
 //        assertEquals(a.admin.size(),b.admin.size());
-        
+
 //        for (String s: a.admin) {
 //            assertTrue(b.admin.contains(s));
 //        }
-//        
+//
 //        assertEquals(a.responsible.size(),b.responsible.size());
 //        for (String s: a.responsible) {
 //            assertTrue(b.responsible.contains(s));
@@ -101,7 +101,7 @@ public class JU_Bytification {
         RoleDAO.Data rd2 = new RoleDAO.Data();
         rd2.reconstitute(bb);
         check(rd1,rd2);
-        
+
         // Overshoot Buffer
         StringBuilder sb = new StringBuilder(300);
         sb.append("role|instance|veryLongAction...");
@@ -113,15 +113,15 @@ public class JU_Bytification {
         rd2 = new RoleDAO.Data();
         rd2.reconstitute(bb);
         check(rd1,rd2);
-        
+
         // No Perms
         rd1.perms.clear();
-        
+
         bb = rd1.bytify();
         rd2 = new RoleDAO.Data();
         rd2.reconstitute(bb);
         check(rd1,rd2);
-        
+
         // 1000 Perms
         for (int i=0;i<1000;++i) {
             rd1.perms(true).add("com|inst|action"+ i);
@@ -133,11 +133,11 @@ public class JU_Bytification {
         check(rd1,rd2);
 
     }
-    
+
     private void check(RoleDAO.Data a, RoleDAO.Data b) {
         assertEquals(a.ns,b.ns);
         assertEquals(a.name,b.name);
-        
+
         assertEquals(a.perms.size(),b.perms.size());
         for (String s: a.perms) {
             assertTrue(b.perms.contains(s));
@@ -159,15 +159,15 @@ public class JU_Bytification {
         PermDAO.Data rd2 = new PermDAO.Data();
         rd2.reconstitute(bb);
         check(pd1,rd2);
-        
+
         // No Perms
         pd1.roles.clear();
-        
+
         bb = pd1.bytify();
         rd2 = new PermDAO.Data();
         rd2.reconstitute(bb);
         check(pd1,rd2);
-        
+
         // 1000 Perms
         for (int i=0;i<1000;++i) {
             pd1.roles(true).add("org.osaaf.<pass>.my.Role"+ i);
@@ -179,13 +179,13 @@ public class JU_Bytification {
         check(pd1,rd2);
 
     }
-    
+
     private void check(PermDAO.Data a, PermDAO.Data b) {
         assertEquals(a.ns,b.ns);
         assertEquals(a.type,b.type);
         assertEquals(a.instance,b.instance);
         assertEquals(a.action,b.action);
-        
+
         assertEquals(a.roles.size(),b.roles.size());
         for (String s: a.roles) {
             assertTrue(b.roles.contains(s));
@@ -204,11 +204,11 @@ public class JU_Bytification {
         UserRoleDAO.Data urd2 = new UserRoleDAO.Data();
         urd2.reconstitute(bb);
         check(urd1,urd2);
-        
+
         // A null
-        urd1.expires = null; 
+        urd1.expires = null;
         urd1.role = null;
-        
+
         bb = urd1.bytify();
         urd2 = new UserRoleDAO.Data();
         urd2.reconstitute(bb);
@@ -221,7 +221,7 @@ public class JU_Bytification {
         assertEquals(a.expires,b.expires);
     }
 
-    
+
     @Test
     public void testCred() throws IOException {
         CredDAO.Data cd = new CredDAO.Data();
@@ -236,11 +236,11 @@ public class JU_Bytification {
         CredDAO.Data cd2 = new CredDAO.Data();
         cd2.reconstitute(bb);
         check(cd,cd2);
-        
+
         // nulls
         cd.expires = null;
         cd.cred = null;
-        
+
         bb = cd.bytify();
         cd2 = new CredDAO.Data();
         cd2.reconstitute(bb);
@@ -253,7 +253,7 @@ public class JU_Bytification {
         assertEquals(a.ns,b.ns);
         assertEquals(a.type,b.type);
         if (a.cred==null) {
-            assertEquals(a.cred,b.cred); 
+            assertEquals(a.cred,b.cred);
         } else {
             int l = a.cred.limit();
             assertEquals(l,b.cred.limit());
index 05195ee..bd07e59 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,15 +41,15 @@ public class JU_NsType {
         for (String s : tests) {
             nt = NsType.valueOf(s);
             assertEquals(s,nt.name());
-            
+
             nt2 = NsType.fromString(s);
             assertEquals(nt,nt2);
-            
+
             int t = nt.type;
             nt2 = NsType.fromType(t);
             assertEquals(nt,nt2);
         }
-        
+
         nt  = NsType.fromType(Integer.MIN_VALUE);
         assertEquals(nt,NsType.UNKNOWN);
         nt = NsType.fromString("Garbage");
index de004fd..54da1bf 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 7f5ed85..3d98dcd 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 064b985..9298b9f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 46bbc7e..8a50547 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,13 +47,13 @@ public class JU_CachedPermDAOTest {
     private CIDAO<AuthzTrans> info;
     @Mock
     private PermDAO dao;
-    
+
     @Mock
     RoleDAO.Data role;
-    
+
     @Mock
     private PermDAO.Data perm;
-    
+
     @Mock
     private AuthzTrans trans;
     @Mock
@@ -65,25 +65,25 @@ public class JU_CachedPermDAOTest {
 
         when(dao.readNS(trans, "ns")).thenReturn(value);
         when(trans.debug()).thenReturn(new LogTarget() {
-            
+
             @Override
             public void printf(String fmt, Object... vars) {}
-            
+
             @Override
             public void log(Throwable e, Object... msgs) {
                 e.getMessage();
                 e.printStackTrace();
                 msgs.toString();
-                
+
             }
-            
+
             @Override
             public void log(Object... msgs) {
             }
-            
+
             @Override
             public boolean isLoggable() {
-                
+
                 return true;
             }
         });
@@ -109,7 +109,7 @@ public class JU_CachedPermDAOTest {
 
         verify(dao).readChildren(trans, "ns", "type");
     }
-    
+
     @Test
     public void testReadByTypeSuccess() {
         CachedPermDAO roleDaoObj =new CachedPermDAO(dao,info, 10);//Mockito.mock(CachedRoleDAO.class);//
@@ -119,8 +119,8 @@ public class JU_CachedPermDAOTest {
 //        System.out.println(retVal.status);
         //retVal.status = 0;
         assertEquals("1", Integer.toString(retVal.status));
-    }    
-    
+    }
+
     @Test
     public void testReadByTypeFailure() {
         CachedPermDAO roleDaoObj =new CachedPermDAO(dao,info, 10);//Mockito.mock(CachedRoleDAO.class);//
@@ -130,7 +130,7 @@ public class JU_CachedPermDAOTest {
         //System.out.println(retVal.status);
         assertEquals("23", Integer.toString(retVal.status));
     }
-    
+
     @Test
     public void testAddRole() {
         CachedPermDAO roleDaoObj =new CachedPermDAO(dao,info, 10);
@@ -141,7 +141,7 @@ public class JU_CachedPermDAOTest {
 //        System.out.println("ret value is::"+retVal);
         assertEquals("testAddRole", retVal.toString());
     }
-    
+
     @Test
     public void testDelRole() {
         CachedPermDAO roleDaoObj =new CachedPermDAO(dao,info, 10);
index 4d9527c..d4062b7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,52 +42,52 @@ import org.onap.aaf.auth.layer.Result;
 import org.onap.aaf.misc.env.LogTarget;
 
 
-@RunWith(MockitoJUnitRunner.class) 
+@RunWith(MockitoJUnitRunner.class)
 public class JU_CachedRoleDAO {
 
     @Mock
     RoleDAO dao;
-    
+
     @Mock
     CIDAO<AuthzTrans> info;
-    
+
     @Mock
     AuthzTransImpl trans;
-    
+
     @Mock
     RoleDAO.Data data;
-    
+
     @Mock
     PermDAO.Data permData;
-    
+
     @Before
     public void setUp() throws Exception {
         initMocks(this);
         when(trans.debug()).thenReturn(new LogTarget() {
-            
+
             @Override
             public void printf(String fmt, Object... vars) {}
-            
+
             @Override
             public void log(Throwable e, Object... msgs) {
                 e.getMessage();
                 e.printStackTrace();
                 msgs.toString();
-                
+
             }
-            
+
             @Override
             public void log(Object... msgs) {
             }
-            
+
             @Override
             public boolean isLoggable() {
-                
+
                 return true;
             }
         });
     }
-    
+
     @Test
     public void testReadNameSuccess() {
         CachedRoleDAO roleDaoObj =new CachedRoleDAO(dao,info, 10);//Mockito.mock(CachedRoleDAO.class);//
@@ -99,8 +99,8 @@ public class JU_CachedRoleDAO {
 //        System.out.println(retVal.status);
         //retVal.status = 0;
         assertEquals("1", Integer.toString(retVal.status));
-    }    
-    
+    }
+
     @Test
     public void testReadNameFailure() {
         CachedRoleDAO roleDaoObj =new CachedRoleDAO(dao,info, 10);//Mockito.mock(CachedRoleDAO.class);//
@@ -120,7 +120,7 @@ public class JU_CachedRoleDAO {
         Result<List<Data>> retVal = roleDaoObj.readNS(trans, "");
 //        System.out.println(retVal.status);
         assertEquals("1", Integer.toString(retVal.status));
-    }    
+    }
     @Test
     public void testReadNSFailure() {
         CachedRoleDAO roleDaoObj =new CachedRoleDAO(dao,info, 10);//Mockito.mock(CachedRoleDAO.class);//
@@ -131,7 +131,7 @@ public class JU_CachedRoleDAO {
 //        System.out.println(retVal.status);
         assertEquals("22", Integer.toString(retVal.status));
     }
-    
+
     @Test
     public void testReadChildren() {
         CachedRoleDAO roleDaoObj =new CachedRoleDAO(dao,info, 10);//Mockito.mock(CachedRoleDAO.class);//
@@ -141,7 +141,7 @@ public class JU_CachedRoleDAO {
         //System.out.println(retVal.status);
         assertEquals("0", Integer.toString(retVal.status));
     }
-    
+
     @Test
     public void testAddPerm() {
         CachedRoleDAO roleDaoObj =new CachedRoleDAO(dao,info, 10);
@@ -151,7 +151,7 @@ public class JU_CachedRoleDAO {
         Result<Void> retVal = roleDaoObj.addPerm(trans, data, permData);
         assertEquals("testAddPerm", retVal.toString());
     }
-    
+
     @Test
     public void testDelPerm() {
         CachedRoleDAO roleDaoObj =new CachedRoleDAO(dao,info, 10);
index 053fc88..814a03f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,47 +50,47 @@ public class JU_CachedUserRoleDAO {
 
     @Mock
     UserRoleDAO dao;
-    
+
     @Mock
     CIDAO<AuthzTrans> info;
-    
+
     @Mock
     AuthzTransImpl trans;
-    
+
     @Mock
     RoleDAO.Data data;
-    
+
     @Mock
     PermDAO.Data permData;
-    
+
     @Before
     public void setUp() throws Exception {
         initMocks(this);
         when(trans.debug()).thenReturn(new LogTarget() {
-            
+
             @Override
             public void printf(String fmt, Object... vars) {}
-            
+
             @Override
             public void log(Throwable e, Object... msgs) {
                 e.getMessage();
                 e.printStackTrace();
                 msgs.toString();
-                
+
             }
-            
+
             @Override
             public void log(Object... msgs) {
             }
-            
+
             @Override
             public boolean isLoggable() {
-                
+
                 return true;
             }
         });
     }
-    
+
     private class TaggedPrincipalStub extends TaggedPrincipal {
         String name="TaggedPrincipalStub";
         public TaggedPrincipalStub() { super(); }
@@ -98,7 +98,7 @@ public class JU_CachedUserRoleDAO {
         @Override public String getName() { return name; }
         @Override public String tag() { return null; }
     }
-    
+
     @Test
     public void testReadName() {
         CachedUserRoleDAO roleDaoObj =new CachedUserRoleDAO(dao,info, 10L);
@@ -109,8 +109,8 @@ public class JU_CachedUserRoleDAO {
         //System.out.println(retVal.status);
         //retVal.status = 0;
         assertEquals("25", Integer.toString(retVal.status));
-    }    
-    
+    }
+
     @Test
     public void testReadNameUser() {
         CachedUserRoleDAO roleDaoObj =new CachedUserRoleDAO(dao,info, 10L);
@@ -122,7 +122,7 @@ public class JU_CachedUserRoleDAO {
                 Object o=null;
                 return (T)o;
             }
-            
+
         };
         transTemp.setUser(new TaggedPrincipalStub());
         Mockito.doReturn(retVal1).when(info).touch(trans, null,null);
@@ -132,7 +132,7 @@ public class JU_CachedUserRoleDAO {
 //        System.out.println(retVal.status);
         assertEquals("1", Integer.toString(retVal.status));
     }
-    
+
     @Test
     public void testReadByRoleSuccess() {
         CachedUserRoleDAO roleDaoObj =new CachedUserRoleDAO(dao,info, 0);//Mockito.mock(CachedRoleDAO.class);//
@@ -142,7 +142,7 @@ public class JU_CachedUserRoleDAO {
         Result<List<Data>> retVal = roleDaoObj.readByRole(trans, "");
         //System.out.println(retVal.status);
         assertEquals("1", Integer.toString(retVal.status));
-    }    
+    }
     @Test
     public void testReadByRoleFailure() {
         CachedUserRoleDAO roleDaoObj =new CachedUserRoleDAO(dao,info, 0);//Mockito.mock(CachedRoleDAO.class);//
@@ -153,7 +153,7 @@ public class JU_CachedUserRoleDAO {
         //System.out.println(retVal.status);
         assertEquals("25", Integer.toString(retVal.status));
     }
-    
+
     @Test
     public void testReadUserInRole() {
         CachedUserRoleDAO roleDaoObj =new CachedUserRoleDAO(dao,info, 10);//Mockito.mock(CachedRoleDAO.class);//
@@ -165,7 +165,7 @@ public class JU_CachedUserRoleDAO {
                 Object o=null;
                 return (T)o;
             }
-            
+
         };
         transTemp.setUser(new TaggedPrincipalStub());
         Mockito.doReturn(retVal1).when(info).touch(trans, null,null);
@@ -175,6 +175,6 @@ public class JU_CachedUserRoleDAO {
         //System.out.println(retVal.status);
         assertEquals("25", Integer.toString(retVal.status));
     }
-    
+
 
 }
\ No newline at end of file
index 2b30367..c990c2f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -60,7 +60,7 @@ public class JU_ApprovalDAO {
     AuthzTrans trans;
     @Mock
     Cluster cluster;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -69,7 +69,7 @@ public class JU_ApprovalDAO {
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).info();
     }
-    
+
     @Test
     public void testInit() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -82,35 +82,35 @@ public class JU_ApprovalDAO {
         PSInfo createPS = Mockito.mock(PSInfo.class);
         Result<ResultSet> rs = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "ApprovalDAOImpl CREATE", data);
-        
+
         ApprovalDAOImpl daoObj = new ApprovalDAOImpl(trans, cluster, "test",data, createPS);
 //        data.id
         Result<Data> retVal = daoObj.create(trans, data);
         assertTrue(retVal.status == 0);
-        
+
         rs = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "ApprovalDAOImpl CREATE", data);
         retVal = daoObj.create(trans, data);
         assertTrue(retVal.status == 1);
-        
+
         Result<List<ApprovalDAO.Data>> rs1 = new Result<List<ApprovalDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(createPS).read(trans, "ApprovalDAOImpl CREATE", new Object[]{"testUser"});
         Result<List<ApprovalDAO.Data>> retVal1 = daoObj.readByUser(trans, "testUser");
         assertNull(retVal1);
-        
+
         Mockito.doReturn(rs1).when(createPS).read(trans, "ApprovalDAOImpl CREATE", new Object[]{"testApprover"});
         retVal1 = daoObj.readByApprover(trans, "testApprover");
         assertNull(retVal1);
-        
+
         Mockito.doReturn(rs1).when(createPS).read(trans, "ApprovalDAOImpl CREATE", new Object[]{new UUID(0, 0)});
         retVal1 = daoObj.readByTicket(trans, new UUID(0, 0));
         assertNull(retVal1);
-        
+
         Mockito.doReturn(rs1).when(createPS).read(trans, "ApprovalDAOImpl CREATE", new Object[]{"testStatus"});
         retVal1 = daoObj.readByStatus(trans, "testStatus");
         assertNull(retVal1);
     }
-    
+
     @Test
     public void testDelete() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -125,28 +125,28 @@ public class JU_ApprovalDAO {
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         PSInfo createPS = Mockito.mock(PSInfo.class);
         ResultSet rsObj = new ResultSetImpl();
         Result<ResultSet> rs = new Result<ResultSet>(rsObj,0,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "ApprovalDAOImpl READ", data);
         Mockito.doReturn(rs).when(createPS).exec(trans, "ApprovalDAOImpl DELETE", data);
-        
+
         ApprovalDAOImpl daoObj = new ApprovalDAOImpl(trans, cluster, "test", createPS, historyDAO);
 //        data.id
         Result<Void> retVal = daoObj.delete(trans, data, true);
         assertTrue(retVal.status == 0);
-    
+
         rs = new Result<ResultSet>(rsObj,1,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "ApprovalDAOImpl READ", data);
         retVal = daoObj.delete(trans, data, true);
         assertTrue(retVal.status == 1);
-        
+
         data.status="approved";
         data.memo="test";
         retVal = daoObj.delete(trans, data, false);
         assertTrue(retVal.status == 0);
-        
+
         daoObj.async(true);
         data.status="denied";
         retVal = daoObj.delete(trans, data, false);
@@ -155,7 +155,7 @@ public class JU_ApprovalDAO {
         data.status=null;
         retVal = daoObj.delete(trans, data, false);
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -167,24 +167,24 @@ public class JU_ApprovalDAO {
         Mockito.doNothing().when(tt).done();
         ApprovalDAO.Data data  = new ApprovalDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         ApprovalDAOImpl daoObj = new ApprovalDAOImpl(trans, cluster, "test", createPS, historyDAO);
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
     }
-    
+
     @Test
     public void testSecondConstructor() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -196,7 +196,7 @@ public class JU_ApprovalDAO {
         Mockito.doNothing().when(tt).done();
         ApprovalDAO.Data data  = new ApprovalDAO.Data();
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
-        
+
         ApprovalDAO daoObj = new ApprovalDAO(trans, historyDAO);
     }
 }
@@ -270,7 +270,7 @@ class ResultSetImpl implements ResultSet{
         // TODO Auto-generated method stub
         return false;
     }
-    
+
 }
 
 class ApprovalDAOImpl extends ApprovalDAO{
@@ -283,12 +283,12 @@ class ApprovalDAOImpl extends ApprovalDAO{
         setPs(this, createPS, "psByTicket");
         setPs(this, createPS, "psByStatus");
     }
-    
+
     public ApprovalDAOImpl(AuthzTrans trans, Cluster cluster, String keyspace,PSInfo readPS  ) {
         super(trans, cluster, keyspace);
         this.readPS = readPS;
     }
-    
+
     public ApprovalDAOImpl(AuthzTrans trans, Cluster cluster, String keyspace,PSInfo readPS, HistoryDAO historyDAO  ) {
         super(trans, cluster, keyspace);
         this.deletePS = readPS;
@@ -296,18 +296,18 @@ class ApprovalDAOImpl extends ApprovalDAO{
         setHistoryDao(this, historyDAO);
         setSession(this, Mockito.mock(Session.class));
     }
-    
+
     public void setPs(ApprovalDAOImpl approvalDaoObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = ApprovalDAO.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(approvalDaoObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -325,13 +325,13 @@ class ApprovalDAOImpl extends ApprovalDAO{
         Field nsDaoField;
         try {
             nsDaoField = ApprovalDAO.class.getDeclaredField("historyDAO");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(approvalDaoObj, historyDAO);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -348,13 +348,13 @@ class ApprovalDAOImpl extends ApprovalDAO{
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(approvalDaoObj, session);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
index d6e1fb5..c71da3b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -59,7 +59,7 @@ public class JU_ArtiDAO {
     AuthzTrans trans;
     @Mock
     Cluster cluster;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -68,7 +68,7 @@ public class JU_ArtiDAO {
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).info();
     }
-    
+
     @Test
     public void testReadByMechID() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -77,17 +77,17 @@ public class JU_ArtiDAO {
         Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on ArtiDAO", Env.SUB);
         Mockito.doNothing().when(tt).done();
-        
+
         PSInfo psByMechIdObj = Mockito.mock(PSInfo.class);
         Result<ResultSet> rs = new Result<ResultSet>(null,0,"test",new String[0]);
 //        Mockito.doReturn(rs).when(createPS).exec(trans, "ArtiDAOImpl CREATE", data);
-        
+
         ArtiDAOImpl daoObj = new ArtiDAOImpl(trans, cluster, "test", psByMechIdObj);
-        
+
         Result<List<ArtiDAO.Data>> rs1 = new Result<List<ArtiDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psByMechIdObj).read(trans, "ArtiDAOImpl READ", new Object[]{"testMechId"});
         daoObj.readByMechID(trans, "testMechId");
-        
+
         rs1 = new Result<List<ArtiDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psByMechIdObj).read(trans, "ArtiDAOImpl READ", new Object[]{"testMachine"});
         daoObj.readByMachine(trans, "testMachine");
@@ -96,7 +96,7 @@ public class JU_ArtiDAO {
         Mockito.doReturn(rs1).when(psByMechIdObj).read(trans, "ArtiDAOImpl READ", new Object[]{"testNs"});
         daoObj.readByNs(trans, "testNs");
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -108,43 +108,43 @@ public class JU_ArtiDAO {
         Mockito.doNothing().when(tt).done();
         ArtiDAO.Data data  = new ArtiDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         ArtiDAOImpl daoObj = new ArtiDAOImpl(trans, cluster, "test", createPS, historyDAO);
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
-        
+
         data.type(true);
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test","test"});
-        
+
     }
     @Test
     public void testData(){
         ArtiDAO.Data data  = new ArtiDAO.Data();
         data.type(true);
         data.type(false);
-        
+
         data.sans(true);
         data.sans(false);
         data.sans = new TreeSet();
         data.sans(false);
         data.sans(true);
-        
+
         data.expires = new Date();
         data.toString();
     }
-    
+
     @Test
     public void testArtifactLoader(){
         ArtiDAO daoObj = new ArtiDAO(trans, cluster, "test");
@@ -154,18 +154,18 @@ public class JU_ArtiDAO {
         try {
             Object obj = constructor.newInstance(10);
             Method innnerClassMtd;
-                
+
             ArtiDAO.Data data  = new ArtiDAO.Data();
             Row row = Mockito.mock(Row.class);
             innnerClassMtd = innerClass.getMethod("load", new Class[] {ArtiDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {ArtiDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"} });
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {ArtiDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
 //            DataInputStream in  = Mockito.mock(DataInputStream.class);
 ////            Mockito.doReturn(100).when(in).read();
 ////            Mockito.doReturn(100).when(in).readInt();
@@ -189,9 +189,9 @@ public class JU_ArtiDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testSecondConstructor() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -203,10 +203,10 @@ public class JU_ArtiDAO {
         Mockito.doNothing().when(tt).done();
         ArtiDAO.Data data  = new ArtiDAO.Data();
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
-        
+
         ArtiDAO daoObj = new ArtiDAO(trans, historyDAO, Mockito.mock(CacheInfoDAO.class));
     }
-    
+
 }
 
 
@@ -219,7 +219,7 @@ class ArtiDAOImpl extends ArtiDAO{
         setPs(this, createPS, "psByMachine");
         setPs(this, createPS, "psByNs");
     }
-    
+
     public ArtiDAOImpl(AuthzTrans trans, Cluster cluster, String keyspace,PSInfo readPS, HistoryDAO historyDAO  ) {
         super(trans, cluster, keyspace);
         this.deletePS = readPS;
@@ -227,18 +227,18 @@ class ArtiDAOImpl extends ArtiDAO{
         setHistoryDao(this, historyDAO);
         setSession(this, Mockito.mock(Session.class));
     }
-    
+
     public void setPs(ArtiDAOImpl ArtiDAOObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = ArtiDAO.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(ArtiDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -256,13 +256,13 @@ class ArtiDAOImpl extends ArtiDAO{
         Field nsDaoField;
         try {
             nsDaoField = ArtiDAO.class.getDeclaredField("historyDAO");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(ArtiDAOObj, historyDAO);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -279,13 +279,13 @@ class ArtiDAOImpl extends ArtiDAO{
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(ArtiDAOObj, session);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
index c23a372..695de1f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -77,7 +77,7 @@ public class JU_CacheInfoDAO {
     AuthzEnv env;
     @Mock
     LogTarget logTarget;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -90,7 +90,7 @@ public class JU_CacheInfoDAO {
         Mockito.doReturn("100").when(trans).getProperty(Config.CADI_LONGITUDE);
         Mockito.doReturn(session).when(cluster).connect("test");
     }
-    
+
     @Test
     public void testInit() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -103,7 +103,7 @@ public class JU_CacheInfoDAO {
         PSInfo createPS = Mockito.mock(PSInfo.class);
         Result<ResultSet> rs = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "CacheInfoDAOImpl CREATE", data);
-        
+
         CacheInfoDAOImpl daoObj=null;
         try {
             daoObj = new CacheInfoDAOImpl(trans, cluster, "test",data, createPS);
@@ -115,7 +115,7 @@ public class JU_CacheInfoDAO {
         Result<Data> retVal = daoObj.create(trans, data);
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testTouch() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -128,12 +128,12 @@ public class JU_CacheInfoDAO {
         Mockito.doNothing().when(tt).done();
 
         Mockito.doReturn(logTarget).when(env).debug();
-        
+
         CacheInfoDAO.Data data  = new CacheInfoDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
         Result<ResultSet> rs = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "CacheInfoDAOImpl CREATE", data);
-        
+
         CacheInfoDAOImpl daoObj=null;
         try {
             daoObj = new CacheInfoDAOImpl(trans, cluster, "test",data, createPS);
@@ -147,8 +147,8 @@ public class JU_CacheInfoDAO {
         Mockito.doThrow(DriverException.class).when(session).executeAsync(Mockito.anyString());
         daoObj.startUpdate(env, Mockito.mock(HMangr.class), Mockito.mock(SecuritySetter.class), "12.0.0.1", 8080);
         retVal = daoObj.touch(trans, "test", 1, 2);
-        
-        
+
+
         try {
             daoObj = new CacheInfoDAOImpl(trans, cluster, "test",data, createPS);
         } catch (APIException | IOException e) {
@@ -175,7 +175,7 @@ public class JU_CacheInfoDAO {
         retVal = daoObj.touch(trans, "test", 1, 2);
         assertTrue(retVal.status == Result.ERR_Backend);
     }
-    
+
     @Test
     public void testCheck() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -189,7 +189,7 @@ public class JU_CacheInfoDAO {
         PSInfo createPS = Mockito.mock(PSInfo.class);
         Result<ResultSet> rs = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "CacheInfoDAOImpl CREATE", data);
-        
+
         CacheInfoDAOImpl daoObj=null;
         PreparedStatement ps = Mockito.mock(PreparedStatement.class);
         Mockito.doReturn(ps).when(session).prepare(Mockito.anyString());
@@ -208,7 +208,7 @@ public class JU_CacheInfoDAO {
         Mockito.doReturn(resultSet).when(session).execute(Mockito.any(Statement.class));
         Result<Void> retVal = daoObj.check(trans);
         assertTrue(retVal.status == 0);
-        
+
         Row row  = Mockito.mock(Row.class);
         Mockito.doReturn("test").when(row).getString(Mockito.anyInt());
         rowList.add(row);
@@ -243,9 +243,9 @@ public class JU_CacheInfoDAO {
     }
     @Test
     public void testStopUpdate() {
-        
+
         CacheInfoDAO.stopUpdate();
-        
+
     }
 
 
@@ -264,7 +264,7 @@ public class JU_CacheInfoDAO {
         PSInfo createPS = Mockito.mock(PSInfo.class);
         Result<ResultSet> rs = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "CacheInfoDAOImpl CREATE", data);
-        
+
         CacheInfoDAOImpl daoObj=null;
         try {
             daoObj = new CacheInfoDAOImpl(trans, cluster, "test",data, createPS);
@@ -276,7 +276,7 @@ public class JU_CacheInfoDAO {
         }
     }
 */
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -288,11 +288,11 @@ public class JU_CacheInfoDAO {
         Mockito.doNothing().when(tt).done();
         CacheInfoDAO.Data data  = new CacheInfoDAO.Data("test",1);
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         CacheInfoDAOImpl daoObj=null;
         try {
             daoObj = new CacheInfoDAOImpl(trans, cluster, "test", createPS);
@@ -301,10 +301,10 @@ public class JU_CacheInfoDAO {
             e.printStackTrace();
         }
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
-        
+
+
     }
-    
+
     @Test
     public void testInfoLoader(){
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -338,12 +338,12 @@ public class JU_CacheInfoDAO {
         try {
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             CacheInfoDAO.Data data  = new CacheInfoDAO.Data();
             Row row = Mockito.mock(Row.class);
             innnerClassMtd = innerClass.getMethod("load", new Class[] {CacheInfoDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {CacheInfoDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"}});
 
@@ -367,9 +367,9 @@ public class JU_CacheInfoDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testCacheUpdate(){
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -407,24 +407,24 @@ public class JU_CacheInfoDAO {
             Constructor<?> innerConstructor = innerInnerClass.getDeclaredConstructors()[0];
             innerConstructor.setAccessible(true);
             Object innerClassObj = innerConstructor.newInstance(obj, trans);
-            
+
             Method innnerClassMtd;
-                
+
             CacheInfoDAO.Data data  = new CacheInfoDAO.Data();
             Row row = Mockito.mock(Row.class);
             Rcli rcli = Mockito.mock(Rcli.class);
             URI uri = new URI("ftp","admin:admin@geeksforgeeks.org:1234","/path/data","tt","ttd");
             Mockito.doReturn(uri).when(rcli).getURI();
             Mockito.doReturn(Mockito.mock(org.onap.aaf.cadi.client.Future.class)).when(rcli).delete("/mgmt/cache/null/null", "application/Void+json;q=1.0;charset=utf-8;version=2.0,application/json;q=1.0;version=2.0,*/*;q=1.0");
-            
+
             innnerClassMtd = innerInnerClass.getMethod("code", new Class[] {Rcli.class});
             innnerClassMtd.invoke(innerClassObj, new Object[] {rcli});
-            
+
             org.onap.aaf.cadi.client.Future futureObj = Mockito.mock(org.onap.aaf.cadi.client.Future.class);
             Mockito.doReturn(futureObj).when(rcli).delete("/mgmt/cache/null/null", "application/Void+json;q=1.0;charset=utf-8;version=2.0,application/json;q=1.0;version=2.0,*/*;q=1.0");
             Mockito.doReturn(true).when(futureObj).get(0);
             innnerClassMtd.invoke(innerClassObj, new Object[] {rcli});
-            
+
             uri = new URI("ftp","12.0.0.1:8080","/path/data","tt","ttd");
             Mockito.doReturn(uri).when(rcli).getURI();
             innnerClassMtd.invoke(innerClassObj, new Object[] {rcli});
@@ -458,9 +458,9 @@ public class JU_CacheInfoDAO {
         } catch (CadiException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testIntHolder(){
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -499,16 +499,16 @@ public class JU_CacheInfoDAO {
             innerConstructor.setAccessible(true);
             int[] a = new int[10];
             Object innerClassObj = innerConstructor.newInstance(obj, a);
-            
+
             Method innnerClassMtd=null;
-                
+
             CacheInfoDAO.Data data  = new CacheInfoDAO.Data();
             Row row = Mockito.mock(Row.class);
             Rcli rcli = Mockito.mock(Rcli.class);
             URI uri = new URI("ftp","admin:admin@geeksforgeeks.org:1234","/path/data","tt","ttd");
             Mockito.doReturn(uri).when(rcli).getURI();
             Mockito.doReturn(Mockito.mock(org.onap.aaf.cadi.client.Future.class)).when(rcli).delete("/mgmt/cache/null/null", "application/Void+json;q=1.0;charset=utf-8;version=2.0,application/json;q=1.0;version=2.0,*/*;q=1.0");
-            
+
             Method[] allMtds = innerInnerClass.getDeclaredMethods();
             for(Method indMtd:allMtds) {
                 if(indMtd.getName().contains("add")) {
@@ -516,8 +516,8 @@ public class JU_CacheInfoDAO {
                 }
             }
             innnerClassMtd.invoke(innerClassObj, new Object[] {a});
-            
-            
+
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -545,9 +545,9 @@ public class JU_CacheInfoDAO {
         } catch (CadiException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     //@Test
     public void testSecondConstructor() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -580,24 +580,24 @@ class CacheInfoDAOImpl extends CacheInfoDAO{
 //        setPs(this, createPS, "psByStatus");
 //        setSession(this, Mockito.mock(Session.class));
     }
-    
+
     public CacheInfoDAOImpl(AuthzTrans trans, Cluster cluster, String keyspace,PSInfo readPS  ) throws APIException, IOException {
         super(trans, cluster, keyspace);
         this.readPS = readPS;
     }
-    
+
 
     public void setPs(CacheInfoDAOImpl CacheInfoDAOObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = CacheInfoDAO.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(CacheInfoDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -611,12 +611,12 @@ class CacheInfoDAOImpl extends CacheInfoDAO{
         }
     }
 
-    
+
     public void setSession(CacheInfoDAOImpl CacheInfoDAOObj, Session session) {
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
@@ -634,5 +634,5 @@ class CacheInfoDAOImpl extends CacheInfoDAO{
             e.printStackTrace();
         }
     }
-    
+
 }
index 782bd98..718d9de 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -66,7 +66,7 @@ public class JU_CertDAOTest {
     AuthzEnv env;
     @Mock
     LogTarget logTarget;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -79,7 +79,7 @@ public class JU_CertDAOTest {
         Mockito.doReturn("100").when(trans).getProperty(Config.CADI_LONGITUDE);
         Mockito.doReturn(session).when(cluster).connect("test");
     }
-    
+
     @Test
     public void testInit() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -92,7 +92,7 @@ public class JU_CertDAOTest {
         PSInfo createPS = Mockito.mock(PSInfo.class);
         Result<ResultSet> rs = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "CertDAOImpl CREATE", data);
-        
+
         CertDAOImpl daoObj=null;
         try {
             daoObj = new CertDAOImpl(trans, cluster, "test",data, createPS);
@@ -102,17 +102,17 @@ public class JU_CertDAOTest {
         }
 
     }
-    
+
     @Test
     public void testCertLoader(){
-        
+
         Class<?> innerClass = CertDAO.class.getDeclaredClasses()[0];
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
         try {
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             CertDAO.Data data  = new CertDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -121,16 +121,16 @@ public class JU_CertDAOTest {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {CertDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {CertDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {CertDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
 //            DataInputStream in  = Mockito.mock(DataInputStream.class);
 ////            Mockito.doReturn(100).when(in).read();
 ////            Mockito.doReturn(100).when(in).readInt();
@@ -154,9 +154,9 @@ public class JU_CertDAOTest {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -168,14 +168,14 @@ public class JU_CertDAOTest {
         Mockito.doNothing().when(tt).done();
         CertDAO.Data data  = new CertDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(trans, CertDAO.TABLE, new int[1]);
-        
+
         CertDAO daoObj = null;
         try {
             daoObj = new CertDAO(trans, historyDAO, cacheInfoDAO);
@@ -183,21 +183,21 @@ public class JU_CertDAOTest {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(trans, CertDAO.TABLE, new int[1]);
-        
+
         try {
             daoObj = new CertDAO(trans, historyDAO, cacheInfoDAO);
         } catch (APIException | IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
 
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test"});
@@ -205,7 +205,7 @@ public class JU_CertDAOTest {
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test", "test"});
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {null});
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {});
-        
+
         try {
             CertDAO.Data data1  = Mockito.mock(CertDAO.Data.class);
             Mockito.doThrow(new IOException()).when(data1).bytify();
@@ -216,7 +216,7 @@ public class JU_CertDAOTest {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testRead() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -235,14 +235,14 @@ public class JU_CertDAOTest {
         Mockito.doNothing().when(tt).done();
         CertDAO.Data data  = new CertDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(trans, CertDAO.TABLE, new int[1]);
-        
+
         CertDAOImpl daoObj = null;
         try {
             daoObj = new CertDAOImpl(trans, historyDAO, cacheInfoDAO, createPS);
@@ -250,15 +250,15 @@ public class JU_CertDAOTest {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         daoObj.read(trans, new Object[] {"test", BigInteger.ONE});
         Field cbField;
         try {
             cbField = CassAccess.class.getDeclaredField("cb");
-            
+
             cbField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             cbField.set(null, null);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -270,15 +270,15 @@ public class JU_CertDAOTest {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         daoObj.readX500(trans, "test");
-        
+
         try {
             cbField = CassAccess.class.getDeclaredField("cb");
-            
+
             cbField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             cbField.set(null, null);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -290,11 +290,11 @@ public class JU_CertDAOTest {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
-        daoObj.readID(trans, "test");    
+
+        daoObj.readID(trans, "test");
     }
 
-    
+
     @Test
     public void testSecondConstructor() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -328,24 +328,24 @@ class CertDAOImpl extends CertDAO{
 //        setPs(this, createPS, "psByStatus");
 //        setSession(this, Mockito.mock(Session.class));
     }
-    
+
     public CertDAOImpl(AuthzTrans trans, HistoryDAO historyDAO, CacheInfoDAO cacheInfoDAO,PSInfo readPS  ) throws APIException, IOException {
         super(trans, historyDAO, cacheInfoDAO);
         this.readPS = readPS;
     }
-    
+
 
     public void setPs(CertDAOImpl CertDAOObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = CertDAO.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(CertDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -359,12 +359,12 @@ class CertDAOImpl extends CertDAO{
         }
     }
 
-    
+
     public void setSession(CertDAOImpl CertDAOObj, Session session) {
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
@@ -382,5 +382,5 @@ class CertDAOImpl extends CertDAO{
             e.printStackTrace();
         }
     }
-    
+
 }
index 91d1697..30004e9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -73,7 +73,7 @@ public class JU_ConfigDAOTest {
     AuthzEnv env;
     @Mock
     LogTarget logTarget;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -86,7 +86,7 @@ public class JU_ConfigDAOTest {
         Mockito.doReturn("100").when(trans).getProperty(Config.CADI_LONGITUDE);
         Mockito.doReturn(session).when(cluster).connect("test");
     }
-    
+
     @Test
     public void testInit() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -99,7 +99,7 @@ public class JU_ConfigDAOTest {
         PSInfo createPS = Mockito.mock(PSInfo.class);
         Result<ResultSet> rs = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs).when(createPS).exec(trans, "ConfigDAOImpl CREATE", data);
-        
+
         ConfigDAO daoObj=null;
         try {
             daoObj = new ConfigDAO(trans, cluster, "test");
@@ -109,17 +109,17 @@ public class JU_ConfigDAOTest {
         }
 
     }
-    
+
     @Test
     public void testConfigLoader(){
-        
+
         Class<?> innerClass = ConfigDAO.class.getDeclaredClasses()[0];
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
         try {
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             ConfigDAO.Data data  = new ConfigDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -128,16 +128,16 @@ public class JU_ConfigDAOTest {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {ConfigDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {ConfigDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {ConfigDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             DataOutputStream dos = new DataOutputStream(baos);
             innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {ConfigDAO.Data.class, DataOutputStream.class });
@@ -147,7 +147,7 @@ public class JU_ConfigDAOTest {
             DataInputStream dis = new DataInputStream(bais);
             innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {ConfigDAO.Data.class, DataInputStream.class });
             innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -166,9 +166,9 @@ public class JU_ConfigDAOTest {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -180,7 +180,7 @@ public class JU_ConfigDAOTest {
         Mockito.doNothing().when(tt).done();
         ConfigDAO.Data data  = new ConfigDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         ConfigDAO daoObj = null;
         try {
             daoObj = new ConfigDAO(trans, cluster, "test");
@@ -188,13 +188,13 @@ public class JU_ConfigDAOTest {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-    
-        
-        
+
+
+
     }
-    
+
     @Test
     public void testRead() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -210,9 +210,9 @@ public class JU_ConfigDAOTest {
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,null);
         Mockito.doReturn(Mockito.mock(Decryptor.class)).when(trans).decryptor();
         Mockito.doNothing().when(tt).done();
-        
+
         Result<List<Data>>  rs1 = new Result<List<Data>>(null,0,"test",new String[0]);
-        
+
 
         PSInfo psObj = Mockito.mock(PSInfo.class);
         ConfigDAOImpl daoObj = null;
@@ -224,12 +224,12 @@ public class JU_ConfigDAOTest {
         }
         Mockito.doReturn(rs1).when(psObj).read(trans, "ConfigDAO READ", new Object[]{"test"});
         daoObj.readName(trans, "test");
-        
-        
+
+
     }
 
-    
-    
+
+
     @Test
     public void testSecondConstructor() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -252,24 +252,24 @@ public class JU_ConfigDAOTest {
 
 class ConfigDAOImpl extends ConfigDAO{
 
-    
+
     public ConfigDAOImpl(AuthzTrans trans, Cluster cluster, String keyspace,PSInfo readPS  ) throws APIException, IOException {
         super(trans, cluster, keyspace);
         setPs(this, readPS, "psName");
     }
-    
+
 
     public void setPs(ConfigDAOImpl ConfigDAOObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = ConfigDAO.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(ConfigDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -283,12 +283,12 @@ class ConfigDAOImpl extends ConfigDAO{
         }
     }
 
-    
+
     public void setSession(ConfigDAOImpl ConfigDAOObj, Session session) {
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
@@ -306,5 +306,5 @@ class ConfigDAOImpl extends ConfigDAO{
             e.printStackTrace();
         }
     }
-    
+
 }
index 39d7492..3826fcb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -51,7 +51,7 @@ public class JU_DelegateDAO {
     AuthzTrans trans;
     @Mock
     Cluster cluster;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -65,27 +65,27 @@ public class JU_DelegateDAO {
     @Test
     public void testReadByDelegate() {
         DelegateDAO daoObj = new DelegateDAO(trans, cluster, "test");
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsDelegate(daoObj, psObj, "psByDelegate");
-        
+
         Result<List<DelegateDAO.Data>>  rs1 = new Result<List<DelegateDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "DelegateDAO READ", new Object[]{"test"});
-        
+
         daoObj.readByDelegate(trans, "test");
     }
-    
+
     public void setPsDelegate(DelegateDAO delegateDAOObj, PSInfo psInfoObj, String fieldName) {
         Field nsDaoField;
         try {
             nsDaoField = DelegateDAO.class.getDeclaredField(fieldName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(delegateDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -98,13 +98,13 @@ public class JU_DelegateDAO {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testSecondConstructor() {
         AbsCassDAO absDAO = Mockito.mock(AbsCassDAO.class);
 
         DelegateDAO daoObj = new DelegateDAO(trans, absDAO);
-        
+
     }
 
     @Test
@@ -117,13 +117,13 @@ public class JU_DelegateDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
         try {
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             DelegateDAO.Data data  = new DelegateDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -132,16 +132,16 @@ public class JU_DelegateDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {DelegateDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {DelegateDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {DelegateDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
 //            DataOutputStream dos = new DataOutputStream(new FileOutputStream("JU_DelegateDAOTest.java"));
 //            innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {DelegateDAO.Data.class, DataOutputStream.class });
 //            innnerClassMtd.invoke(obj, new Object[] {data, dos });
@@ -149,7 +149,7 @@ public class JU_DelegateDAO {
 //            DataInputStream dis = new DataInputStream(new FileInputStream("JU_DelegateDAOTest.java"));
 //            innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {DelegateDAO.Data.class, DataInputStream.class });
 //            innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -168,9 +168,9 @@ public class JU_DelegateDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testData(){
         DelegateDAO.Data data  = new DelegateDAO.Data();
@@ -184,5 +184,5 @@ public class JU_DelegateDAO {
             e.printStackTrace();
         }
     }
-    
+
 }
index 0794615..f05738e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,7 +58,7 @@ public class JU_FutureDAO {
     AuthzTrans trans;
     @Mock
     Cluster cluster;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -72,13 +72,13 @@ public class JU_FutureDAO {
     @Test
     public void testReadByStartAndTarget() {
         FutureDAO daoObj = new FutureDAO(trans, cluster, "test");
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psByStartAndTarget");
-        
+
         Result<List<FutureDAO.Data>>  rs1 = new Result<List<FutureDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "FutureDAO READ", new Object[]{"test"});
-        
+
         daoObj.readByStartAndTarget(trans,new Date(), "test");
     }
     @Test
@@ -91,7 +91,7 @@ public class JU_FutureDAO {
         Result<ResultSet>  rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "FutureDAOImpl CREATE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         FutureDAOImpl daoObj=null;
         try {
             daoObj = new FutureDAOImpl(trans, historyDAO, psObj);
@@ -100,35 +100,35 @@ public class JU_FutureDAO {
             e.printStackTrace();
         }
         Mockito.doReturn("test user").when(trans).user();
-        
+
         Result<FutureDAO.Data> retVal = daoObj.create(trans,data, "test");
         assertTrue(retVal.status == 0);
-        
+
         StringBuilder sb = new StringBuilder(trans.user());
         sb.append(data.target);
         sb.append(System.currentTimeMillis());
         data.id = UUID.nameUUIDFromBytes(sb.toString().getBytes());
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "FutureDAOImpl CREATE", data);
-        
+
         retVal = daoObj.create(trans,data, "test");
         assertTrue(retVal.status != 0);
-        
-        
+
+
     }
-    
+
     public void setPsByStartAndTarget(FutureDAO FutureDAOObj, PSInfo psInfoObj, String fieldName) {
         Field nsDaoField;
         try {
             nsDaoField = FutureDAO.class.getDeclaredField(fieldName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(FutureDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -141,7 +141,7 @@ public class JU_FutureDAO {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -154,11 +154,11 @@ public class JU_FutureDAO {
         Mockito.doNothing().when(tt).done();
         FutureDAO.Data data  = new FutureDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         FutureDAOImpl daoObj = null;
         try {
             daoObj = new FutureDAOImpl(trans, historyDAO, createPS );
@@ -167,23 +167,23 @@ public class JU_FutureDAO {
             e.printStackTrace();
         }
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
     }
-    
+
     @Test
     public void testSecondConstructor() {
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
 
         FutureDAO daoObj = new FutureDAO(trans, historyDAO);
-        
+
     }
 
     @Test
@@ -196,18 +196,18 @@ public class JU_FutureDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[1];
         constructor.setAccessible(true);
-        
+
         Constructor<?> constructor1 = innerClass.getDeclaredConstructors()[0];
         constructor1.setAccessible(true);
         try {
-            
+
             Object obj = constructor.newInstance(1);
             obj = constructor1.newInstance();
             Method innnerClassMtd;
-                
+
             FutureDAO.Data data  = new FutureDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -216,16 +216,16 @@ public class JU_FutureDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {FutureDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {FutureDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {FutureDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
 //            DataOutputStream dos = new DataOutputStream(new FileOutputStream("JU_FutureDAOTest.java"));
 //            innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {FutureDAO.Data.class, DataOutputStream.class });
 //            innnerClassMtd.invoke(obj, new Object[] {data, dos });
@@ -233,7 +233,7 @@ public class JU_FutureDAO {
 //            DataInputStream dis = new DataInputStream(new FileInputStream("JU_FutureDAOTest.java"));
 //            innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {FutureDAO.Data.class, DataInputStream.class });
 //            innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -252,31 +252,31 @@ public class JU_FutureDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
 }
 
 class FutureDAOImpl extends FutureDAO{
 
-    
+
     public FutureDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,PSInfo readPS  ) throws APIException, IOException {
         super(trans, historyDAO);
         setPs(this, readPS, "createPS");
     }
-    
+
 
     public void setPs(FutureDAOImpl FutureDAOObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = CassDAOImpl.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(FutureDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -289,5 +289,5 @@ class FutureDAOImpl extends FutureDAO{
             e.printStackTrace();
         }
     }
-    
+
 }
index f6d0a65..3503adf 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -61,7 +61,7 @@ public class JU_HistoryDAO {
     AuthzTrans trans;
     @Mock
     Cluster cluster;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -77,7 +77,7 @@ public class JU_HistoryDAO {
         HistoryDAO.Data data = daoObj.newInitedData();
         assertTrue( Integer.toString(((new Date()).getYear())+1900).equalsIgnoreCase(Integer.toString(data.yr_mon).substring(0,4)) );
     }
-    
+
     @Test
     public void testCreateBatch() {
         HistoryDAO daoObj = new HistoryDAO(trans, cluster, "test");
@@ -86,81 +86,81 @@ public class JU_HistoryDAO {
         daoObj.createBatch(sb, data);
         assertTrue(sb.toString().contains("INSERT INTO history"));
     }
-    
+
     @Test
     public void testReadByYYYYMM() {
         HistoryDAO daoObj = new HistoryDAO(trans, cluster, "test");
         AbsCassDAO<AuthzTrans, Data>.PSInfo psInfoObj = Mockito.mock(PSInfo.class);
         setAbsCassDAO(daoObj, psInfoObj, "readByYRMN");
-        
+
         ResultSet rs = Mockito.mock(ResultSet.class);
         Result<ResultSet>  rs1 = new Result<ResultSet>(rs,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psInfoObj).exec(trans, "yr_mon", 201905);
-        
+
         Result<List<Data>> retVal = daoObj.readByYYYYMM(trans, 201905);
         assertTrue(retVal.status !=1);
-        
+
         rs1 = new Result<ResultSet>(rs,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(psInfoObj).exec(trans, "yr_mon", 201905);
         retVal = daoObj.readByYYYYMM(trans, 201905);
         assertTrue(retVal.status !=0);
     }
-    
+
     @Test
     public void testReadByUser() {
         HistoryDAO daoObj = new HistoryDAO(trans, cluster, "test");
         AbsCassDAO<AuthzTrans, Data>.PSInfo psInfoObj = Mockito.mock(PSInfo.class);
         setAbsCassDAO(daoObj, psInfoObj, "readByUser");
-        
+
         ResultSet rs = Mockito.mock(ResultSet.class);
         Result<ResultSet>  rs1 = new Result<ResultSet>(rs,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psInfoObj).exec(trans, "user", "test");
-        
+
         Result<List<Data>> retVal = daoObj.readByUser(trans, "test", 201905);
         assertTrue(retVal.status !=1);
-        
+
         rs1 = new Result<ResultSet>(rs,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(psInfoObj).exec(trans, "user", "test");
         retVal = daoObj.readByUser(trans,"test", 201905);
         assertTrue(retVal.status !=0);
-        
+
         retVal = daoObj.readByUser(trans,"test");
         assertTrue(retVal.status !=0);
     }
-    
+
     @Test
     public void testReadBySubject() {
         HistoryDAO daoObj = new HistoryDAO(trans, cluster, "test");
         AbsCassDAO<AuthzTrans, Data>.PSInfo psInfoObj = Mockito.mock(PSInfo.class);
         setAbsCassDAO(daoObj, psInfoObj, "readBySubject");
-        
+
         ResultSet rs = Mockito.mock(ResultSet.class);
         Result<ResultSet>  rs1 = new Result<ResultSet>(rs,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psInfoObj).exec(trans, "subject", "test", "test");
-        
+
         Result<List<Data>> retVal = daoObj.readBySubject(trans, "test", "test", 201905);
         assertTrue(retVal.status !=1);
-        
+
         rs1 = new Result<ResultSet>(rs,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(psInfoObj).exec(trans, "subject", "test", "test");
         retVal = daoObj.readBySubject(trans,"test", "test", 201905);
         assertTrue(retVal.status !=0);
-        
+
         retVal = daoObj.readBySubject(trans,"test", "test");
         assertTrue(retVal.status !=0);
     }
-    
+
     public void setAbsCassDAO(HistoryDAO HistoryDAOObj, PSInfo psInfoObj, String fieldName) {
         Field nsDaoField;
         try {
             nsDaoField = HistoryDAO.class.getDeclaredField(fieldName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(HistoryDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -173,14 +173,14 @@ public class JU_HistoryDAO {
             e.printStackTrace();
         }
     }
-    
-    
+
+
     @Test
     public void testSecondConstructor() {
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
 
         HistoryDAO daoObj = new HistoryDAO(trans, historyDAO);
-        
+
     }
 
     @Test
@@ -193,14 +193,14 @@ public class JU_HistoryDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
-        
+
         try {
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             HistoryDAO.Data data  = new HistoryDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -209,16 +209,16 @@ public class JU_HistoryDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {HistoryDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {HistoryDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {HistoryDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -237,9 +237,9 @@ public class JU_HistoryDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testYYYYMM(){
         Class<?> innerClass = null;
@@ -250,14 +250,14 @@ public class JU_HistoryDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
         int yyyymm[] = new int[2];
         try {
             Object obj = constructor.newInstance(new HistoryDAO(trans, cluster, "test"), yyyymm);
             Method innnerClassMtd;
-                
+
             HistoryDAO.Data data  = new HistoryDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -266,13 +266,13 @@ public class JU_HistoryDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("ok", new Class[] {HistoryDAO.Data.class});
             innnerClassMtd.invoke(obj, new Object[] {data});
-            
+
             data.yr_mon=201904;
             innnerClassMtd.invoke(obj, new Object[] {data});
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -291,30 +291,30 @@ public class JU_HistoryDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
 }
 
 class HistoryDAOImpl extends HistoryDAO{
 
-    
+
     public HistoryDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,PSInfo readPS  ) throws APIException, IOException {
         super(trans, historyDAO);
         setPs(this, readPS, "createPS");
     }
-    
+
     public void setPs(HistoryDAOImpl HistoryDAOObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = CassDAOImpl.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(HistoryDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -327,5 +327,5 @@ class HistoryDAOImpl extends HistoryDAO{
             e.printStackTrace();
         }
     }
-    
+
 }
index 53bad44..d4f2c98 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -60,7 +60,7 @@ public class JU_LocateDAO {
     AuthzTrans trans;
     @Mock
     Cluster cluster;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -84,28 +84,28 @@ public class JU_LocateDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psName");
-        
+
         Result<List<LocateDAO.Data>>  rs1 = new Result<List<LocateDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "LocateDAO READ", new Object[]{"test"});
-        
+
         daoObj.readByName(trans, "test");
     }
-    
-    
+
+
     public void setPsByStartAndTarget(LocateDAO LocateDAOObj, PSInfo psInfoObj, String fieldName) {
         Field nsDaoField;
         try {
             nsDaoField = LocateDAO.class.getDeclaredField(fieldName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(LocateDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -118,14 +118,14 @@ public class JU_LocateDAO {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testWasMOdified() {
-        
+
         LocateDAO.Data data  = new LocateDAO.Data();
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
-        
+
         LocateDAO daoObj = null;
         try {
             daoObj = new LocateDAO(trans, historyDAO );
@@ -134,10 +134,10 @@ public class JU_LocateDAO {
             e.printStackTrace();
         }
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
-        
+
+
     }
-    
+
     @Test
     public void testSecondConstructor() {
         AbsCassDAO historyDAO = Mockito.mock(AbsCassDAO.class);
@@ -148,7 +148,7 @@ public class JU_LocateDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
     }
 
     @Test
@@ -161,15 +161,15 @@ public class JU_LocateDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
-        
+
         try {
-            
+
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             LocateDAO.Data data  = new LocateDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -178,16 +178,16 @@ public class JU_LocateDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {LocateDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {LocateDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 0, new Object[] {"test","test","test"} });
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {LocateDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             DataOutputStream dos = new DataOutputStream(baos);
             innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {LocateDAO.Data.class, DataOutputStream.class });
@@ -197,7 +197,7 @@ public class JU_LocateDAO {
             DataInputStream dis = new DataInputStream(bais);
             innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {LocateDAO.Data.class, DataInputStream.class });
             innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -216,9 +216,9 @@ public class JU_LocateDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testData(){
         LocateDAO.Data data  = new LocateDAO.Data();
@@ -230,16 +230,16 @@ public class JU_LocateDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         data.subprotocol(true);
-        
+
         Set<String> subProt = new HashSet<String>();
         Field protField;
         try {
             protField = LocateDAO.Data.class.getDeclaredField("subprotocol");
-            
+
             protField.setAccessible(true);
-            
+
             protField.set(data, subProt);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -251,15 +251,15 @@ public class JU_LocateDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         data.subprotocol(true);
         subProt = new TreeSet<String>();
         subProt.add("test");
         try {
             protField = LocateDAO.Data.class.getDeclaredField("subprotocol");
-            
+
             protField.setAccessible(true);
-            
+
             protField.set(data, subProt);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -271,36 +271,36 @@ public class JU_LocateDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         data.subprotocol(true);
         data.subprotocol(false);
-        
+
         LocateDAO.Data newDate = data.copy();
         assertTrue(data.name.equals(newDate.name));
     }
-    
+
 }
 
 class LocateDAOImpl extends LocateDAO{
 
-    
+
     public LocateDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,PSInfo readPS  ) throws APIException, IOException {
         super(trans, historyDAO);
         setPs(this, readPS, "createPS");
     }
-    
+
 
     public void setPs(LocateDAOImpl LocateDAOObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = CassDAOImpl.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(LocateDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -313,5 +313,5 @@ class LocateDAOImpl extends LocateDAO{
             e.printStackTrace();
         }
     }
-    
+
 }
index 6bdb3d7..e1c1399 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,7 +38,7 @@ import org.onap.aaf.misc.env.APIException;
 public class JU_Namespace {
 
     Namespace namespace;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -56,9 +56,9 @@ public class JU_Namespace {
         data.attrib.put("test", "test");
         namespace = new Namespace(data);
     }
-    
-    
-    
+
+
+
     @Test
     public void testSecondConstructor() {
 
@@ -72,10 +72,10 @@ public class JU_Namespace {
         namespace = new Namespace(data,owner, admin);
         data.attrib.put("test", "test");
         namespace = new Namespace(data ,owner, admin);
-        
+
         NsDAO.Data retData = namespace.data();
         assertTrue(retData.name.equals("name"));
-    
+
     }
     @Test
     public void testBytify() {
@@ -101,5 +101,5 @@ public class JU_Namespace {
         nameObj = new Namespace(data);
         assertTrue(namespace.equals(nameObj));
     }
-    
+
 }
\ No newline at end of file
index 9be4f5a..3923d7e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -76,7 +76,7 @@ public class JU_NsDAO {
     Session session;
     @Mock
     ResultSet rs;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -105,18 +105,18 @@ public class JU_NsDAO {
             e.printStackTrace();
         }
     }
-    
+
     public void setPsByStartAndTarget(NsDAO NsDAOObj, PSInfo psInfoObj, String fieldName) {
         Field nsDaoField;
         try {
             nsDaoField = NsDAO.class.getDeclaredField(fieldName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(NsDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -129,7 +129,7 @@ public class JU_NsDAO {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -141,13 +141,13 @@ public class JU_NsDAO {
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
         Mockito.doNothing().when(tt).done();
         NsDAO.Data data  = new NsDAO.Data();
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
-        
+
         NsDAO daoObj = null;
         try {
             daoObj = new NsDAO(trans, historyDAO, cacheInfoDAO);
@@ -156,17 +156,17 @@ public class JU_NsDAO {
             e.printStackTrace();
         }
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new Object[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
     }
-    
+
     @Test
     public void testSecondConstructor() {
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
@@ -178,7 +178,7 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
     }
 
     @Test
@@ -191,15 +191,15 @@ public class JU_NsDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
-        
+
         try {
-            
+
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             NsDAO.Data data  = new NsDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -208,16 +208,16 @@ public class JU_NsDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {NsDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {NsDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {NsDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             DataOutputStream dos = new DataOutputStream(baos);
             innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {NsDAO.Data.class, DataOutputStream.class });
@@ -227,7 +227,7 @@ public class JU_NsDAO {
             DataInputStream dis = new DataInputStream(bais);
             innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {NsDAO.Data.class, DataInputStream.class });
             innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -246,7 +246,7 @@ public class JU_NsDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
     @Test
     public void testCreate() {
@@ -267,7 +267,7 @@ public class JU_NsDAO {
             e.printStackTrace();
         }
         Mockito.doReturn("test user").when(trans).user();
-        
+
         Result<NsDAO.Data> retVal = daoObj.create(trans,data);
         assertTrue(retVal.status == 4);
 
@@ -278,7 +278,7 @@ public class JU_NsDAO {
         data.parent = "parent";
         data.attrib = new HashMap<>();
         data.attrib.put("test", "test");
-        
+
         Field cbField;
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
         try {
@@ -295,10 +295,10 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         retVal = daoObj.create(trans,data);
         assertTrue(retVal.status == 9);
-        
+
         Field owningField;
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
         try {
@@ -317,9 +317,9 @@ public class JU_NsDAO {
         }
         retVal = daoObj.create(trans,data);
         assertTrue(retVal.status == 0);
-        
+
     }
-    
+
     @Test
     public void testUpdate() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -340,7 +340,7 @@ public class JU_NsDAO {
             e.printStackTrace();
         }
         Mockito.doReturn("test user").when(trans).user();
-        
+
         Result<Void> retVal = daoObj.update(trans,data);
         assertTrue(retVal.status == 4);
 
@@ -367,10 +367,10 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         retVal = daoObj.update(trans,data);
         assertTrue(retVal.status == 0);
-        
+
         ResultSet rsMock = Mockito.mock(ResultSet.class);
         Iterator<Row> iteMock = Mockito.mock(Iterator.class);
         Mockito.doReturn(iteMock).when(rsMock).iterator();
@@ -382,7 +382,7 @@ public class JU_NsDAO {
         retVal = daoObj.update(trans,data);
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testRead() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -408,7 +408,7 @@ public class JU_NsDAO {
             e.printStackTrace();
         }
         Mockito.doReturn("test user").when(trans).user();
-        
+
         Result<List<Data>> retVal = daoObj.read(trans,data);
         assertTrue(retVal.status == 0);
 
@@ -436,7 +436,7 @@ public class JU_NsDAO {
         assertTrue(retVal.status == 0);
 
     }
-    
+
     @Test
     public void testReadByObject() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -462,7 +462,7 @@ public class JU_NsDAO {
             e.printStackTrace();
         }
         Mockito.doReturn("test user").when(trans).user();
-        
+
         Result<List<Data>> retVal = daoObj.read(trans,new Object[] {});
         assertTrue(retVal.status == 0);
 
@@ -490,7 +490,7 @@ public class JU_NsDAO {
         assertTrue(retVal.status == 0);
 
     }
-    
+
     @Test
     public void testDelete() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -533,7 +533,7 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<Void> retVal = daoObj.delete(trans,data, false);
         assertTrue(retVal.status == 0);
 
@@ -541,12 +541,12 @@ public class JU_NsDAO {
         dataAL.add(data);
         rs1 = new Result<List<Data>>(dataAL,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "NsDAOImpl READ", data);
-        
+
         retVal = daoObj.delete(trans,data, false);
         assertTrue(retVal.status == 0);
 
     }
-    
+
     @Test
     public void testReadNsByAttrib() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -560,7 +560,7 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -572,7 +572,7 @@ public class JU_NsDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "NsDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "NsDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Mockito.doReturn("test user").when(trans).user();
         Field cbField;
         try {
@@ -589,10 +589,10 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<Set<String>> retVal = daoObj.readNsByAttrib(trans,"test");
         assertTrue(retVal.status == 0);
-        
+
         ResultSet rsMock = Mockito.mock(ResultSet.class);
         Iterator<Row> iteMock = Mockito.mock(Iterator.class);
         Mockito.doReturn(iteMock).when(rsMock).iterator();
@@ -619,7 +619,7 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -631,7 +631,7 @@ public class JU_NsDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "NsDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "NsDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Mockito.doReturn("test user").when(trans).user();
         Field cbField;
         try {
@@ -648,11 +648,11 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<Void> retVal = daoObj.attribAdd(trans, "test", "test", "test");
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testAttribRemove() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -666,7 +666,7 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -678,7 +678,7 @@ public class JU_NsDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "NsDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "NsDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Mockito.doReturn("test user").when(trans).user();
         Field cbField;
         try {
@@ -695,11 +695,11 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<Void> retVal = daoObj.attribRemove(trans, "test", "test");
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testAddDescription() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -713,7 +713,7 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -744,11 +744,11 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<Void> retVal = daoObj.addDescription(trans, "test", "test");
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testGetChildren() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -761,11 +761,11 @@ public class JU_NsDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<List<Data>> retVal = daoObj.getChildren(trans, "test");
         assertNull(retVal);
     }
-    
+
     @Test
     public void testData() {
         NsDAO.Data data = new NsDAO.Data();
@@ -778,10 +778,10 @@ public class JU_NsDAO {
         data.attrib(false);
         data.attrib = new ConcurrentHashMap<>();
         data.attrib(true);
-        
+
         data.name="123";
         data.split("test");
-        
+
         data.toString();
     }
 
@@ -789,12 +789,12 @@ public class JU_NsDAO {
 
 class NsDAOImpl extends NsDAO{
 
-    
+
 //    public NsDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,PSInfo readPS  ) throws APIException, IOException {
 //        super(trans, historyDAO);
 //        setSession(this, Mockito.mock(Session.class));
 //    }
-    
+
 
     public NsDAOImpl(AuthzTrans trans, Cluster cluster, String keySpace, Session session)throws APIException, IOException {
         super(trans, cluster, keySpace);
@@ -816,13 +816,13 @@ class NsDAOImpl extends NsDAO{
         Field nsDaoField;
         try {
             nsDaoField = NsDAO.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(NsDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -840,13 +840,13 @@ class NsDAOImpl extends NsDAO{
         Field nsDaoField;
         try {
             nsDaoField = CassDAOImpl.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(NsDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -863,13 +863,13 @@ class NsDAOImpl extends NsDAO{
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(approvalDaoObj, session);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
index 5c158b6..93c595d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -63,7 +63,7 @@ public class JU_OAuthTokenDAO {
     AuthzTrans trans;
     @Mock
     Cluster cluster;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -77,27 +77,27 @@ public class JU_OAuthTokenDAO {
     @Test
     public void testReadByUser() {
         OAuthTokenDAO daoObj = new OAuthTokenDAO(trans, cluster, "test");
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psByUser");
-        
+
         Result<List<OAuthTokenDAO.Data>>  rs1 = new Result<List<OAuthTokenDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "OAuthTokenDAO READ", new Object[]{"test"});
-        
+
         daoObj.readByUser(trans, "test");
     }
-    
+
     public void setPsByStartAndTarget(OAuthTokenDAO OAuthTokenDAOObj, PSInfo psInfoObj, String fieldName) {
         Field nsDaoField;
         try {
             nsDaoField = OAuthTokenDAO.class.getDeclaredField(fieldName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(OAuthTokenDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -110,7 +110,7 @@ public class JU_OAuthTokenDAO {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -126,15 +126,15 @@ public class JU_OAuthTokenDAO {
         OAuthTokenDAO daoObj = null;
         daoObj = new OAuthTokenDAO(trans, cluster, "test" );
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
     }
-    
+
     @Test
     public void testSecondConstructor() {
         AbsCassDAO absCassDAO = Mockito.mock(AbsCassDAO.class);
 
         OAuthTokenDAO daoObj = new OAuthTokenDAO(trans, absCassDAO);
-        
+
     }
 
     @Test
@@ -149,15 +149,15 @@ public class JU_OAuthTokenDAO {
         data.scopes(false);
         data.scopes = new ConcurrentHashSet<>();
         data.scopes(true);
-        
+
         data.expires = new Date();
         data.user="test";
         data.id="id";
         data.toString();
-        
+
         data.active=true;
         data.toString();
-        
+
         try {
             ByteBuffer bb = data.bytify();
             data.reconstitute(bb);
@@ -176,15 +176,15 @@ public class JU_OAuthTokenDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
-        
+
         try {
-            
+
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             OAuthTokenDAO.Data data  = new OAuthTokenDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -193,16 +193,16 @@ public class JU_OAuthTokenDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {OAuthTokenDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {OAuthTokenDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {OAuthTokenDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             DataOutputStream dos = new DataOutputStream(baos);
             innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {OAuthTokenDAO.Data.class, DataOutputStream.class });
@@ -212,7 +212,7 @@ public class JU_OAuthTokenDAO {
             DataInputStream dis = new DataInputStream(bais);
             innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {OAuthTokenDAO.Data.class, DataInputStream.class });
             innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -231,31 +231,31 @@ public class JU_OAuthTokenDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
 }
 
 class OAuthTokenDAOImpl extends OAuthTokenDAO{
 
-    
+
     public OAuthTokenDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,PSInfo readPS  ) throws APIException, IOException {
         super(trans, historyDAO);
         setPs(this, readPS, "createPS");
     }
-    
+
 
     public void setPs(OAuthTokenDAOImpl OAuthTokenDAOObj, PSInfo psInfoObj, String methodName) {
         Field nsDaoField;
         try {
             nsDaoField = CassDAOImpl.class.getDeclaredField(methodName);
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(OAuthTokenDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -268,5 +268,5 @@ class OAuthTokenDAOImpl extends OAuthTokenDAO{
             e.printStackTrace();
         }
     }
-    
+
 }
index 57f3992..28f9289 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -69,7 +69,7 @@ public class JU_PermDAO {
     Cluster cluster;
     @Mock
     Session session;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -114,13 +114,13 @@ public class JU_PermDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psByType");
-        
+
         Result<List<PermDAO.Data>>  rs1 = new Result<List<PermDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "PermDAO READ", new Object[]{"test"});
-        
+
         daoObj.readByType(trans, "test", "test");
     }
     @Test
@@ -138,13 +138,13 @@ public class JU_PermDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psChildren");
-        
+
         Result<List<PermDAO.Data>>  rs1 = new Result<List<PermDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "PermDAO READ", new Object[]{"test"});
-        
+
         daoObj.readChildren(trans, "test", "test");
     }
     @Test
@@ -162,13 +162,13 @@ public class JU_PermDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psNS");
-        
+
         Result<List<PermDAO.Data>>  rs1 = new Result<List<PermDAO.Data>>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "PermDAO READ", new Object[]{"test"});
-        
+
         daoObj.readNS(trans, "test");
     }
     @Test
@@ -190,7 +190,7 @@ public class JU_PermDAO {
         Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on PermDAO", Env.SUB);
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -202,10 +202,10 @@ public class JU_PermDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "PermDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "PermDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Result<Void> rs2 = new Result<Void>(null,0,"test",new String[0]);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
          rs1 = new Result<List<Data>>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
         Mockito.doReturn("test user").when(trans).user();
@@ -224,11 +224,11 @@ public class JU_PermDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PermDAO.Data perm = new PermDAO.Data();
         Result<Void> retVal = daoObj.addRole(trans, perm, "test");
         assertTrue(retVal.status == 9);
-        
+
         Field owningField;
         try {
             owningField = AbsCassDAO.class.getDeclaredField("owningDAO");
@@ -247,7 +247,7 @@ public class JU_PermDAO {
         retVal = daoObj.addRole(trans, perm, "test");
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testDelRole() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -267,7 +267,7 @@ public class JU_PermDAO {
         Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on PermDAO", Env.SUB);
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -279,14 +279,14 @@ public class JU_PermDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "PermDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "PermDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Result<Void> rs2 = new Result<Void>(null,0,"test",new String[0]);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
          rs1 = new Result<List<Data>>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
         Mockito.doReturn("test user").when(trans).user();
-        
+
         PermDAO.Data perm = new PermDAO.Data();
         Field cbField;
         try {
@@ -303,10 +303,10 @@ public class JU_PermDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<Void> retVal = daoObj.delRole(trans, perm, "test");
         assertTrue(retVal.status == 9);
-        
+
         Field owningDaoField;
         try {
             owningDaoField = AbsCassDAO.class.getDeclaredField("owningDAO");
@@ -325,7 +325,7 @@ public class JU_PermDAO {
         retVal = daoObj.delRole(trans, perm, "test");
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testAddDescription() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -345,7 +345,7 @@ public class JU_PermDAO {
         Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on PermDAO", Env.SUB);
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -357,14 +357,14 @@ public class JU_PermDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "PermDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "PermDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Result<Void> rs2 = new Result<Void>(null,1,"test",new String[0]);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
          rs1 = new Result<List<Data>>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
         Mockito.doReturn("test user").when(trans).user();
-        
+
         PermDAO.Data perm = new PermDAO.Data();
         Field cbField;
         try {
@@ -381,10 +381,10 @@ public class JU_PermDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<Void> retVal = daoObj.addDescription(trans, "test", "test", "test", "test", "test");
         assertTrue(retVal.status == 9);
-        
+
         Field owningDaoField;
         try {
             owningDaoField = AbsCassDAO.class.getDeclaredField("owningDAO");
@@ -403,18 +403,18 @@ public class JU_PermDAO {
         retVal = daoObj.addDescription(trans, "test", "test", "test", "test", "test");
         assertTrue(retVal.status == 0);
     }
-    
+
     public void setPsByStartAndTarget(PermDAO PermDAOObj, PSInfo psInfoObj, String fieldName) {
         Field PermDAOField;
         try {
             PermDAOField = PermDAO.class.getDeclaredField(fieldName);
-            
+
             PermDAOField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(PermDAOField, PermDAOField.getModifiers() & ~Modifier.FINAL);
-            
+
             PermDAOField.set(PermDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -427,7 +427,7 @@ public class JU_PermDAO {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -440,15 +440,15 @@ public class JU_PermDAO {
         Mockito.doNothing().when(tt).done();
         PermDAO.Data data  = new PermDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Result<Void> rs2 = new Result<Void>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
         PermDAOImpl daoObj = null;
         try {
             daoObj = new PermDAOImpl(trans, historyDAO, cacheInfoDAO, createPS );
@@ -457,24 +457,24 @@ public class JU_PermDAO {
             e.printStackTrace();
         }
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test","test"});
     }
-    
+
     @Test
     public void testSecondConstructor() {
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
 
         PermDAO daoObj = new PermDAO(trans, historyDAO, cacheInfoDAO);
-        
+
     }
 
     @Test
@@ -487,15 +487,15 @@ public class JU_PermDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
-        
+
         try {
-            
+
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             PermDAO.Data data  = new PermDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -504,16 +504,16 @@ public class JU_PermDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {PermDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {PermDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {PermDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             DataOutputStream dos = new DataOutputStream(baos);
             innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {PermDAO.Data.class, DataOutputStream.class });
@@ -523,7 +523,7 @@ public class JU_PermDAO {
             DataInputStream dis = new DataInputStream(bais);
             innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {PermDAO.Data.class, DataInputStream.class });
             innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -542,21 +542,21 @@ public class JU_PermDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testData() {
         PermDAO.Data data = new PermDAO.Data();
         NsSplit nss = new NsSplit("test", "test");
         data = new PermDAO.Data(nss, "test", "test");
-        
+
         data.toString();
-        
+
         assertTrue("test.test|test|test".equalsIgnoreCase(data.fullPerm()));
-        
+
         Question q = Mockito.mock( Question.class);
-        
+
         Result<NsSplit> rs = new Result<NsSplit>(nss,0,"test",new Object[0]);
         Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test");
         Result<Data> retVal= PermDAO.Data.decode(trans, q, "test|||");
@@ -566,7 +566,7 @@ public class JU_PermDAO {
         retVal= PermDAO.Data.decode(trans, q, "test||");
         retVal1= PermDAO.Data.decodeToArray(trans, q, "test||");
         assertTrue(retVal.status==0);
-        
+
         rs = new Result<NsSplit>(nss,1,"test",new Object[0]);
         Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test");
         retVal= PermDAO.Data.decode(trans, q, "test||");
@@ -576,7 +576,7 @@ public class JU_PermDAO {
         retVal= PermDAO.Data.decode(trans, q, "test|");
         retVal1= PermDAO.Data.decodeToArray(trans, q, "test|");
         assertTrue(retVal.status==4);
-        
+
         NsDAO.Data ns = new NsDAO.Data();
         ns.name="test";
         PermDAO.Data.create(ns, "test");
@@ -586,7 +586,7 @@ public class JU_PermDAO {
         Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test");
         PermDAO.Data.create(trans,q, "test|test|test|test");
     }
-    
+
 }
 
 class PermDAOImpl extends PermDAO{
@@ -594,25 +594,25 @@ class PermDAOImpl extends PermDAO{
         super(trans, historyDAO, cacheDao);
         setPs(this, readPS, "createPS");
     }
-    
+
     public PermDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,CacheInfoDAO cacheDao, PSInfo readPS, Session session  ) throws APIException, IOException {
         super(trans, historyDAO, cacheDao);
         setPs(this, readPS, "createPS");
         setSession(this, session);
     }
-    
+
 
     public void setPs(PermDAOImpl PermDAOObj, PSInfo psInfoObj, String methodName) {
         Field PermDAOField;
         try {
             PermDAOField = CassDAOImpl.class.getDeclaredField(methodName);
-            
+
             PermDAOField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(PermDAOField, PermDAOField.getModifiers() & ~Modifier.FINAL);
-            
+
             PermDAOField.set(PermDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -625,18 +625,18 @@ class PermDAOImpl extends PermDAO{
             e.printStackTrace();
         }
     }
-    
+
     public void setSession(PermDAOImpl approvalDaoObj, Session session) {
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(approvalDaoObj, session);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
index 4057a6e..f91fac4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -70,7 +70,7 @@ public class JU_RoleDAO {
     Cluster cluster;
     @Mock
     Session session;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -113,13 +113,13 @@ public class JU_RoleDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psName");
-        
+
         Result<List<RoleDAO.Data>>  rs1 = new Result<List<RoleDAO.Data>>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"});
-        
+
         daoObj.readName(trans, "test");
     }
     @Test
@@ -136,15 +136,15 @@ public class JU_RoleDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psChildren");
-        
+
         Result<List<RoleDAO.Data>>  rs1 = new Result<List<RoleDAO.Data>>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"});
-        
+
         daoObj.readChildren(trans, "test", "test");
-        
+
         daoObj.readChildren(trans, "test", "*");
         daoObj.readChildren(trans, "test", "");
     }
@@ -162,13 +162,13 @@ public class JU_RoleDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psNS");
-        
+
         Result<List<RoleDAO.Data>>  rs1 = new Result<List<RoleDAO.Data>>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAO READ", new Object[]{"test"});
-        
+
         daoObj.readNS(trans, "test");
     }
     @Test
@@ -190,7 +190,7 @@ public class JU_RoleDAO {
         Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB);
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -202,10 +202,10 @@ public class JU_RoleDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Result<Void> rs2 = new Result<Void>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
          rs1 = new Result<List<Data>>(null,1,"test",new Object[0]);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
         Mockito.doReturn("test user").when(trans).user();
@@ -224,12 +224,12 @@ public class JU_RoleDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PermDAO.Data perm = new PermDAO.Data();
         RoleDAO.Data role = new RoleDAO.Data();
         Result<Void> retVal = daoObj.addPerm(trans, role, perm);
         assertTrue(retVal.status == 9);
-        
+
         Field owningField;
         try {
             owningField = AbsCassDAO.class.getDeclaredField("owningDAO");
@@ -248,7 +248,7 @@ public class JU_RoleDAO {
         retVal = daoObj.addPerm(trans, role, perm);
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testDelRole() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -268,7 +268,7 @@ public class JU_RoleDAO {
         Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB);
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -280,14 +280,14 @@ public class JU_RoleDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Result<Void> rs2 = new Result<Void>(null,0,"test",new String[0]);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
          rs1 = new Result<List<Data>>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
         Mockito.doReturn("test user").when(trans).user();
-        
+
         PermDAO.Data perm = new PermDAO.Data();
         Field cbField;
         try {
@@ -307,7 +307,7 @@ public class JU_RoleDAO {
         RoleDAO.Data role = new RoleDAO.Data();
         Result<Void> retVal = daoObj.delPerm(trans, role, perm);
         assertTrue(retVal.status == 9);
-        
+
         Field owningDaoField;
         try {
             owningDaoField = AbsCassDAO.class.getDeclaredField("owningDAO");
@@ -326,7 +326,7 @@ public class JU_RoleDAO {
         retVal = daoObj.delPerm(trans,role, perm);
         assertTrue(retVal.status == 0);
     }
-    
+
     @Test
     public void testAddDescription() {
         PSInfo psObj = Mockito.mock(PSInfo.class);
@@ -346,7 +346,7 @@ public class JU_RoleDAO {
         Mockito.doReturn(tt).when(trans).start("Clear Reset Deque", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("New Cassandra Session", Env.SUB);
         Mockito.doReturn(tt).when(trans).start("Preparing PSInfo CREATE on RoleDAO", Env.SUB);
-        
+
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"100");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_PORT,"9042");
         Mockito.doReturn("100").when(trans).getProperty(CassAccess.CASSANDRA_CLUSTERS_USER_NAME,"100");
@@ -358,14 +358,14 @@ public class JU_RoleDAO {
         Mockito.doReturn(rs1).when(psObj).read(trans, "RoleDAOImpl READ", data);
         Mockito.doReturn(rs1).when(psObj).exec(trans, "RoleDAOImpl DELETE", data);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         Result<Void> rs2 = new Result<Void>(null,1,"test",new String[0]);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
          rs1 = new Result<List<Data>>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(cacheInfoDAO).touch(Mockito.any(), Mockito.anyString(), Mockito.anyInt());
         Mockito.doReturn("test user").when(trans).user();
-        
+
         RoleDAO.Data perm = new RoleDAO.Data();
         Field cbField;
         try {
@@ -382,10 +382,10 @@ public class JU_RoleDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Result<Void> retVal = daoObj.addDescription(trans, "test", "test", "test");
         assertTrue(retVal.status == 9);
-        
+
         Field owningDaoField;
         try {
             owningDaoField = AbsCassDAO.class.getDeclaredField("owningDAO");
@@ -404,18 +404,18 @@ public class JU_RoleDAO {
         retVal = daoObj.addDescription(trans, "test", "test", "test");
         assertTrue(retVal.status == 0);
     }
-    
+
     public void setPsByStartAndTarget(RoleDAO RoleDAOObj, PSInfo psInfoObj, String fieldName) {
         Field RoleDAOField;
         try {
             RoleDAOField = RoleDAO.class.getDeclaredField(fieldName);
-            
+
             RoleDAOField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(RoleDAOField, RoleDAOField.getModifiers() & ~Modifier.FINAL);
-            
+
             RoleDAOField.set(RoleDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -428,7 +428,7 @@ public class JU_RoleDAO {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testWasModified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -441,15 +441,15 @@ public class JU_RoleDAO {
         Mockito.doNothing().when(tt).done();
         RoleDAO.Data data  = new RoleDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new String[0]);
         Result<Void> rs2 = new Result<Void>(null,0,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
         RoleDAOImpl daoObj = null;
         try {
             daoObj = new RoleDAOImpl(trans, historyDAO, cacheInfoDAO, createPS );
@@ -458,24 +458,24 @@ public class JU_RoleDAO {
             e.printStackTrace();
         }
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
         daoObj.wasModified(trans, CRUD.create, data, new String[] {});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test","test"});
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test","test"});
     }
-    
+
     @Test
     public void testSecondConstructor() {
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
 
         RoleDAO daoObj = new RoleDAO(trans, historyDAO, cacheInfoDAO);
-        
+
     }
 
     @Test
@@ -488,15 +488,15 @@ public class JU_RoleDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
-        
+
         try {
-            
+
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             RoleDAO.Data data  = new RoleDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -505,16 +505,16 @@ public class JU_RoleDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {RoleDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {RoleDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {RoleDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             DataOutputStream dos = new DataOutputStream(baos);
             innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {RoleDAO.Data.class, DataOutputStream.class });
@@ -524,7 +524,7 @@ public class JU_RoleDAO {
             DataInputStream dis = new DataInputStream(bais);
             innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {RoleDAO.Data.class, DataInputStream.class });
             innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -543,20 +543,20 @@ public class JU_RoleDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testData() {
         RoleDAO.Data data = new RoleDAO.Data();
         NsSplit nss = new NsSplit("test", "test");
         data = new RoleDAO.Data();
-        
+
         data.toString();
-        
-        
+
+
         Question q = Mockito.mock( Question.class);
-        
+
         Result<NsSplit> rs = new Result<NsSplit>(nss,0,"test",new Object[0]);
         Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test");
         Result<Data> retVal= RoleDAO.Data.decode(trans, q, "test|||");
@@ -566,7 +566,7 @@ public class JU_RoleDAO {
         retVal= RoleDAO.Data.decode(trans, q, "test");
         retVal1= RoleDAO.Data.decodeToArray(trans, q, "test");
         assertTrue(retVal.status==0);
-        
+
         rs = new Result<NsSplit>(nss,1,"test",new Object[0]);
         Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test");
         retVal= RoleDAO.Data.decode(trans, q, "test");
@@ -576,7 +576,7 @@ public class JU_RoleDAO {
         retVal= RoleDAO.Data.decode(trans, q, "test");
         retVal1= RoleDAO.Data.decodeToArray(trans, q, "test");
         assertTrue(retVal.status==1);
-        
+
         NsDAO.Data ns = new NsDAO.Data();
         ns.name="test";
         RoleDAO.Data.create(ns, "test");
@@ -585,9 +585,9 @@ public class JU_RoleDAO {
         urdd.ns="test";
         RoleDAO.Data dd=RoleDAO.Data.decode(urdd);
         assertTrue("test".equals(dd.ns));
-        
+
         assertTrue(data.encode().contains("null"));
-        
+
         data.perms = null;
         data.perms(true);
 
@@ -598,7 +598,7 @@ public class JU_RoleDAO {
         data.perms = new TreeSet<>();
         data.perms(true);
     }
-    
+
 }
 
 class RoleDAOImpl extends RoleDAO{
@@ -606,25 +606,25 @@ class RoleDAOImpl extends RoleDAO{
         super(trans, historyDAO, cacheDao);
         setPs(this, readPS, "createPS");
     }
-    
+
     public RoleDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,CacheInfoDAO cacheDao, PSInfo readPS, Session session  ) throws APIException, IOException {
         super(trans, historyDAO, cacheDao);
         setPs(this, readPS, "createPS");
         setSession(this, session);
     }
-    
+
 
     public void setPs(RoleDAOImpl RoleDAOObj, PSInfo psInfoObj, String methodName) {
         Field RoleDAOField;
         try {
             RoleDAOField = CassDAOImpl.class.getDeclaredField(methodName);
-            
+
             RoleDAOField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(RoleDAOField, RoleDAOField.getModifiers() & ~Modifier.FINAL);
-            
+
             RoleDAOField.set(RoleDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -637,18 +637,18 @@ class RoleDAOImpl extends RoleDAO{
             e.printStackTrace();
         }
     }
-    
+
     public void setSession(RoleDAOImpl approvalDaoObj, Session session) {
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(approvalDaoObj, session);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
index 43496fd..22824fd 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -66,7 +66,7 @@ public class JU_UserRoleDAO {
     Cluster cluster;
     @Mock
     Session session;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         initMocks(this);
@@ -109,13 +109,13 @@ public class JU_UserRoleDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psByUser");
-        
+
         Result<List<UserRoleDAO.Data>>  rs1 = new Result<List<UserRoleDAO.Data>>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "UserRoleDAO READ", new Object[]{"test"});
-        
+
         daoObj.readByUser(trans, "test");
     }
     @Test
@@ -132,13 +132,13 @@ public class JU_UserRoleDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psByRole");
-        
+
         Result<List<UserRoleDAO.Data>>  rs1 = new Result<List<UserRoleDAO.Data>>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "UserRoleDAO READ", new Object[]{"test"});
-        
+
         daoObj.readByRole(trans, "test");
     }
     @Test
@@ -155,28 +155,28 @@ public class JU_UserRoleDAO {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         PSInfo psObj = Mockito.mock(PSInfo.class);
         setPsByStartAndTarget(daoObj, psObj, "psUserInRole");
-        
+
         Result<List<UserRoleDAO.Data>>  rs1 = new Result<List<UserRoleDAO.Data>>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(psObj).read(trans, "UserRoleDAO READ", new Object[]{"test"});
-        
+
         daoObj.readByUserRole(trans, "test","test");
     }
-    
-    
+
+
     public void setPsByStartAndTarget(UserRoleDAO UserRoleDAOObj, PSInfo psInfoObj, String fieldName) {
         Field UserRoleDAOField;
         try {
             UserRoleDAOField = UserRoleDAO.class.getDeclaredField(fieldName);
-            
+
             UserRoleDAOField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(UserRoleDAOField, UserRoleDAOField.getModifiers() & ~Modifier.FINAL);
-            
+
             UserRoleDAOField.set(UserRoleDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -189,7 +189,7 @@ public class JU_UserRoleDAO {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testWasMOdified() {
         TimeTaken tt = Mockito.mock(TimeTaken.class);
@@ -202,15 +202,15 @@ public class JU_UserRoleDAO {
         Mockito.doNothing().when(tt).done();
         UserRoleDAO.Data data  = new UserRoleDAO.Data();
         PSInfo createPS = Mockito.mock(PSInfo.class);
-        
+
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         Result<ResultSet> rs1 = new Result<ResultSet>(null,0,"test",new Object[0]);
         Result<Void> rs2 = new Result<Void>(null,0,"test",new Object[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
-        
+
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
-        
+
         UserRoleDAOImpl daoObj = null;
         try {
             daoObj = new UserRoleDAOImpl(trans, historyDAO, cacheInfoDAO, createPS );
@@ -219,7 +219,7 @@ public class JU_UserRoleDAO {
             e.printStackTrace();
         }
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test"});
-        
+
         daoObj.wasModified(trans, CRUD.update, data, new String[] {});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {null});
         daoObj.wasModified(trans, CRUD.create, data, new String[] {"test",null});
@@ -227,24 +227,24 @@ public class JU_UserRoleDAO {
 
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test","test"});
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {});
-        
+
         rs2 = new Result<Void>(null,1,"test",new Object[0]);
         Mockito.doReturn(rs2).when(cacheInfoDAO).touch(Mockito.any(AuthzTrans.class),Mockito.anyString(), Mockito.anyVararg());
         daoObj.wasModified(trans, CRUD.read, data, new String[] {"test","test"});
         daoObj.wasModified(trans, CRUD.read, data, new String[] {});
-        
+
         rs1 = new Result<ResultSet>(null,1,"test",new String[0]);
         Mockito.doReturn(rs1).when(historyDAO).create(Mockito.any(), Mockito.any());
         daoObj.wasModified(trans, CRUD.delete, data, new String[] {"test","test"});
     }
-    
+
     @Test
     public void testSecondConstructor() {
         HistoryDAO historyDAO = Mockito.mock(HistoryDAO.class);
         CacheInfoDAO cacheInfoDAO = Mockito.mock(CacheInfoDAO.class);
 
         UserRoleDAO daoObj = new UserRoleDAO(trans, historyDAO, cacheInfoDAO);
-        
+
     }
 
     @Test
@@ -257,15 +257,15 @@ public class JU_UserRoleDAO {
                 break;
             }
         }
-        
+
         Constructor<?> constructor = innerClass.getDeclaredConstructors()[0];
         constructor.setAccessible(true);
-        
+
         try {
-            
+
             Object obj = constructor.newInstance(1);
             Method innnerClassMtd;
-                
+
             UserRoleDAO.Data data  = new UserRoleDAO.Data();
             Row row = Mockito.mock(Row.class);
             ByteBuffer bbObj = ByteBuffer.allocateDirect(10);
@@ -274,16 +274,16 @@ public class JU_UserRoleDAO {
             bbObj.put(1, new Byte("1"));
             bbObj.put(2, new Byte("2"));
             Mockito.doReturn(bbObj).when(row).getBytesUnsafe(1);
-            
+
             innnerClassMtd = innerClass.getMethod("load", new Class[] {UserRoleDAO.Data.class, Row.class});
             innnerClassMtd.invoke(obj, new Object[] {data, row});
-            
+
             innnerClassMtd = innerClass.getDeclaredMethod("key", new Class[] {UserRoleDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test"} });
-//            
+//
             innnerClassMtd = innerClass.getDeclaredMethod("body", new Class[] {UserRoleDAO.Data.class, Integer.TYPE, Object[].class });
             innnerClassMtd.invoke(obj, new Object[] {data, 1, new Object[] {"test","test","test","test","test","test","test","test","test","test","test"} });
-            
+
             ByteArrayOutputStream baos = new ByteArrayOutputStream();
             DataOutputStream dos = new DataOutputStream(baos);
             innnerClassMtd = innerClass.getDeclaredMethod("marshal", new Class[] {UserRoleDAO.Data.class, DataOutputStream.class });
@@ -293,7 +293,7 @@ public class JU_UserRoleDAO {
             DataInputStream dis = new DataInputStream(bais);
             innnerClassMtd = innerClass.getDeclaredMethod("unmarshal", new Class[] {UserRoleDAO.Data.class, DataInputStream.class });
             innnerClassMtd.invoke(obj, new Object[] {data, dis });
-            
+
         } catch (InstantiationException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
@@ -312,36 +312,36 @@ public class JU_UserRoleDAO {
         } catch (SecurityException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testData() {
         UserRoleDAO.Data data = new UserRoleDAO.Data();
         NsSplit nss = new NsSplit("test", "test");
         data = new UserRoleDAO.Data();
-        
+
         data.toString();
         data.role("test", "test");
         assertTrue("test".equals(data.ns));
-        
+
         RoleDAO.Data rdd = new RoleDAO.Data();
         rdd.ns="test";
         data.role(rdd);
         assertTrue("test".equals(data.ns));
-        
+
         Question q = Mockito.mock( Question.class);
         Result<NsSplit> rs = new Result<NsSplit>(nss,0,"test",new Object[0]);
         Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test");
-        
+
         data.role(trans, q, "test");
-        
+
         rs = new Result<NsSplit>(nss,1,"test",new Object[0]);
         Mockito.doReturn(rs).when(q).deriveNsSplit(trans, "test");
-        
+
         data.role(trans, q, "test");
     }
-    
+
 }
 
 class UserRoleDAOImpl extends UserRoleDAO{
@@ -349,25 +349,25 @@ class UserRoleDAOImpl extends UserRoleDAO{
         super(trans, historyDAO, cacheDao);
         setPs(this, readPS, "createPS");
     }
-    
+
     public UserRoleDAOImpl(AuthzTrans trans, HistoryDAO historyDAO,CacheInfoDAO cacheDao, PSInfo readPS, Session session  ) throws APIException, IOException {
         super(trans, historyDAO, cacheDao);
         setPs(this, readPS, "createPS");
         setSession(this, session);
     }
-    
+
 
     public void setPs(UserRoleDAOImpl UserRoleDAOObj, PSInfo psInfoObj, String methodName) {
         Field UserRoleDAOField;
         try {
             UserRoleDAOField = CassDAOImpl.class.getDeclaredField(methodName);
-            
+
             UserRoleDAOField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(UserRoleDAOField, UserRoleDAOField.getModifiers() & ~Modifier.FINAL);
-            
+
             UserRoleDAOField.set(UserRoleDAOObj, psInfoObj);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
@@ -380,18 +380,18 @@ class UserRoleDAOImpl extends UserRoleDAO{
             e.printStackTrace();
         }
     }
-    
+
     public void setSession(UserRoleDAOImpl approvalDaoObj, Session session) {
         Field nsDaoField;
         try {
             nsDaoField = AbsCassDAO.class.getDeclaredField("session");
-            
+
             nsDaoField.setAccessible(true);
             // remove final modifier from field
             Field modifiersField = Field.class.getDeclaredField("modifiers");
             modifiersField.setAccessible(true);
 //            modifiersField.setInt(nsDaoField, nsDaoField.getModifiers() & ~Modifier.FINAL);
-            
+
             nsDaoField.set(approvalDaoObj, session);
         } catch (NoSuchFieldException | SecurityException e) {
             // TODO Auto-generated catch block
index 6d02993..8305944 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,24 +43,24 @@ import org.onap.aaf.cadi.Access;
 import org.onap.aaf.cadi.CadiException;
 
 
-@RunWith(MockitoJUnitRunner.class) 
+@RunWith(MockitoJUnitRunner.class)
 public class JU_CassExecutor {
 
-    
-    
+
+
     private static final Object NO_PARAM = new Object[0];
 
     @Mock
     AuthzTransImpl trans;
-    
+
     @Mock
     Question q;
-    
+
     @Mock
     Access access;
-    
+
     Function f;
-    
+
     @Before
     public void setUp() throws Exception {
         initMocks(this);
@@ -74,36 +74,36 @@ public class JU_CassExecutor {
         }
         f =new Function(trans, q);
     }
-    
+
     @Test
     public void testHasPermission() {
-        
+
         CassExecutor cassExecutorObj =new CassExecutor(trans, f);
         Mockito.doReturn(false).when(q).isGranted(trans, "","","","","");
         boolean retVal = cassExecutorObj.hasPermission("", "", "", "", "");
 //        System.out.println(retVal);
         assertFalse(retVal);
-    }    
-    
+    }
+
     @Test
     public void testInRole() {
-        
+
         CassExecutor cassExecutorObj =new CassExecutor(trans, f);
         Result<NsSplit> retVal1 = new Result<NsSplit>(null,1,"",NO_PARAM);
         Mockito.doReturn(retVal1).when(q).deriveNsSplit(trans, "test");
-        
+
         boolean retVal = cassExecutorObj.inRole("test");
 //        System.out.println(retVal);
         assertFalse(retVal);
     }
-    
+
     @Test
     public void testNamespace() {
         f =new Function(trans, q);
         CassExecutor cassExecutorObj =new CassExecutor(trans, f);
         Result<Data> retVal1 = new Result<Data>(null,1,"",NO_PARAM);
         Mockito.doReturn(retVal1).when(q).validNSOfDomain(trans, null);
-        
+
         String retVal="";
         try {
             retVal = cassExecutorObj.namespace();
@@ -114,7 +114,7 @@ public class JU_CassExecutor {
         System.out.println(retVal);
 //        assertFalse(retVal);
     }
-    
+
     @Test
     public void testId() {
         Mockito.doReturn("").when(trans).user();
@@ -122,7 +122,7 @@ public class JU_CassExecutor {
         String retVal = cassExecutorObj.id();
         assertEquals("", retVal);
     }
-    
+
     @Test
     public void testNamespaceSuccess() {
         Mockito.doAnswer(new Answer<Object>() {
@@ -139,8 +139,8 @@ public class JU_CassExecutor {
         CassExecutor cassExecutorObj =new CassExecutor(trans, f);
         Result<Data> retVal1 = new Result<Data>(null,0,"",NO_PARAM);
         Mockito.doReturn(retVal1).when(q).validNSOfDomain(trans, null);
-        
-        
+
+
 //        String retVal="";
         try {
             /*retVal =*/ cassExecutorObj.namespace();
@@ -152,5 +152,5 @@ public class JU_CassExecutor {
 //        System.out.println(retVal);
 //        assertFalse(retVal);
     }
-    
+
 }
\ No newline at end of file
index bfa5838..cb52cf4 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -81,21 +81,21 @@ import org.onap.aaf.misc.env.LogTarget;
 public class JU_Function {
 
     private static final Object NO_PARAM = new Object[0];
-    
+
     @Mock
     AuthzTrans trans;
     @Mock
     PropAccess access;
-    
+
     @Mock
     Question ques;
-    
-    @Mock 
+
+    @Mock
     Organization org;
-    
+
     @Mock
     CachedNSDAO nsDAO;
-    
+
     @Mock
     CachedRoleDAO roleDAO;
 
@@ -131,7 +131,7 @@ public class JU_Function {
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).debug();
         Mockito.doReturn(Mockito.mock(Properties.class)).when(access).getProperties();
         Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
-        
+
         try {
             Define.set(access);
         } catch (CadiException e) {
@@ -154,14 +154,14 @@ public class JU_Function {
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
 
         Result<Void> retVal = new Result<Void>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
         //setQuestion(ques, cachedNS);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void>  result = funcObj.createNS(trans, namespace, true);
         assertTrue(3 == result.status);
     }
-    
+
     @Test
     public void testCreateNsReadSuccess() {
         Namespace namespace = Mockito.mock(Namespace.class);
@@ -172,50 +172,50 @@ public class JU_Function {
         List<String> admin = new ArrayList<String>();
         admin.add("test");
         namespace.admin= admin;
-        
+
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
 
         Result<Void> retVal = new Result<Void>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
+
         Function funcObj = new Function(trans, ques);
         Result<Void>  result = funcObj.createNS(trans, namespace, true);
         assertTrue(3 == result.status);
     }
-    
+
     @Test
     public void testCreateNsFromApprovaFalse() {
         Namespace namespace = Mockito.mock(Namespace.class);
         namespace.name = "test.test";
         List<String> owner = new ArrayList<String>();
         namespace.owner = owner;
-        
+
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(data,1,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal1.value, Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void>  result = funcObj.createNS(trans, namespace, false);
         assertTrue(1 == result.status);
-        
+
         Mockito.doReturn(retVal2).when(ques).deriveNs(trans, "test");
         funcObj = new Function(trans, ques);
         result = funcObj.createNS(trans, namespace, false);
         assertTrue(1 == result.status);
     }
-    
+
     @Test
     public void testCreateNsownerLoop() {
         Namespace namespace = Mockito.mock(Namespace.class);
@@ -223,16 +223,16 @@ public class JU_Function {
         List<String> owner = new ArrayList<String>();
         owner.add("test");
         namespace.owner = owner;
-        
+
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
         Mockito.doReturn(org).when(trans).org();
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void>  result = funcObj.createNS(trans, namespace, true);
         assertTrue(result.status == Status.ERR_Policy);
         assertTrue(result.details.contains("is not a valid user at"));
-        
+
         Identity iden=Mockito.mock(Identity.class);
         try {
             Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
@@ -249,7 +249,7 @@ public class JU_Function {
         result = funcObj.createNS(trans, namespace, true);
         assertTrue(result.status == Status.ERR_Policy);
         assertTrue(result.details.contains("cannot be the owner of the namespace "));
-        
+
         Mockito.doReturn(true).when(org).isTestEnv();
         try {
             Mockito.doReturn("test").when(org).validate(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
@@ -261,7 +261,7 @@ public class JU_Function {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testCreateNsownerLoopException() {
         Namespace namespace = Mockito.mock(Namespace.class);
@@ -269,12 +269,12 @@ public class JU_Function {
         List<String> owner = new ArrayList<String>();
         owner.add("test");
         namespace.owner = owner;
-        
+
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
-        
+
         Function funcObj = new Function(trans, ques);
-        
+
         Identity iden=Mockito.mock(Identity.class);
         try {
             Mockito.doThrow(new OrganizationException()).when(org).getIdentity(trans, "test");
@@ -283,26 +283,26 @@ public class JU_Function {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,1,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
-        
+
         Result<Void> result = funcObj.createNS(trans, namespace, true);
         assertTrue(result.status == Status.ERR_Security);
         assertTrue(result.details.contains("may not create Root Namespaces"));
-        
+
         Mockito.doReturn(true).when(ques).isGranted(Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
         retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, null);
-        
+
         Result<Void> retVal = new Result<Void>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
+
         result = funcObj.createNS(trans, namespace, true);
         assertTrue(24 == result.status);
-        
+
     }
 
     @Test
@@ -313,15 +313,15 @@ public class JU_Function {
         owner.add("test");
         namespace.owner = owner;
         namespace.admin = owner;
-        
+
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
-        
+
         Result<Void> retVal = new Result<Void>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
         Mockito.doReturn(retVal).when(nsDAO).create(Mockito.any(), Mockito.any());
@@ -338,8 +338,8 @@ public class JU_Function {
         }
         dataObj.add(indData);
         Result<List<CredDAO.Data>> retVal2 = new Result<List<CredDAO.Data>>(dataObj,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());
+
         Identity iden=Mockito.mock(Identity.class);
         try {
             Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
@@ -349,16 +349,16 @@ public class JU_Function {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Mockito.doReturn(Result.err(Result.ERR_NotFound, "Not Found")).when(roleDAO).read(trans, "test","test");
         Mockito.doReturn(Result.err(Result.ERR_NotFound, "Not Found")).when(permDAO).readByType(trans, "test","test");
 
         Function funcObj = new Function(trans, ques);
         Result<Void>  result = funcObj.createNS(trans, namespace, true);
         assertTrue(result.status == 1);
-        
+
     }
-    
+
     @Test
     public void testCreateNsAdminLoopCreateSucReadChildrenFailure() {
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
@@ -377,15 +377,15 @@ public class JU_Function {
         owner.add("test");
         namespace.owner = owner;
         namespace.admin = owner;
-        
+
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
-        
+
         Result<Void> retVal = new Result<Void>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
         Mockito.doReturn(retVal).when(nsDAO).create(Mockito.any(), Mockito.any());
@@ -409,34 +409,34 @@ public class JU_Function {
         permsSet.add("test|test");
         indData1.perms = permsSet;
         dataObj1.add(indData1);
-        
+
         List<UserRoleDAO.Data> dataObj4 = new ArrayList<>();
         UserRoleDAO.Data indData4 = new UserRoleDAO.Data();
         indData4.ns = "test";
         indData4.rname = "test";
         dataObj4.add(indData4);
-        
+
         List<PermDAO.Data> dataObj5 = new ArrayList<>();
         PermDAO.Data indData5 = new PermDAO.Data();
         indData5.ns = "test";
         indData5.type = "test";
         dataObj5.add(indData5);
-        
+
         Result<List<CredDAO.Data>> retVal2 = new Result<List<CredDAO.Data>>(dataObj,0,"test",NO_PARAM);
         Result<List<CredDAO.Data>> retVal6 = new Result<List<CredDAO.Data>>(dataObj,1,"test",NO_PARAM);
         Result<List<RoleDAO.Data>> retVal3 = new Result<List<RoleDAO.Data>>(dataObj1,0,"test",NO_PARAM);
         Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(dataObj4,0,"test",NO_PARAM);
         Result<List<PermDAO.Data>> retVal5 = new Result<List<PermDAO.Data>>(dataObj5,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());        
-        Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());    
-        Mockito.doReturn(retVal2).when(userRoleDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal6).when(roleDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal6).when(roleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());    
-        Mockito.doReturn(retVal2).when(permDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal5).when(permDAO).readChildren(trans, "test", "test");    
-        Mockito.doReturn(retVal5).when(permDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());    
-        Mockito.doReturn(retVal3).when(roleDAO).readChildren(trans, "test", "test");    
-        
+        Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());
+        Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+        Mockito.doReturn(retVal2).when(userRoleDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal6).when(roleDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal6).when(roleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
+        Mockito.doReturn(retVal2).when(permDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal5).when(permDAO).readChildren(trans, "test", "test");
+        Mockito.doReturn(retVal5).when(permDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
+        Mockito.doReturn(retVal3).when(roleDAO).readChildren(trans, "test", "test");
+
         Identity iden=Mockito.mock(Identity.class);
         try {
             Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
@@ -447,16 +447,16 @@ public class JU_Function {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Function funcObj = new Function(trans, ques);
         Mockito.doReturn(Result.err(Result.ERR_NotFound, "Not Found")).when(roleDAO).read(trans, "test","test");
         Mockito.doReturn(Result.err(Result.ERR_NotFound, "Not Found")).when(permDAO).readByType(trans, "test","test");
 
         Result<Void>  result = funcObj.createNS(trans, namespace, true);
         assertTrue(result.status == Status.ERR_ActionNotCompleted);
-        
+
     }
-    
+
     @Test
     public void testCreateNsAdminLoopCreateSuc() {
         Namespace namespace = Mockito.mock(Namespace.class);
@@ -465,15 +465,15 @@ public class JU_Function {
         owner.add("test");
         namespace.owner = owner;
         namespace.admin = owner;
-        
+
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
-        
+
         Result<Void> retVal = new Result<Void>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
         Mockito.doReturn(retVal).when(nsDAO).create(Mockito.any(), Mockito.any());
@@ -497,13 +497,13 @@ public class JU_Function {
         permsSet.add("test|test|test|test");
         indData1.perms = permsSet;
         dataObj1.add(indData1);
-        
+
         List<UserRoleDAO.Data> dataObj4 = new ArrayList<>();
         UserRoleDAO.Data indData4 = new UserRoleDAO.Data();
         indData4.ns = "test";
         indData4.rname = "test";
         dataObj4.add(indData4);
-        
+
         List<PermDAO.Data> dataObj5 = new ArrayList<>();
         PermDAO.Data indData5 = new PermDAO.Data();
         indData5.ns = "test";
@@ -512,21 +512,21 @@ public class JU_Function {
         rolesSet.add("test|test|test|test");
         indData5.roles = rolesSet;
         dataObj5.add(indData5);
-        
+
         Result<List<CredDAO.Data>> retVal2 = new Result<List<CredDAO.Data>>(dataObj,0,"test",NO_PARAM);
         Result<List<RoleDAO.Data>> retVal3 = new Result<List<RoleDAO.Data>>(dataObj1,0,"test",NO_PARAM);
         Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(dataObj4,0,"test",NO_PARAM);
         Result<List<PermDAO.Data>> retVal5 = new Result<List<PermDAO.Data>>(dataObj5,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());        
-        Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());    
-        Mockito.doReturn(retVal2).when(userRoleDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal2).when(roleDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal2).when(roleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());    
-        Mockito.doReturn(retVal2).when(permDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal5).when(permDAO).readChildren(trans, "test", "test");    
-        Mockito.doReturn(retVal5).when(permDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());    
-        Mockito.doReturn(retVal3).when(roleDAO).readChildren(trans, "test", "test");    
-        
+        Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());
+        Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+        Mockito.doReturn(retVal2).when(userRoleDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal2).when(roleDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal2).when(roleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
+        Mockito.doReturn(retVal2).when(permDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal5).when(permDAO).readChildren(trans, "test", "test");
+        Mockito.doReturn(retVal5).when(permDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
+        Mockito.doReturn(retVal3).when(roleDAO).readChildren(trans, "test", "test");
+
         Identity iden=Mockito.mock(Identity.class);
         try {
             Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
@@ -537,27 +537,27 @@ public class JU_Function {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         Mockito.doReturn(Result.err(Result.ERR_NotFound, "Not Found")).when(roleDAO).read(trans, "test","test");
         Mockito.doReturn(Result.err(Result.ERR_NotFound, "Not Found")).when(permDAO).readByType(trans, "test","test");
 
         Function funcObj = new Function(trans, ques);
         Result<Void>  result = funcObj.createNS(trans, namespace, true);
         assertTrue(result.status == 0);
-        
+
     }
-    
+
     @Test
     public void test4DeleteNs() {
         Result<Void> retVal = new Result<Void>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.deleteNS(trans, "test");
-        
+
         assertTrue(result.status == Status.ERR_NsNotFound);
     }
-    
+
     @Test
     public void test4DeleteCanMoveFail() {
         List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
@@ -565,17 +565,17 @@ public class JU_Function {
         dataObj.type=1;
         dataAl.add(dataObj);
         Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
+
         Mockito.doReturn(false).when(ques).canMove(Mockito.any());
         Mockito.doReturn(retVal).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.deleteNS(trans, "test");
         assertTrue(result.status == Status.ERR_Security);
-        
+
     }
-    
+
     @Test
     public void test4DeleteNsReadSuc() {
         List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
@@ -583,17 +583,17 @@ public class JU_Function {
         dataObj.type=1;
         dataAl.add(dataObj);
         Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
+
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.deleteNS(trans, "test");
         assertTrue(result.status == 1);
-        
+
     }
-    
+
     @Test
     public void test4DeleteNsMayUserSuc() {
         List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
@@ -601,22 +601,22 @@ public class JU_Function {
         dataObj.type=1;
         dataAl.add(dataObj);
         Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
+
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.deleteNS(trans, "test");
         assertTrue(result.status == 1);
 
         Mockito.doReturn(true).when(ques).isGranted(Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
 
-        Mockito.doReturn(retVal2).when(credDAO).readNS(Mockito.any(), Mockito.anyString());        
+        Mockito.doReturn(retVal2).when(credDAO).readNS(Mockito.any(), Mockito.anyString());
 
         Result<List<PermDAO.Data>> retVal5 = new Result<List<PermDAO.Data>>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal5).when(permDAO).readNS(trans, "test");
-        
+
         List<UserRoleDAO.Data> dataObj4 = new ArrayList<>();
         UserRoleDAO.Data indData4 = new UserRoleDAO.Data();
         indData4.ns = "test";
@@ -624,7 +624,7 @@ public class JU_Function {
         dataObj4.add(indData4);
         Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(dataObj4,0,"test",NO_PARAM);
         Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(trans, "test");
-        
+
         List<RoleDAO.Data> dataObj1 = new ArrayList<>();
         RoleDAO.Data indData1 = new RoleDAO.Data();
         indData1.ns = "test";
@@ -634,15 +634,15 @@ public class JU_Function {
         indData1.perms = permsSet;
         dataObj1.add(indData1);
         Result<List<RoleDAO.Data>> retVal3 = new Result<List<RoleDAO.Data>>(dataObj1,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test");    
+        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test");
         Mockito.doReturn(retVal3).when(roleDAO).read(trans, indData1);
-        
+
         funcObj = new Function(trans, ques);
         result = funcObj.deleteNS(trans, "test");
         assertTrue(result.status == Status.ERR_DependencyExists);
-        
-        Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());    
-        
+
+        Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+
         Mockito.doReturn(true).when(trans).requested(REQD_TYPE.force);
         funcObj = new Function(trans, ques);
         result = funcObj.deleteNS(trans, "test");
@@ -655,18 +655,18 @@ public class JU_Function {
         dataObj.type=1;
         dataAl.add(dataObj);
         Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
+
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.deleteNS(trans, "test");
         assertTrue(result.status == 1);
 
         Mockito.doReturn(true).when(ques).isGranted(Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
 
-        Mockito.doReturn(retVal2).when(credDAO).readNS(Mockito.any(), Mockito.anyString());        
+        Mockito.doReturn(retVal2).when(credDAO).readNS(Mockito.any(), Mockito.anyString());
 
         List<PermDAO.Data> dataObj5 = new ArrayList<>();
         PermDAO.Data indData5 = new PermDAO.Data();
@@ -677,8 +677,8 @@ public class JU_Function {
         Mockito.doReturn(retVal5).when(permDAO).readNS(trans, "test");
         Mockito.doReturn(retVal5).when(permDAO).readNS(trans, "test.test");
         Mockito.doReturn(retVal5).when(permDAO).read(trans, indData5);
-        
-        
+
+
         List<RoleDAO.Data> dataObj1 = new ArrayList<>();
         RoleDAO.Data indData1 = new RoleDAO.Data();
         indData1.ns = "test";
@@ -688,19 +688,19 @@ public class JU_Function {
         indData1.perms = permsSet;
         dataObj1.add(indData1);
         Result<List<RoleDAO.Data>> retVal3 = new Result<List<RoleDAO.Data>>(dataObj1,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test");    
-        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test.test");    
+        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test");
+        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test.test");
         Mockito.doReturn(retVal3).when(roleDAO).read(trans, indData1);
-        
+
         funcObj = new Function(trans, ques);
         result = funcObj.deleteNS(trans, "test");
         assertTrue(result.status == Status.ERR_DependencyExists);
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,1,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
-        
+
         Mockito.doReturn(true).when(trans).requested(REQD_TYPE.force);
         funcObj = new Function(trans, ques);
         result = funcObj.deleteNS(trans, "test.test");
@@ -714,8 +714,8 @@ public class JU_Function {
         dataObj.type=1;
         dataAl.add(dataObj);
         Result<List<NsDAO.Data>> retVal = new Result<List<NsDAO.Data>>(dataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(nsDAO).read(Mockito.any(), Mockito.anyString());
+
         List<CredDAO.Data> nsDataList = new ArrayList<CredDAO.Data>();
         CredDAO.Data nsData = new CredDAO.Data();
         nsData.id="test";
@@ -723,15 +723,15 @@ public class JU_Function {
         Result<List<CredDAO.Data>> retVal21 = new Result<List<CredDAO.Data>>(nsDataList,0,"test",NO_PARAM);
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.deleteNS(trans, "test");
         assertTrue(result.status == 1);
 
         Mockito.doReturn(true).when(ques).isGranted(Mockito.any(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyString());
 
-        Mockito.doReturn(retVal21).when(credDAO).readNS(Mockito.any(), Mockito.anyString());    
-        Mockito.doReturn(retVal21).when(credDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());        
+        Mockito.doReturn(retVal21).when(credDAO).readNS(Mockito.any(), Mockito.anyString());
+        Mockito.doReturn(retVal21).when(credDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
 
         List<PermDAO.Data> dataObj5 = new ArrayList<>();
         PermDAO.Data indData5 = new PermDAO.Data();
@@ -742,7 +742,7 @@ public class JU_Function {
         Mockito.doReturn(retVal5).when(permDAO).readNS(trans, "test");
         Mockito.doReturn(retVal5).when(permDAO).readNS(trans, "test.test");
         Mockito.doReturn(retVal5).when(permDAO).read(trans, indData5);
-        
+
         List<UserRoleDAO.Data> dataObj4 = new ArrayList<>();
         UserRoleDAO.Data indData4 = new UserRoleDAO.Data();
         indData4.ns = "test";
@@ -751,7 +751,7 @@ public class JU_Function {
         Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(dataObj4,0,"test",NO_PARAM);
         Mockito.doReturn(retVal4).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
         Mockito.doReturn(retVal4).when(userRoleDAO).readByUser(Mockito.any(), Mockito.anyString());
-        
+
         List<RoleDAO.Data> dataObj1 = new ArrayList<>();
         RoleDAO.Data indData1 = new RoleDAO.Data();
         indData1.ns = "test";
@@ -761,25 +761,25 @@ public class JU_Function {
         indData1.perms = permsSet;
         dataObj1.add(indData1);
         Result<List<RoleDAO.Data>> retVal3 = new Result<List<RoleDAO.Data>>(dataObj1,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test");    
-        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test.test");    
+        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test");
+        Mockito.doReturn(retVal3).when(roleDAO).readNS(trans, "test.test");
         Mockito.doReturn(retVal3).when(roleDAO).read(trans, indData1);
-        
+
         funcObj = new Function(trans, ques);
         result = funcObj.deleteNS(trans, "test");
         assertTrue(result.status == Status.ERR_DependencyExists);
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
-        
+
         Mockito.doReturn(true).when(trans).requested(REQD_TYPE.force);
         funcObj = new Function(trans, ques);
         result = funcObj.deleteNS(trans, "test.test");
         assertNull(result);
     }
-    
+
     @Test
     public void testGetOwners() {
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
@@ -787,49 +787,49 @@ public class JU_Function {
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
-//        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+//
 //        Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
 //        Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-//        
+//
         Function funcObj = new Function(trans, ques);
         Result<List<String>> result = funcObj.getOwners(trans, "test", false);
         assertTrue(result.status == 1);
-//        
+//
     }
-    
+
     @Test
     public void testDelOwner() {
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());    
-        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));    
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));
 
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
-        
+
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(data,1,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal1.value, Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.delOwner(trans, "test", "test");
         assertTrue(result.status == 1);
-        
+
         retVal1 = new Result<NsDAO.Data>(data,1,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
         result = funcObj.delOwner(trans, "test", "test");
         assertTrue(result.status == 1);
-        
+
         retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
         result = funcObj.delOwner(trans, "test", "test");
         retVal2 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal1.value, Access.write);
         result = funcObj.delOwner(trans, "test", "test");
-//        
+//
     }
-    
+
     @Test
     public void testGetAdmins() {
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
@@ -837,49 +837,49 @@ public class JU_Function {
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
-//        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+//
 //        Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
 //        Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-//        
+//
         Function funcObj = new Function(trans, ques);
         Result<List<String>> result = funcObj.getAdmins(trans, "test", false);
         assertTrue(result.status == 1);
-//        
+//
     }
-    
+
     @Test
     public void testDelAdmin() {
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readUserInRole(Mockito.any(), Mockito.anyString(), Mockito.anyString());    
-        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));    
+        Mockito.doReturn(retVal).when(userRoleDAO).readUserInRole(Mockito.any(), Mockito.anyString(), Mockito.anyString());
+        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));
 
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
-        
+
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(data,1,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal1.value, Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.delAdmin(trans, "test", "test");
         assertTrue(result.status == 1);
-        
+
         retVal1 = new Result<NsDAO.Data>(data,1,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
         result = funcObj.delAdmin(trans, "test", "test");
         assertTrue(result.status == 1);
-        
+
         retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal1).when(ques).deriveNs(trans, "test");
         result = funcObj.delOwner(trans, "test", "test");
         retVal2 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal1.value, Access.write);
         result = funcObj.delAdmin(trans, "test", "test");
-//        
+//
     }
-    
+
     @Test
     public void testMovePerms() {
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
@@ -887,19 +887,19 @@ public class JU_Function {
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
-        
-        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(), Mockito.any());    
-        
-        Mockito.doReturn(retVal).when(permDAO).create(Mockito.any(), Mockito.any());    
-        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+
+        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(), Mockito.any());
+
+        Mockito.doReturn(retVal).when(permDAO).create(Mockito.any(), Mockito.any());
+
         NsDAO.Data nsDataObj = new NsDAO.Data();
         nsDataObj.name="test";
         StringBuilder sb = new StringBuilder();
         Result<List<PermDAO.Data>> retVal1 = new Result<List<PermDAO.Data>>(null,1,"test",NO_PARAM);
-        
+
         invokeMovePerms(nsDataObj, sb, retVal1);
-        
+
         List<PermDAO.Data> dataObj5 = new ArrayList<>();
         PermDAO.Data indData5 = new PermDAO.Data();
         indData5.ns = "test";
@@ -915,25 +915,25 @@ public class JU_Function {
         retVal1 = new Result<List<PermDAO.Data>>(dataObj5,0,"test",NO_PARAM);
 
         Result<List<UserRoleDAO.Data>> retVal3 = new Result<List<UserRoleDAO.Data>>(null,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal3).when(permDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal3).when(permDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());    
+        Mockito.doReturn(retVal3).when(permDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal3).when(permDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
 
         NsSplit splitObj = new NsSplit("test", "test");
         Result<NsSplit> retVal2 = new Result<NsSplit>(splitObj,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).deriveNsSplit(Mockito.any(), Mockito.anyString());
-        
+
         invokeMovePerms(nsDataObj, sb, retVal1);
-        
+
         Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal4).when(permDAO).create(Mockito.any(), Mockito.any());    
+        Mockito.doReturn(retVal4).when(permDAO).create(Mockito.any(), Mockito.any());
         invokeMovePerms(nsDataObj, sb, retVal1);
-        
-        Mockito.doReturn(retVal3).when(permDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal4).when(permDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());    
+
+        Mockito.doReturn(retVal3).when(permDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal4).when(permDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
         invokeMovePerms(nsDataObj, sb, retVal1);
-        
+
     }
-    
+
     private void invokeMovePerms(NsDAO.Data nsDataObj, StringBuilder sb,Result<List<PermDAO.Data>> retVal1) {
         Function funcObj = new Function(trans, ques);
         Method met;
@@ -955,7 +955,7 @@ public class JU_Function {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testMoveRoles() {
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
@@ -963,19 +963,19 @@ public class JU_Function {
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
-        
-        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(), Mockito.any());    
-        
-        Mockito.doReturn(retVal).when(roleDAO).create(Mockito.any(), Mockito.any());    
-        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+
+        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(), Mockito.any());
+
+        Mockito.doReturn(retVal).when(roleDAO).create(Mockito.any(), Mockito.any());
+
         NsDAO.Data nsDataObj = new NsDAO.Data();
         nsDataObj.name="test";
         StringBuilder sb = new StringBuilder();
         Result<List<RoleDAO.Data>> retVal1 = new Result<List<RoleDAO.Data>>(null,1,"test",NO_PARAM);
-        
+
         invokeMoveRoles(nsDataObj, sb, retVal1);
-        
+
         List<RoleDAO.Data> dataObj5 = new ArrayList<>();
         RoleDAO.Data indData5 = new RoleDAO.Data();
         indData5.ns = "test";
@@ -989,27 +989,27 @@ public class JU_Function {
         indData5.name = "admin";
         dataObj5.add(indData5);
         retVal1 = new Result<List<RoleDAO.Data>>(dataObj5,0,"test",NO_PARAM);
-        
+
         Result<List<UserRoleDAO.Data>> retVal3 = new Result<List<UserRoleDAO.Data>>(null,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal3).when(roleDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal3).when(roleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());    
+        Mockito.doReturn(retVal3).when(roleDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal3).when(roleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
 
         NsSplit splitObj = new NsSplit("test", "test");
         Result<NsSplit> retVal2 = new Result<NsSplit>(splitObj,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).deriveNsSplit(Mockito.any(), Mockito.anyString());
-        
+
         invokeMoveRoles(nsDataObj, sb, retVal1);
-        
+
         Result<List<UserRoleDAO.Data>> retVal4 = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal4).when(roleDAO).create(Mockito.any(), Mockito.any());    
+        Mockito.doReturn(retVal4).when(roleDAO).create(Mockito.any(), Mockito.any());
         invokeMoveRoles(nsDataObj, sb, retVal1);
-        
-        Mockito.doReturn(retVal3).when(roleDAO).create(Mockito.any(), Mockito.any());    
-        Mockito.doReturn(retVal4).when(roleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());    
+
+        Mockito.doReturn(retVal3).when(roleDAO).create(Mockito.any(), Mockito.any());
+        Mockito.doReturn(retVal4).when(roleDAO).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
         invokeMoveRoles(nsDataObj, sb, retVal1);
-        
+
     }
-    
+
     private void invokeMoveRoles(NsDAO.Data nsDataObj, StringBuilder sb,Result<List<RoleDAO.Data>> retVal1) {
         Function funcObj = new Function(trans, ques);
         Method met;
@@ -1031,7 +1031,7 @@ public class JU_Function {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testCreatePerm() {
         try {
@@ -1049,20 +1049,20 @@ public class JU_Function {
         dataAl.add(perm);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal).when(ques).deriveNsSplit(Mockito.any(), Mockito.anyString());
-        
-        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));    
-        Mockito.doReturn(retVal).when(userRoleDAO).create(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));        
-        
+
+        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));
+        Mockito.doReturn(retVal).when(userRoleDAO).create(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));
+
         Mockito.doReturn(retVal).when(permDAO).create(Mockito.any(), Mockito.any());
-        Mockito.doReturn(retVal).when(permDAO).read(trans, perm);        
-        
+        Mockito.doReturn(retVal).when(permDAO).read(trans, perm);
+
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,perm, Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.createPerm(trans, perm, false);
         assertTrue(result.status == 1);
-        
+
         retVal2 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,perm, Access.write);
         result = funcObj.createPerm(trans, perm, false);
@@ -1077,21 +1077,21 @@ public class JU_Function {
         Result<List<RoleDAO.Data>> retVal4 = Result.err(Result.ERR_NotFound,"");
         Mockito.doReturn(retVal4).when(roleDAO).create(Mockito.any(),Mockito.any(RoleDAO.Data.class));
         result = funcObj.createPerm(trans, perm, false);
-        
-        Mockito.doReturn(retVal).when(permDAO).read(trans, perm);    
+
+        Mockito.doReturn(retVal).when(permDAO).read(trans, perm);
         result = funcObj.createPerm(trans, perm, true);
         assertTrue(result.status == 1);
 
         Mockito.doReturn(retVal2).when(permDAO).create(Mockito.any(), Mockito.any());
         result = funcObj.createPerm(trans, perm, true);
         assertTrue(result.status == 0);
-        
+
         Mockito.doReturn(false).when(trans).requested(REQD_TYPE.force);
         Result<List<PermDAO.Data>> retVal1 = new Result<List<PermDAO.Data>>(dataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal1).when(permDAO).read(trans, perm);    
+        Mockito.doReturn(retVal1).when(permDAO).read(trans, perm);
         result = funcObj.createPerm(trans, perm, true);
         assertTrue(result.status == Status.ERR_ConflictAlreadyExists);
-        
+
     }
     @Test
     public void testDeletePerm() {
@@ -1108,24 +1108,24 @@ public class JU_Function {
         perm.roles = rolesSet;
 //        perm.type=1
         dataAl.add(perm);
-        
+
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,perm, Access.write);
-        
+
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
 //        NsDAO.Data dataObj = new NsDAO.Data();
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<PermDAO.Data>> retVal = new Result<List<PermDAO.Data>>(dataAl,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.deletePerm(trans, perm, true,false);
         assertTrue(result.status == 1);
 
 //        Mockito.doReturn(retVal).when(cachedPermDAO).create(Mockito.any(), Mockito.any());
-        Mockito.doReturn(retVal).when(permDAO).read(trans, perm);        
-        
+        Mockito.doReturn(retVal).when(permDAO).read(trans, perm);
+
         result = funcObj.deletePerm(trans, perm, true,true);
         assertTrue(result.status == Status.ERR_PermissionNotFound);
 
@@ -1133,24 +1133,24 @@ public class JU_Function {
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,perm, Access.write);
         Result<List<PermDAO.Data>> retVal3 = new Result<List<PermDAO.Data>>(dataAl,0,"test",NO_PARAM);
         Mockito.doReturn(retVal3).when(permDAO).read(trans, perm);
-        
+
         NsSplit nsObj = new NsSplit("test","test");
         Result<NsSplit> retValNs = new Result<NsSplit>(nsObj,0,"test",NO_PARAM);
         Mockito.doReturn(retValNs).when(ques).deriveNsSplit(Mockito.any(), Mockito.anyString());
-        
-        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(), Mockito.any());    
-        
+
+        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(), Mockito.any());
+
         result = funcObj.deletePerm(trans, perm, true,false);
-        assertNull(result);    
-        
-        Mockito.doReturn(retVal2).when(roleDAO).delPerm(Mockito.any(), Mockito.any(), Mockito.any());    
+        assertNull(result);
+
+        Mockito.doReturn(retVal2).when(roleDAO).delPerm(Mockito.any(), Mockito.any(), Mockito.any());
         result = funcObj.deletePerm(trans, perm, true,false);
-        assertNull(result);    
-        
+        assertNull(result);
+
         result = funcObj.deletePerm(trans, perm, false,false);
 //        assertTrue(result.status == 1);
     }
-    
+
     @Test
     public void testDeleteRole() {
         try {
@@ -1167,7 +1167,7 @@ public class JU_Function {
 //        perm.roles = rolesSet;
 //        perm.type=1
         dataAlUser.add(roleUser);
-        
+
         List<RoleDAO.Data> dataAl = new ArrayList<RoleDAO.Data>();
         RoleDAO.Data role = new RoleDAO.Data();
         Set<String> rolesSet = new HashSet<>();
@@ -1176,48 +1176,48 @@ public class JU_Function {
 //        perm.roles = rolesSet;
 //        perm.type=1
         dataAl.add(role);
-        
+
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,role, Access.write);
-        
+
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
 //        NsDAO.Data dataObj = new NsDAO.Data();
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
-//        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+//
 //        Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
 //        Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-//        
+//
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.deleteRole(trans, role, true, false);
         assertTrue(result.status == 1);
 
         Result<List<RoleDAO.Data>> retVal1 = new Result<List<RoleDAO.Data>>(dataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal1).when(roleDAO).read(Mockito.any(), Mockito.any(RoleDAO.Data.class));    
+        Mockito.doReturn(retVal1).when(roleDAO).read(Mockito.any(), Mockito.any(RoleDAO.Data.class));
         NsSplit splitObj = new NsSplit("test", "test");
         Result<NsSplit> retVal3 = new Result<NsSplit>(splitObj,0,"test",NO_PARAM);
         Mockito.doReturn(retVal3).when(ques).deriveNsSplit(Mockito.any(), Mockito.anyString());
 //        Mockito.doReturn(retVal).when(cachedPermDAO).create(Mockito.any(), Mockito.any());
-        Mockito.doReturn(retVal).when(permDAO).delRole(Mockito.any(), Mockito.any(),Mockito.any());        
+        Mockito.doReturn(retVal).when(permDAO).delRole(Mockito.any(), Mockito.any(),Mockito.any());
         result = funcObj.deleteRole(trans, role, true, true);
         assertNull(result);
-        
+
         Mockito.doReturn(retVal1).when(permDAO).delRole(Mockito.any(), Mockito.any(),Mockito.any());
         result = funcObj.deleteRole(trans, role, true, true);
         assertNull(result);
 
-        Mockito.doReturn(retVal).when(roleDAO).read(Mockito.any(), Mockito.any(RoleDAO.Data.class));    
+        Mockito.doReturn(retVal).when(roleDAO).read(Mockito.any(), Mockito.any(RoleDAO.Data.class));
         result = funcObj.deleteRole(trans, role, true, true);
         assertTrue(result.status == Status.ERR_RoleNotFound);
-        
+
         retVal = new Result<List<UserRoleDAO.Data>>(dataAlUser,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());    
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
         result = funcObj.deleteRole(trans, role, false, true);
         assertTrue(result.status == Status.ERR_DependencyExists);
     }
-    
+
     @Test
     public void testAddPermToRole() {
         List<PermDAO.Data> dataAlPerm = new ArrayList<PermDAO.Data>();
@@ -1227,7 +1227,7 @@ public class JU_Function {
 //        perm.roles = rolesSet;
 //        perm.type=1
         dataAlPerm.add(rolePerm);
-        
+
         List<RoleDAO.Data> dataAl = new ArrayList<RoleDAO.Data>();
         RoleDAO.Data role = new RoleDAO.Data();
         Set<String> rolesSet = new HashSet<>();
@@ -1236,27 +1236,27 @@ public class JU_Function {
 //        perm.roles = rolesSet;
 //        perm.type=1
         dataAl.add(role);
-        
+
         NsDAO.Data nsObj = new NsDAO.Data();
         nsObj.name="test";
         NsDAO.Data nsObj1 = new NsDAO.Data();
         nsObj1.name="test12";
-        
+
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
 //        NsDAO.Data dataObj = new NsDAO.Data();
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
 
         Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(nsObj,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).deriveFirstNsForType(trans, role.ns, NsType.COMPANY);
         Mockito.doReturn(retVal2).when(ques).deriveFirstNsForType(trans, rolePerm.ns, NsType.COMPANY);
-        
+
         Result<NsDAO.Data> retVal3 = new Result<NsDAO.Data>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal3).when(ques).mayUser(trans, null,rolePerm, Access.write);
         Mockito.doReturn(retVal3).when(ques).mayUser(trans, null,role, Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.addPermToRole(trans, role, rolePerm, false);
         assertTrue(result.status == 1);
@@ -1266,62 +1266,62 @@ public class JU_Function {
         Mockito.doReturn(retVal2).when(ques).deriveFirstNsForType(trans, rolePerm.ns, NsType.COMPANY);
         result = funcObj.addPermToRole(trans, role, rolePerm, false);
         assertTrue(result.status == 1);
-        
+
         role.ns="test2";
         retVal2 = new Result<NsDAO.Data>(nsObj,0,"test",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).deriveFirstNsForType(trans, role.ns, NsType.COMPANY);
         result = funcObj.addPermToRole(trans, role, rolePerm, false);
         assertTrue(result.status == 1);
-        
+
         retVal2 = new Result<NsDAO.Data>(nsObj,0,"test1",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).deriveFirstNsForType(trans, role.ns, NsType.COMPANY);
         Result<NsDAO.Data> retVal21 = new Result<NsDAO.Data>(nsObj1,0,"test1",NO_PARAM);
         Mockito.doReturn(retVal21).when(ques).deriveFirstNsForType(trans, rolePerm.ns, NsType.COMPANY);
         result = funcObj.addPermToRole(trans, role, rolePerm, false);
         assertTrue(result.status == 1);
-        
+
         retVal3 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal3).when(ques).mayUser(trans, null,rolePerm, Access.write);
         retVal2 = new Result<NsDAO.Data>(nsObj,0,"test1",NO_PARAM);
         Mockito.doReturn(retVal2).when(ques).deriveFirstNsForType(trans, role.ns, NsType.COMPANY);
         Mockito.doReturn(retVal2).when(ques).deriveFirstNsForType(trans, rolePerm.ns, NsType.COMPANY);
-        
+
 //        Mockito.doReturn(retVal).when(cachedPermDAO).create(Mockito.any(), Mockito.any());
-        Mockito.doReturn(retVal).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));        
-        
+        Mockito.doReturn(retVal).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));
+
         result = funcObj.addPermToRole(trans, role, rolePerm, false);
         assertTrue(result.status == Status.ERR_PermissionNotFound);
-        
+
         Result<List<PermDAO.Data>> retValPerm= new Result<List<PermDAO.Data>>(dataAlPerm,0,"test1",NO_PARAM);
-        Mockito.doReturn(retValPerm).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));    
-        
+        Mockito.doReturn(retValPerm).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));
+
         Mockito.doReturn(retVal3).when(roleDAO).read(trans, role);
-        
+
         result = funcObj.addPermToRole(trans, role, rolePerm, true);
         assertTrue(result.status == 22);
 
         Mockito.doReturn(true).when(trans).requested(REQD_TYPE.force);
         result = funcObj.addPermToRole(trans, role, rolePerm, true);
         assertTrue(result.status == 2);
-        
+
         retVal3 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retVal3).when(ques).mayUser(trans, null,role, Access.write);
         Mockito.doReturn(retVal3).when(roleDAO).create(trans, role);
         result = funcObj.addPermToRole(trans, role, rolePerm, true);
 //        System.out.println(result.status);
         assertNull(result);
-        
+
         retVal3 = new Result<NsDAO.Data>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal3).when(roleDAO).create(trans, role);
         result = funcObj.addPermToRole(trans, role, rolePerm, true);
         assertTrue(result.status == 1);
-        
+
         Result<List<RoleDAO.Data>> retVal31 = new Result<List<RoleDAO.Data>>(dataAl,0,"test",NO_PARAM);
         Mockito.doReturn(retVal31).when(roleDAO).read(trans, role);
         result = funcObj.addPermToRole(trans, role, rolePerm, true);
         assertTrue(result.status == 7);
     }
-    
+
     @Test
     public void testDelPermFromRole() {
         List<PermDAO.Data> dataAlPerm = new ArrayList<PermDAO.Data>();
@@ -1331,78 +1331,78 @@ public class JU_Function {
 //        perm.roles = rolesSet;
 //        perm.type=1
         dataAlPerm.add(rolePerm);
-        
+
         List<RoleDAO.Data> dataAl = new ArrayList<RoleDAO.Data>();
         RoleDAO.Data role = new RoleDAO.Data();
         Set<String> rolesSet = new HashSet<>();
         rolesSet.add("17623");
         role.perms = rolesSet;
         dataAl.add(role);
-        
+
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
 //        NsDAO.Data dataObj = new NsDAO.Data();
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
 
         Result<NsDAO.Data> retValFail = new Result<NsDAO.Data>(null,1,"test",NO_PARAM);
         Result<NsDAO.Data> retValSuc = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
         Mockito.doReturn(retValFail).when(ques).mayUser(trans, null,rolePerm, Access.write);
         Mockito.doReturn(retValFail).when(ques).mayUser(trans, null,role, Access.write);
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.delPermFromRole(trans, role, rolePerm, false);
         assertTrue(result.status == Status.ERR_Denied);
-        
+
         Mockito.doReturn(retValFail).when(ques).mayUser(trans, null,rolePerm, Access.write);
-        Mockito.doReturn(retValSuc).when(ques).mayUser(trans, null,role, Access.write);        
-        
+        Mockito.doReturn(retValSuc).when(ques).mayUser(trans, null,role, Access.write);
+
         Mockito.doReturn(retValFail).when(roleDAO).read(trans, role);
-        
-        Mockito.doReturn(retVal).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));        
-        
+
+        Mockito.doReturn(retVal).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));
+
         result = funcObj.delPermFromRole(trans, role, rolePerm, false);
         assertTrue(result.status == 1);
-        
+
         Result<List<PermDAO.Data>> retValPermSuc = new Result<List<PermDAO.Data>>(dataAlPerm,0,"test",NO_PARAM);
-        Mockito.doReturn(retValPermSuc).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));    
+        Mockito.doReturn(retValPermSuc).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));
         result = funcObj.delPermFromRole(trans, role, rolePerm, false);
         assertTrue(result.status == 1);
-        
+
         Result<List<RoleDAO.Data>> retValRoleSuc = new Result<List<RoleDAO.Data>>(dataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retValRoleSuc).when(roleDAO).read(Mockito.any(), Mockito.any(RoleDAO.Data.class));    
+        Mockito.doReturn(retValRoleSuc).when(roleDAO).read(Mockito.any(), Mockito.any(RoleDAO.Data.class));
         result = funcObj.delPermFromRole(trans, role, rolePerm, true);
         assertTrue(result.status == Status.ERR_PermissionNotFound);
-        
+
         role.perms = null;
         dataAl.add(role);
         rolesSet.add("null|null|null|null");
         role.perms = rolesSet;
         dataAl.add(role);
-        Mockito.doReturn(retValRoleSuc).when(roleDAO).read(Mockito.any(), Mockito.any(RoleDAO.Data.class));    
-        Mockito.doReturn(retVal).when(permDAO).delRole(Mockito.any(), Mockito.any(),Mockito.any(RoleDAO.Data.class));    
+        Mockito.doReturn(retValRoleSuc).when(roleDAO).read(Mockito.any(), Mockito.any(RoleDAO.Data.class));
+        Mockito.doReturn(retVal).when(permDAO).delRole(Mockito.any(), Mockito.any(),Mockito.any(RoleDAO.Data.class));
         result = funcObj.delPermFromRole(trans, role, rolePerm, true);
         assertTrue(result.status == 1);
-        
-        Mockito.doReturn(true).when(trans).requested(REQD_TYPE.force);    
+
+        Mockito.doReturn(true).when(trans).requested(REQD_TYPE.force);
         result = funcObj.delPermFromRole(trans, role, rolePerm, true);
         assertTrue(result.status == 1);
-        
+
         Mockito.doReturn(retValRoleSuc).when(permDAO).delRole(Mockito.any(), Mockito.any(),Mockito.any(RoleDAO.Data.class));
-        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(),Mockito.any(PermDAO.Data.class));        
+        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(),Mockito.any(PermDAO.Data.class));
         result = funcObj.delPermFromRole(trans, role, rolePerm, true);
         assertTrue(result.status == 1);
-        
-        Mockito.doReturn(retValPermSuc).when(roleDAO).delPerm(Mockito.any(), Mockito.any(),Mockito.any(PermDAO.Data.class));        
+
+        Mockito.doReturn(retValPermSuc).when(roleDAO).delPerm(Mockito.any(), Mockito.any(),Mockito.any(PermDAO.Data.class));
         result = funcObj.delPermFromRole(trans, role, rolePerm, true);
         assertTrue(result.status == 0);
-        
+
         Mockito.doReturn(retVal).when(permDAO).read(Mockito.any(), Mockito.any(PermDAO.Data.class));
         result = funcObj.delPermFromRole(trans, role, rolePerm, true);
         assertTrue(result.status == 0);
-        
-        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(),Mockito.any(PermDAO.Data.class));    
+
+        Mockito.doReturn(retVal).when(roleDAO).delPerm(Mockito.any(), Mockito.any(),Mockito.any(PermDAO.Data.class));
         result = funcObj.delPermFromRole(trans, role, rolePerm, true);
         assertTrue(result.status == 1);
 
@@ -1413,7 +1413,7 @@ public class JU_Function {
         Mockito.doReturn(retValFail).when(ques).mayUser(Mockito.any(), Mockito.anyString(),Mockito.any(PermDAO.Data.class), Mockito.any());
         result = funcObj.delPermFromRole(trans, "test", rolePerm);
         assertTrue(result.status == 2);
-        
+
         retVal3 = new Result<NsSplit>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retVal3).when(ques).deriveNsSplit(Mockito.any(), Mockito.anyString());
         result = funcObj.delPermFromRole(trans, "test", rolePerm);
@@ -1427,29 +1427,29 @@ public class JU_Function {
         urData.rname="test";
         urData.user="test";
         urDataAl.add(urData);
-        
+
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
         Mockito.doReturn(Mockito.mock(GregorianCalendar.class)).when(org).expiration(Mockito.any(), Mockito.any(), Mockito.anyString());
-        
+
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
         Result<List<UserRoleDAO.Data>> retValSuc = new Result<List<UserRoleDAO.Data>>(urDataAl,0,"test",NO_PARAM);
         Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
         Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));
-        Mockito.doReturn(retVal).when(userRoleDAO).create(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));    
-        Mockito.doReturn(retValSuc).when(roleDAO).read(Mockito.any(), Mockito.anyString(), Mockito.anyString());        
+        Mockito.doReturn(retVal).when(userRoleDAO).create(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));
+        Mockito.doReturn(retValSuc).when(roleDAO).read(Mockito.any(), Mockito.anyString(), Mockito.anyString());
 
         Result<List<CredDAO.Data>> retVal2 = new Result<List<CredDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());        
-        
+        Mockito.doReturn(retVal2).when(credDAO).readID(Mockito.any(), Mockito.anyString());
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.addUserRole(trans, urData);
         assertTrue(result.status == 1);
-        
+
         urData.rname=Question.ADMIN;
         result = funcObj.addUserRole(trans, urData);
         assertTrue(result.status == 1);
-        
+
         NsDAO.Data data = new NsDAO.Data();
         data.name="test";
         Result<NsDAO.Data> retVal1 = new Result<NsDAO.Data>(data,0,"test",NO_PARAM);
@@ -1465,21 +1465,21 @@ public class JU_Function {
         result = funcObj.addUserRole(trans, urData);
         assertTrue(result.status == 1);
 
-        Mockito.doReturn(retValSuc).when(userRoleDAO).create(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));    
+        Mockito.doReturn(retValSuc).when(userRoleDAO).create(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));
         result = funcObj.addUserRole(trans, urData);
         assertTrue(result.status == 0);
 
         Mockito.doReturn(retVal).when(roleDAO).read(Mockito.any(), Mockito.anyString(), Mockito.anyString());
         result = funcObj.addUserRole(trans, urData);
         assertTrue(result.status == Status.ERR_RoleNotFound);
-        
+
         Mockito.doReturn(retValSuc).when(userRoleDAO).read(Mockito.any(), Mockito.any(UserRoleDAO.Data.class));
         result = funcObj.addUserRole(trans, urData);
         assertTrue(result.status == Status.ERR_ConflictAlreadyExists);
-        
+
         result = funcObj.addUserRole(trans, "test", "test", "test");
         assertTrue(result.status == 1);
-        
+
         try {
             Mockito.doReturn(null).when(org).getIdentity(trans, "test");
         } catch (OrganizationException e) {
@@ -1488,7 +1488,7 @@ public class JU_Function {
         }
         result = funcObj.addUserRole(trans, "test", "test", "test");
         assertTrue(result.status == Result.ERR_BadData);
-        
+
         try {
             Mockito.doThrow(OrganizationException.class).when(org).getIdentity(trans, "test");
         } catch (OrganizationException e) {
@@ -1498,7 +1498,7 @@ public class JU_Function {
         result = funcObj.addUserRole(trans, "test", "test", "test");
         assertTrue(result.status == 20);
     }
-    
+
     @Test
     public void testExtendUserRole() {
         List<UserRoleDAO.Data> urDataAl = new ArrayList<>();
@@ -1508,34 +1508,34 @@ public class JU_Function {
         urData.user="test";
         urData.expires=new Date();
         urDataAl.add(urData);
-        
+
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
 //        NsDAO.Data dataObj = new NsDAO.Data();
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
         Result<List<UserRoleDAO.Data>> retValSuc = new Result<List<UserRoleDAO.Data>>(urDataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
         Mockito.doReturn(retValSuc).when(roleDAO).read(Mockito.any(), Mockito.anyString(), Mockito.anyString());
 
         Organization org = Mockito.mock(Organization.class);
         Mockito.doReturn(org).when(trans).org();
         Mockito.doReturn(Mockito.mock(GregorianCalendar.class)).when(org).expiration(Mockito.any(), Mockito.any());
-        
+
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.extendUserRole(trans, urData, false);
         assertNull(result);
-        
+
         Mockito.doReturn(retVal).when(roleDAO).read(Mockito.any(), Mockito.anyString(), Mockito.anyString());
         Mockito.doReturn(retValSuc).when(userRoleDAO).read(trans, urData);
         result = funcObj.extendUserRole(trans, urData, true);
         assertTrue(result.status == Status.ERR_RoleNotFound);
-        
+
         Mockito.doReturn(retVal).when(userRoleDAO).read(trans, urData);
         result = funcObj.extendUserRole(trans, urData, true);
         assertTrue(result.status == Status.ERR_UserRoleNotFound);
     }
-    
+
     @SuppressWarnings("deprecation")
     @Test
     public void testGetUsersByRole() {
@@ -1547,7 +1547,7 @@ public class JU_Function {
         urData.expires=new Date();
         urDataAl.add(urData);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(urDataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
 
         Function funcObj = new Function(trans, ques);
         Result<List<String>> result = funcObj.getUsersByRole(trans, "test", false);
@@ -1555,11 +1555,11 @@ public class JU_Function {
 
         result = funcObj.getUsersByRole(trans, "test", true);
         assertTrue(result.status == 0);
-        
+
         urData.expires=new Date(130,1,1);
         result = funcObj.getUsersByRole(trans, "test", true);
         assertTrue(result.status == 0);
-//        
+//
     }
     @Test
     public void testDelUserRole() {
@@ -1571,26 +1571,26 @@ public class JU_Function {
         urData.expires=new Date();
         urDataAl.add(urData);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(urDataAl,0,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));        
+        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));
 
         Function funcObj = new Function(trans, ques);
         Result<Void> result = funcObj.delUserRole(trans, "test", "test", "test");
         assertNull(result);
-        
+
         retVal = new Result<List<UserRoleDAO.Data>>(urDataAl,1,"test",NO_PARAM);
         Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));
         result = funcObj.delUserRole(trans, "test", "test", "test");
-//        assertTrue(result.status ==1);    
-//        
+//        assertTrue(result.status ==1);
+//
     }
-    
+
     @Test
     public void testCreateFuture() {
         FutureDAO.Data data = new FutureDAO.Data();
         data.memo = "test";
         NsDAO.Data nsd = new NsDAO.Data();
         nsd.name = "test";
-        
+
         List<UserRoleDAO.Data> urDataAl = new ArrayList<>();
         UserRoleDAO.Data urData = new UserRoleDAO.Data();
         urData.ns="test";
@@ -1600,7 +1600,7 @@ public class JU_Function {
         urDataAl.add(urData);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(urDataAl,0,"test",NO_PARAM);
         Result<List<UserRoleDAO.Data>> retValFail = new Result<List<UserRoleDAO.Data>>(urDataAl,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));    
+        Mockito.doReturn(retVal).when(userRoleDAO).read(Mockito.any(), Mockito.any( UserRoleDAO.Data.class));
 
         Function funcObj = new Function(trans, ques);
         Result<String> result = funcObj.createFuture(trans, data, "test", "test", nsd, FUTURE_OP.A);
@@ -1618,23 +1618,23 @@ public class JU_Function {
         data.memo = "test";
         Result<FutureDAO.Data> retValFuture = new Result<FutureDAO.Data>(futureData,0,"test",NO_PARAM);
         Mockito.doReturn(retValFuture).when(futureDAO).create(Mockito.any(), Mockito.any( FutureDAO.Data.class), Mockito.anyString());
-        
+
         ApprovalDAO.Data approvalData = new ApprovalDAO.Data();
         data.memo = "test";
         Result<ApprovalDAO.Data> retValApproval = new Result<ApprovalDAO.Data>(approvalData,0,"test",NO_PARAM);
         Mockito.doReturn(retValApproval).when(approvalDAO).create(Mockito.any(), Mockito.any( ApprovalDAO.Data.class));
-        
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());    
+
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
         result = funcObj.createFuture(trans, data, "test", "test", nsd, FUTURE_OP.A);
         assertTrue(result.status == 0);
-        
+
         result = funcObj.createFuture(trans, data, "test", "test", null, FUTURE_OP.A);
         assertTrue(result.status == 20);
 
         Mockito.doReturn(retValFail).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
         result = funcObj.createFuture(trans, data, "test", "test", nsd, FUTURE_OP.A);
         assertTrue(result.status == Result.ERR_NotFound);
-        
+
         Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
         try {
             Mockito.doReturn(null).when(org).getIdentity(trans, "test");
@@ -1644,7 +1644,7 @@ public class JU_Function {
         }
         result = funcObj.createFuture(trans, data, "test", "test", nsd, FUTURE_OP.A);
         assertTrue(result.status == Result.ERR_NotFound);
-        
+
         try {
             Mockito.doReturn(iden).when(org).getIdentity(trans, "test");
         } catch (OrganizationException e) {
@@ -1653,7 +1653,7 @@ public class JU_Function {
         }
         result = funcObj.createFuture(trans, data, "test", "test", nsd, FUTURE_OP.C);
         assertTrue(result.status == 0);
-        
+
         retValApproval = new Result<ApprovalDAO.Data>(null,1,"test",NO_PARAM);
         Mockito.doReturn(retValApproval).when(approvalDAO).create(Mockito.any(), Mockito.any( ApprovalDAO.Data.class));
         result = funcObj.createFuture(trans, data, "test", "test", nsd, FUTURE_OP.A);
@@ -1671,22 +1671,22 @@ public class JU_Function {
         urDataAl.add(urData);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(urDataAl,0,"test",NO_PARAM);
         Result<List<UserRoleDAO.Data>> retValFail = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).read(trans, objArr);    
-        
+        Mockito.doReturn(retVal).when(userRoleDAO).read(trans, objArr);
+
         Function funcObj = new Function(trans, ques);
         funcObj.urDBLookup.get(trans, objArr);
-        
-        Mockito.doReturn(retValFail).when(userRoleDAO).read(trans, objArr);    
+
+        Mockito.doReturn(retValFail).when(userRoleDAO).read(trans, objArr);
         funcObj.urDBLookup.get(trans, objArr);
     }
-    
+
     @Test
     public void testPerformFutureOp() {
         FutureDAO.Data futureDataDaoObj = new FutureDAO.Data();
         futureDataDaoObj.memo="test";
         futureDataDaoObj.target = "test";
         futureDataDaoObj.id = new UUID(10L,10L);
-        
+
         final List<ApprovalDAO.Data> apprs = new ArrayList<>();
         ApprovalDAO.Data approvalObj = new ApprovalDAO.Data();
         approvalObj.status = "approved";
@@ -1698,7 +1698,7 @@ public class JU_Function {
                 return apprs;
             }
         };
-        
+
         final UserRoleDAO.Data userObj = new UserRoleDAO.Data();
         Lookup<UserRoleDAO.Data> lookupUserObj = new Lookup<UserRoleDAO.Data>() {
             @Override
@@ -1706,61 +1706,61 @@ public class JU_Function {
                 return userObj;
             }
         };
-        
+
         FutureDAO.Data futureData = new FutureDAO.Data();
 //        data.memo = "test";
         Result<FutureDAO.Data> retValFuture = new Result<FutureDAO.Data>(futureData,0,"test",NO_PARAM);
         Mockito.doReturn(retValFuture).when(futureDAO).delete(Mockito.any(), Mockito.any( FutureDAO.Data.class), Mockito.anyBoolean());
-        
+
 //        List<NsDAO.Data> dataAl = new ArrayList<NsDAO.Data>();
 //        NsDAO.Data dataObj = new NsDAO.Data();
 //        dataObj.type=1;
 //        dataAl.add(dataObj);
         Result<List<UserRoleDAO.Data>> retVal = new Result<List<UserRoleDAO.Data>>(null,1,"test",NO_PARAM);
-        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());        
-//        
+        Mockito.doReturn(retVal).when(userRoleDAO).readByRole(Mockito.any(), Mockito.anyString());
+//
 //        Result<NsDAO.Data> retVal2 = new Result<NsDAO.Data>(null,0,"test",NO_PARAM);
 //        Mockito.doReturn(retVal2).when(ques).mayUser(trans, null,retVal.value.get(0), Access.write);
-//        
+//
         Function funcObj = new Function(trans, ques);
         Result<Function.OP_STATUS> result = funcObj.performFutureOp(trans, FUTURE_OP.A, futureDataDaoObj, lookupApprovalObj, lookupUserObj);
         assertTrue(result.status == 0);
-        
+
         approvalObj.status = "approved";
         approvalObj.type = "supervisor";
         result = funcObj.performFutureOp(trans, FUTURE_OP.A, futureDataDaoObj, lookupApprovalObj, lookupUserObj);
         assertTrue(result.status == 0);
-        
+
         approvalObj.status = "approved";
         approvalObj.type = "";
         result = funcObj.performFutureOp(trans, FUTURE_OP.A, futureDataDaoObj, lookupApprovalObj, lookupUserObj);
         assertTrue(result.status == 0);
-        
+
         approvalObj.status = "pending";
         approvalObj.type = "supervisor";
         result = funcObj.performFutureOp(trans, FUTURE_OP.A, futureDataDaoObj, lookupApprovalObj, lookupUserObj);
         assertTrue(result.status == 0);
-        
+
         approvalObj.status = "pending";
         approvalObj.type = "owner";
         result = funcObj.performFutureOp(trans, FUTURE_OP.A, futureDataDaoObj, lookupApprovalObj, lookupUserObj);
         assertTrue(result.status == 0);
-        
+
         approvalObj.status = "pending";
         approvalObj.type = "";
         result = funcObj.performFutureOp(trans, FUTURE_OP.A, futureDataDaoObj, lookupApprovalObj, lookupUserObj);
         assertTrue(result.status == 0);
-        
+
         approvalObj.status = "denied";
         approvalObj.type = "";
         result = funcObj.performFutureOp(trans, FUTURE_OP.A, futureDataDaoObj, lookupApprovalObj, lookupUserObj);
         assertTrue(result.status == 0);
-        
+
         retValFuture = new Result<FutureDAO.Data>(futureData,1,"test",NO_PARAM);
         Mockito.doReturn(retValFuture).when(futureDAO).delete(Mockito.any(), Mockito.any( FutureDAO.Data.class), Mockito.anyBoolean());
         result = funcObj.performFutureOp(trans, FUTURE_OP.A, futureDataDaoObj, lookupApprovalObj, lookupUserObj);
         System.out.println(result);
         assertTrue(result.status == 0);
-//        
+//
     }
 }
index 7e1abeb..f5d22ba 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -51,17 +51,17 @@ import org.onap.aaf.cadi.CadiException;
 import org.onap.aaf.misc.env.LogTarget;
 
 
-@RunWith(MockitoJUnitRunner.class) 
+@RunWith(MockitoJUnitRunner.class)
 public class JU_PermLookup {
 
-    
-    
+
+
     @Mock
     AuthzTrans trans;
-    
+
     @Mock
     Question q;
-    
+
     @Mock
     Access access;
 
@@ -70,40 +70,40 @@ public class JU_PermLookup {
 
     @Mock
     CachedUserRoleDAO userRoleDAO;
-    
+
     Function f;
-    
+
     @Before
     public void setUp() throws Exception {
         initMocks(this);
         Mockito.doReturn(userRoleDAO).when(q).userRoleDAO();
         Mockito.doReturn(roleDAO).when(q).roleDAO();
-        
+
         try {
             Mockito.doReturn("0.0").when(access).getProperty("aaf_root_ns","org.osaaf.aaf");
             Mockito.doReturn(new Properties()).when(access).getProperties();
             Define.set(access);
-            
+
             when(trans.error()).thenReturn(new LogTarget() {
-                
+
                 @Override
                 public void printf(String fmt, Object... vars) {}
-                
+
                 @Override
                 public void log(Throwable e, Object... msgs) {
                     e.getMessage();
                     e.printStackTrace();
                     msgs.toString();
-                    
+
                 }
-                
+
                 @Override
                 public void log(Object... msgs) {
                 }
-                
+
                 @Override
                 public boolean isLoggable() {
-                    
+
                     return true;
                 }
             });
@@ -113,70 +113,70 @@ public class JU_PermLookup {
         }
         f =new Function(trans, q);
     }
-    
-    
+
+
 //    @Test
 //    public void testPerm() {
-//        
+//
 //        PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
-//        
+//
 ////        System.out.println(cassExecutorObj);
 ////        assertFalse(retVal);
 //    }
-    
+
     @Test
     public void testGetUserRole() {
         @SuppressWarnings("unchecked")
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
-        
+
         dataObj.expires = new Date();
-        
+
         retVal1.value.add(dataObj);
         Mockito.doReturn(true).when(retVal1).isOKhasData();
         Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
         Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
-        
+
         //System.out.println(""+userRoles.status);
         assertEquals(24,userRoles.status);
     }
-    
+
     @Test
     public void testGetUserRolesFirstIf() {
         @SuppressWarnings("unchecked")
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
-                
+
         Mockito.doReturn(false).when(retVal1).isOKhasData();
         Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
         Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
-        
+
 //        System.out.println("output is"+userRoles.status);
         assertEquals(0,userRoles.status);
     }
-    
+
     @Test
     public void testGetUserRolesSecondIf() {
         @SuppressWarnings("unchecked")
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
-        
+
         Date dt = new Date();
-        Calendar c = Calendar.getInstance(); 
-        c.setTime(dt); 
+        Calendar c = Calendar.getInstance();
+        c.setTime(dt);
         c.add(Calendar.DATE, 1);
         dataObj.expires = c.getTime();
-        
+
         retVal1.value.add(dataObj);
         Mockito.doReturn(true).when(retVal1).isOKhasData();
         Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
         Result<List<UserRoleDAO.Data>> userRoles = cassExecutorObj.getUserRoles();
-        
+
         //System.out.println(userRoles.status);
         assertEquals("Success",userRoles.details);
         Result<List<UserRoleDAO.Data>> userRoles1 = cassExecutorObj.getUserRoles();
@@ -184,38 +184,38 @@ public class JU_PermLookup {
         //System.out.println(userRoles1.status);
         assertEquals(0, userRoles1.status);
     }
-    
+
     @Test
     public void testGetRole() {
         @SuppressWarnings("unchecked")
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
-        
+
         dataObj.expires = new Date();
-        
+
         retVal1.value.add(dataObj);
         Mockito.doReturn(false).when(retVal1).isOKhasData();
         Mockito.doReturn(true).when(retVal1).isOK();
         Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
         Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
-        
+
         //System.out.println(""+userRoles.status);
         assertEquals(4,userRoles.status);
     }
-    
+
     @Test
     public void testGetRoleFirstIf() {
         @SuppressWarnings("unchecked")
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
-        
+
         dataObj.expires = new Date();
         dataObj.ns="";
         dataObj.rname="";
-        
+
         retVal1.value.add(dataObj);
         Mockito.doReturn(false).when(retVal1).isOKhasData();
         Mockito.doReturn(false).when(retVal1).isOK();
@@ -223,22 +223,22 @@ public class JU_PermLookup {
         Mockito.doReturn(retVal1).when(roleDAO).read(trans,"","");
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
         Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
-        
+
 //        System.out.println(""+userRoles.status);
         assertEquals(0,userRoles.status);
     }
-    
+
     @Test
     public void testGetRoleSecondIf() {
         @SuppressWarnings("unchecked")
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
-        
+
         dataObj.expires = new Date();
         dataObj.ns="";
         dataObj.rname="";
-        
+
         retVal1.value.add(dataObj);
         Mockito.doReturn(false).when(retVal1).isOKhasData();
         Mockito.doReturn(true).when(retVal1).isOK();
@@ -247,7 +247,7 @@ public class JU_PermLookup {
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
         Result<List<RoleDAO.Data>> userRoles = cassExecutorObj.getRoles();
         userRoles = cassExecutorObj.getRoles();
-        
+
 //        System.out.println(""+userRoles.status);
         assertEquals(0,userRoles.status);
     }
@@ -262,7 +262,7 @@ public class JU_PermLookup {
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
         Result<Set<String>> userRoles = cassExecutorObj.getPermNames();
         userRoles = cassExecutorObj.getPermNames();
-        
+
         //System.out.println(""+userRoles.status);
         assertEquals(0,userRoles.status);
     }
@@ -272,19 +272,19 @@ public class JU_PermLookup {
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
-        
+
         dataObj.expires = new Date();
-        
+
         retVal1.value.add(dataObj);
         Mockito.doReturn(false).when(retVal1).isOKhasData();
         Mockito.doReturn(true).when(retVal1).isOK();
         Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
         Result<Set<String>> userRoles = cassExecutorObj.getPermNames();
-        
+
         //System.out.println(""+userRoles.status);
         assertEquals(4,userRoles.status);
-    }    
+    }
 
 
     @SuppressWarnings("unchecked")
@@ -292,31 +292,31 @@ public class JU_PermLookup {
     public void testGetPerm() {
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
-        
+
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
         retVal2.value = new ArrayList<RoleDAO.Data>();
         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
-        
+
         Date dt = new Date();
-        Calendar c = Calendar.getInstance(); 
-        c.setTime(dt); 
+        Calendar c = Calendar.getInstance();
+        c.setTime(dt);
         c.add(Calendar.DATE, 1);
         dataObj.expires = c.getTime();
         dataObj.ns = "";
         dataObj.rname="";
-        
+
         RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
         Set<String> permSet = new HashSet<String>();
         permSet.add("test");
         Mockito.doReturn(permSet).when(dataObj1).perms(false);
-        
+
         dt = new Date();
-        c = Calendar.getInstance(); 
-        c.setTime(dt); 
+        c = Calendar.getInstance();
+        c.setTime(dt);
         c.add(Calendar.DATE, 1);
         dataObj1.ns = "test";
         dataObj1.perms = permSet;
-        
+
         retVal1.value.add(dataObj);
         retVal2.value.add(dataObj1);
         Mockito.doReturn(true).when(retVal1).isOKhasData();
@@ -325,47 +325,47 @@ public class JU_PermLookup {
         Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
         Mockito.doReturn(retVal2).when(roleDAO).read(trans,"","");
 
-        
+
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
-//        
+//
 //        Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
         Result<List<Data>> userRoles = cassExecutorObj.getPerms(true);
 //        userRoles = cassExecutorObj.getPerms(false);
-        
+
 //        System.out.println(""+userRoles.status);
         assertEquals(0,userRoles.status);
     }
-    
+
     @SuppressWarnings("unchecked")
     @Test
     public void testGetPermFalse() {
         Result<List<UserRoleDAO.Data>> retVal1 = Mockito.mock(Result.class);
         Result<List<RoleDAO.Data>> retVal2 = Mockito.mock(Result.class);
-        
+
         retVal1.value = new ArrayList<UserRoleDAO.Data>();
         retVal2.value = new ArrayList<RoleDAO.Data>();
         UserRoleDAO.Data dataObj = Mockito.mock( UserRoleDAO.Data.class);
-        
+
         Date dt = new Date();
-        Calendar c = Calendar.getInstance(); 
-        c.setTime(dt); 
+        Calendar c = Calendar.getInstance();
+        c.setTime(dt);
         c.add(Calendar.DATE, 1);
         dataObj.expires = c.getTime();
         dataObj.ns = "";
         dataObj.rname="";
-        
+
         RoleDAO.Data dataObj1 = Mockito.mock( RoleDAO.Data.class);
         Set<String> permSet = new HashSet<String>();
         permSet.add("test");
         Mockito.doReturn(permSet).when(dataObj1).perms(false);
-        
+
         dt = new Date();
-        c = Calendar.getInstance(); 
-        c.setTime(dt); 
+        c = Calendar.getInstance();
+        c.setTime(dt);
         c.add(Calendar.DATE, 1);
         dataObj1.ns = "test";
         dataObj1.perms = permSet;
-        
+
         retVal1.value.add(dataObj);
         retVal2.value.add(dataObj1);
         Mockito.doReturn(true).when(retVal1).isOKhasData();
@@ -374,15 +374,15 @@ public class JU_PermLookup {
         Mockito.doReturn(retVal1).when(userRoleDAO).readByUser(trans,"");
         Mockito.doReturn(retVal2).when(roleDAO).read(trans,"","");
 
-        
+
         PermLookup cassExecutorObj =PermLookup.get(trans, q,"");
-//        
+//
 //        Mockito.doReturn(retVal2).when(cassExecutorObj).getPermNames();
         Result<List<Data>> userRoles = cassExecutorObj.getPerms(false);
         userRoles = cassExecutorObj.getPerms(false);
-        
+
 //        System.out.println(""+userRoles.status);
         assertEquals(0,userRoles.status);
     }
-    
+
 }
\ No newline at end of file
index 5a7d495..0562312 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,26 +48,26 @@ import org.onap.aaf.cadi.config.Config;
 import junit.framework.Assert;
 
 
-@RunWith(MockitoJUnitRunner.class) 
+@RunWith(MockitoJUnitRunner.class)
 public class JU_DirectAAFLocator {
 
     @Mock
     LocateDAO ldao;
-    
+
     @Mock
     AuthzEnv env;
-    
+
     @Mock
     AuthzTrans trans;
-    
+
     @Mock
     PropAccess access;
-    
+
     @Before
     public void setUp() throws Exception {
         initMocks(this);
     }
-    
+
     @Test
     public void testConstructorVersionExcpetion() {
         Mockito.doReturn(access).when(env).access();
@@ -97,7 +97,7 @@ public class JU_DirectAAFLocator {
             assertEquals("Invalid Version String: 20.20.20.test", e.getMessage());
         }
     }
-    
+
     @Test
     public void testConstructorExcpetion() {
         Mockito.doReturn(access).when(env).access();
@@ -112,7 +112,7 @@ public class JU_DirectAAFLocator {
 //            System.out.println(e.getMessage());
         }
     }
-    
+
     // NOTE: These mocks to not well represent the DirectAAFLocator Class.
     @Test
     public void testConstructorUriExcpetion() {
@@ -133,7 +133,7 @@ public class JU_DirectAAFLocator {
 
     @Test
     public void testRefresh() {
-        
+
         DirectAAFLocator aafLocatorObj=null;
         PropAccess access = Mockito.mock(PropAccess.class);
         Mockito.doReturn(access).when(env).access();
@@ -150,7 +150,7 @@ public class JU_DirectAAFLocator {
             e.printStackTrace();
         }
         Result<List<Data>> retVal1 = new Result<List<Data>>(null,0,"",new Object[0]);
-        
+
         Data data= new Data();
         data.major=30;
         data.minor=30;
@@ -158,16 +158,16 @@ public class JU_DirectAAFLocator {
         data.pkg=30;
         retVal1.value = new ArrayList<Data>();
         retVal1.value.add(data);
-        
+
         Mockito.doReturn(retVal1).when(ldao).readByName(trans,"test");
         boolean retVal = aafLocatorObj.refresh();
 //        System.out.println(retVal);
         assertTrue(retVal);
-    }    
-    
+    }
+
     @Test
     public void testRefreshNOK() {
-        
+
         DirectAAFLocator aafLocatorObj=null;
         PropAccess access = Mockito.mock(PropAccess.class);
         Mockito.doReturn(access).when(env).access();
@@ -184,11 +184,11 @@ public class JU_DirectAAFLocator {
             e.printStackTrace();
         }
         Result<List<Data>> retVal1 = new Result<List<Data>>(null,1,"",new String[0]);
-        
+
         Mockito.doReturn(retVal1).when(ldao).readByName(trans,"test");
         boolean retVal = aafLocatorObj.refresh();
 //        System.out.println(retVal);
         assertFalse(retVal);
-    }    
-    
+    }
+
 }
\ No newline at end of file
index 0ed6e60..dbd517a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -51,34 +51,34 @@ import org.onap.aaf.cadi.lur.LocalPermission;
 import org.onap.aaf.misc.env.LogTarget;
 import org.onap.aaf.misc.env.Trans;
 
-@RunWith(MockitoJUnitRunner.class) 
+@RunWith(MockitoJUnitRunner.class)
 public class JU_DirectAAFLur {
 
     @Mock
     AuthzEnv env;
-    
+
     @Mock
     Question question;
-    
+
     @Mock
     Principal bait;
-    
+
     @Mock
     Permission pond;
-    
+
     @Mock
     AuthzTrans trans;
-    
+
     @Before
     public void setUp() throws Exception {
         initMocks(this);
         Mockito.when(env.newTransNoAvg()).thenReturn(trans);
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(trans).error();
     }
-    
+
     public void testFish() {
         DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
-        
+
         List<PermDAO.Data> rsVal = new ArrayList<PermDAO.Data>();
         Result<List<Data>> rs = new Result<List<Data>>(rsVal,0,"test",new Object[0]);
         Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
@@ -88,7 +88,7 @@ public class JU_DirectAAFLur {
     @Test
     public void testFishSecondMtd() {
         DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
-        
+
         List<PermDAO.Data> rsVal = new ArrayList<PermDAO.Data>();
         PermDAO.Data pd = new PermDAO.Data();
         pd.ns = "ns";
@@ -101,7 +101,7 @@ public class JU_DirectAAFLur {
         pd.instance = "instance";
         pd.action = null;
         rsVal.add(pd);
-        
+
         pd = new PermDAO.Data();
         pd.ns = "ns";
         pd.type = "name";
@@ -115,25 +115,25 @@ public class JU_DirectAAFLur {
         pd.ns = "ns";
         pd.type = "name1";
         rsVal.add(pd);
-                
+
         pd = new PermDAO.Data();
         pd.ns = "ns";
         pd.type = "name";
         pd.instance = "instance";
         pd.action = "action";
         rsVal.add(pd);
-        
+
         pond = new DirectAAFLur.PermPermission("ns", "name", "instance", "action");
-        
+
         Result<List<Data>> rs = new Result<List<Data>>(rsVal,0,"test",new Object[0]);
         Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
         aafLurObj.fish(bait, pond);
-        
+
         pond = new AAFPermission("ns", "name", "instance", "action");
-        
+
         Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
         aafLurObj.fish(bait, pond);
-        
+
         rs = new Result<List<Data>>(rsVal,1,"test",new Object[0]);
         Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
         aafLurObj.fish(bait, pond);
@@ -144,76 +144,76 @@ public class JU_DirectAAFLur {
         Mockito.when(question.getPermsByUser(env.newTransNoAvg(), bait.getName(), false)).thenReturn(rs);
         aafLurObj.fish(bait, pond);
     }
-    
+
     @Test
     public void testFishAll() {
         Mockito.doReturn(Mockito.mock(LogTarget.class)).when(env).error();
         DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
-        
+
         List<PermDAO.Data> rsVal = new ArrayList<PermDAO.Data>();
         PermDAO.Data pd = new PermDAO.Data();
         pd.ns = "ns";
         pd.type = "name";
         pd.instance = null;
         rsVal.add(pd);
-        
+
         pond = new DirectAAFLur.PermPermission("ns", "name", "instance", "action");
         List<Permission> permissions = new ArrayList<>();
         permissions.add(pond);
-        
+
         Result<List<Data>> rs = new Result<List<Data>>(rsVal,0,"test",new Object[0]);
         Mockito.when(question.getPermsByUser(env.newTrans(), bait.getName(), false)).thenReturn(rs);
         aafLurObj.fishAll(bait, permissions);
         assertTrue(permissions.size() == 2);
-        
+
         rs = new Result<List<Data>>(rsVal,1,"test",new Object[0]);
         Mockito.when(question.getPermsByUser(env.newTrans(), bait.getName(), false)).thenReturn(rs);
         aafLurObj.fishAll(bait, permissions);
     }
-    
+
     @Test
     public void testDestroy() {
         DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
         aafLurObj.destroy();
     }
-    
+
     @Test
     public void testHandlesExclusively() {
         DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
         pond = new DirectAAFLur.PermPermission("ns", "name", "instance", "action");
         assertFalse(aafLurObj.handlesExclusively(pond));
     }
-    
+
     @Test
     public void testToString() {
         DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
         assertTrue(aafLurObj.toString().contains("DirectAAFLur is enabled"));
     }
-    
+
     @Test
     public void testHandles() {
         DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
         assertTrue(aafLurObj.handles(null));
     }
-    
+
     @Test
     public void testCreatePerm() {
         DirectAAFLur aafLurObj = new DirectAAFLur(env, question);
         Permission retVal = aafLurObj.createPerm("test");
         assertTrue(retVal instanceof LocalPermission);
-        
+
         NsSplit nss = new NsSplit("test", "test");
         Result<NsSplit> rs = new Result<NsSplit>(nss,0,"test",new Object[0]);
         Mockito.when(question.deriveNsSplit(NullTrans.singleton() , "test")).thenReturn(rs);
         retVal = aafLurObj.createPerm("test|1|2");
         assertTrue(retVal instanceof PermPermission);
-        
+
         rs = new Result<NsSplit>(null,1,"test",new Object[0]);
         Mockito.when(question.deriveNsSplit(NullTrans.singleton() , "test")).thenReturn(rs);
         retVal = aafLurObj.createPerm("test|1|2");
         assertTrue(retVal instanceof LocalPermission);
     }
-    
+
     @Test
     public void testClear() {
         AuthzTransImpl trans =  Mockito.mock(AuthzTransImpl.class);
@@ -223,7 +223,7 @@ public class JU_DirectAAFLur {
         Mockito.when(trans.auditTrail(0, sb)).thenReturn(Mockito.mock(Trans.Metric.class));
         aafLurObj.clear(bait, sb);
     }
-    
+
     @Test
     public void testPermPermission() {
         AuthzTransImpl trans =  Mockito.mock(AuthzTransImpl.class);
@@ -231,12 +231,12 @@ public class JU_DirectAAFLur {
         Result<NsSplit> rs = new Result<NsSplit>(nss,0,"test",new Object[0]);
         Mockito.when(question.deriveNsSplit(trans , "test")).thenReturn(rs);
         PermPermission pp = new PermPermission(trans, question, "test|test|test|test");
-        
+
         assertTrue("test".equalsIgnoreCase(pp.getKey()));
         assertTrue("AAFLUR".equalsIgnoreCase(pp.permType()));
-        
+
         assertFalse(pp.match(null));
-        
+
         pond = new AAFPermission("test.test", "test", "test", "test");
         assertTrue(pp.match(pond));
     }
index 241d407..03e3e93 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,76 +44,76 @@ import org.onap.aaf.auth.layer.Result;
 import org.onap.aaf.misc.env.LogTarget;
 
 
-@RunWith(MockitoJUnitRunner.class) 
+@RunWith(MockitoJUnitRunner.class)
 public class JU_DirectAAFUserPass {
 
     @Mock
     Question question;
-    
+
     @Mock
     AuthzEnv env;
-    
+
     @Mock
     AuthzTrans trans;
-    
+
     @Mock
     HttpServletRequest request;
-    
-    
+
+
     @Before
     public void setUp() throws Exception {
         initMocks(this);
         when(env.warn()).thenReturn(new LogTarget() {
-            
+
             @Override
             public void printf(String fmt, Object... vars) {}
-            
+
             @Override
             public void log(Throwable e, Object... msgs) {
                 e.getMessage();
                 e.printStackTrace();
                 msgs.toString();
-                
+
             }
-            
+
             @Override
             public void log(Object... msgs) {
             }
-            
+
             @Override
             public boolean isLoggable() {
-                
+
                 return true;
             }
         });
         when(env.error()).thenReturn(new LogTarget() {
-            
+
             @Override
             public void printf(String fmt, Object... vars) {}
-            
+
             @Override
             public void log(Throwable e, Object... msgs) {
                 e.getMessage();
                 e.printStackTrace();
                 msgs.toString();
-                
+
             }
-            
+
             @Override
             public void log(Object... msgs) {
             }
-            
+
             @Override
             public boolean isLoggable() {
-                
+
                 return true;
             }
         });
     }
-    
+
     @Test
     public void testUserPass() {
-        
+
         DirectAAFUserPass aafLocatorObj=null;
         aafLocatorObj = new DirectAAFUserPass(env, question);
         Result<Date> retVal1 = new Result<Date>(null,0,"",new String[0]);
@@ -124,13 +124,13 @@ public class JU_DirectAAFUserPass {
             e.printStackTrace();
         }
         boolean retVal = aafLocatorObj.validate(null, null, null, null);
-        
+
         assertFalse(retVal);
-    }    
-    
+    }
+
     @Test
     public void testUserPassStateisRequest() {
-        
+
         DirectAAFUserPass aafLocatorObj=null;
         aafLocatorObj = new DirectAAFUserPass(env, question);
         Result<Date> retVal1 = new Result<Date>(null,1,"",new String[0]);
@@ -141,14 +141,14 @@ public class JU_DirectAAFUserPass {
             e.printStackTrace();
         }
         boolean retVal = aafLocatorObj.validate(null, null, null, request);
-        
+
 //        System.out.println(retVal);
         assertFalse(retVal);
     }
-    
+
     @Test
     public void testUserPassStateNotNull() {
-        
+
         DirectAAFUserPass aafLocatorObj=null;
         aafLocatorObj = new DirectAAFUserPass(env, question);
         Result<Date> retVal1 = new Result<Date>(null,1,"",new String[0]);
@@ -159,14 +159,14 @@ public class JU_DirectAAFUserPass {
             e.printStackTrace();
         }
         boolean retVal = aafLocatorObj.validate(null, null, null, "test");
-        
+
 //        System.out.println(retVal);
         assertFalse(retVal);
     }
-    
+
     @Test
     public void testUserPassTransChk() {
-        
+
         DirectAAFUserPass aafLocatorObj=null;
         aafLocatorObj = new DirectAAFUserPass(env, question);
         Result<Date> retVal1 = new Result<Date>(null,1,"",new String[0]);
@@ -177,14 +177,14 @@ public class JU_DirectAAFUserPass {
             e.printStackTrace();
         }
         boolean retVal = aafLocatorObj.validate(null, null, null, trans);
-        
+
 //        System.out.println(retVal);
         assertFalse(retVal);
     }
-    
+
     @Test
     public void testUserPassTransIpNotNull() {
-        
+
         DirectAAFUserPass aafLocatorObj=null;
         aafLocatorObj = new DirectAAFUserPass(env, question);
         Result<Date> retVal1 = new Result<Date>(null,1,"",new String[0]);
@@ -196,14 +196,14 @@ public class JU_DirectAAFUserPass {
             e.printStackTrace();
         }
         boolean retVal = aafLocatorObj.validate(null, null, null, trans);
-        
+
 //        System.out.println(retVal);
         assertFalse(retVal);
     }
-    
+
     @Test
     public void testUserExceptionChk() {
-        
+
         DirectAAFUserPass aafLocatorObj=null;
         aafLocatorObj = new DirectAAFUserPass(env, question);
         Result<Date> retVal1 = new Result<Date>(null,1,"",new String[0]);
@@ -215,9 +215,9 @@ public class JU_DirectAAFUserPass {
 //            e.printStackTrace();
         }
         boolean retVal = aafLocatorObj.validate(null, null, null, trans);
-        
+
 //        System.out.println(retVal);
         assertFalse(retVal);
     }
-    
+
 }
\ No newline at end of file
index 81195e5..d59e615 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -66,17 +66,17 @@ public class JU_DirectCertIdentity {
         try {
             Principal p = directCertIdentity.identity(req, cert, _certBytes);
             assertEquals(((p) == null), true);
-            
+
             cert = Mockito.mock(X509Certificate.class);
             Mockito.when(cert.getEncoded()).thenReturn(new byte[128]);
-            
+
             Result<List<CertDAO.Data>> rs = new Result<List<CertDAO.Data>>(null, 1, "test", new Object[0]);
-            
+
             CachedCertDAO cacheDao = Mockito.mock(CachedCertDAO.class);
             Mockito.when(cacheDao.read(Mockito.any(AuthzTrans.class),Mockito.any(Object[].class))).thenReturn(rs);
             DirectCertIdentity.set(cacheDao);
             p = directCertIdentity.identity(req, cert, _certBytes);
-            
+
             _certBytes = new byte[128];
             List<CertDAO.Data> dataAL = new ArrayList<>();
             CertDAO.Data data = new CertDAO.Data();
@@ -86,7 +86,7 @@ public class JU_DirectCertIdentity {
             DirectCertIdentity.set(cacheDao);
             p = directCertIdentity.identity(req, cert, _certBytes);
             assertTrue(p.toString().contains("X509 Authentication for null"));
-            
+
             cert = null;
             directCertIdentity.identity(req, cert, _certBytes);
         } catch (CertificateException e) {
index 7ac4ed1..d745b14 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,23 +35,23 @@ import org.onap.aaf.cadi.LocatorException;
 import org.onap.aaf.cadi.PropAccess;
 import org.onap.aaf.cadi.config.Config;
 
-@RunWith(MockitoJUnitRunner.class) 
+@RunWith(MockitoJUnitRunner.class)
 public class JU_DirectLocatorCreator {
 
     @Mock
     AuthzEnv env;
-    
+
     @Mock
     LocateDAO locateDAO;
-    
+
     @Mock
     PropAccess access;
-    
+
     @Before
     public void setUp() throws Exception {
         initMocks(this);
     }
-    
+
     @Test
     public void testCreate() {
         Mockito.doReturn(access).when(env).access();
index cf1bd9d..833b897 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -74,12 +74,12 @@ public class JU_DirectRegistrar {
             Mockito.doReturn(rs).when(ldao).update(Mockito.any(), Mockito.any());
             registrarObj = new DirectRegistrar(access, ldao, 9080);
 
-        
+
             org.onap.aaf.auth.layer.Result<Void> retVal1 = new Result<Void>(null, 0, "test", new Object[0]);
             Mockito.doReturn(trans).when(env).newTransNoAvg();
             // Mockito.doReturn(retVal1).when(ldao).update(trans,locate);
             registrarObj.update(env);
-    
+
             rs = new org.onap.aaf.auth.layer.Result<Void>(null, 1, "test", new Object[0]);
             Mockito.doReturn(rs).when(ldao).update(Mockito.any(), Mockito.any());
             registrarObj = new DirectRegistrar(access, ldao, 9080);
@@ -100,7 +100,7 @@ public class JU_DirectRegistrar {
             Mockito.doReturn("20").when(access).getProperty(Config.AAF_LOCATOR_CONTAINER, "");
             Mockito.doReturn("20,test,test").when(access).getProperty(Config.AAF_LOCATOR_ENTRIES, "");
             registrarObj = new DirectRegistrar(access, ldao, 9080);
-            
+
             org.onap.aaf.auth.layer.Result<Void> rs = new org.onap.aaf.auth.layer.Result<Void>(null, 1, "test", new Object[0]);
             Mockito.doReturn(rs).when(ldao).delete(Mockito.any(), Mockito.any(), Mockito.anyBoolean());
         } catch (CadiException e) {
index aadb165..d7571ab 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -92,12 +92,12 @@ public class AAF_CM extends AbsService<AuthzEnv, AuthzTrans> {
     }
     /**
      * Construct AuthzAPI with all the Context Supporting Routes that Authz needs
-     * 
+     *
      * @param env
-     * @param si 
-     * @param dm 
-     * @param decryptor 
-     * @throws APIException 
+     * @param si
+     * @param dm
+     * @param decryptor
+     * @throws APIException
      */
     public AAF_CM(AuthzEnv env) throws Exception {
         super(env.access(),env);
@@ -109,7 +109,7 @@ public class AAF_CM extends AbsService<AuthzEnv, AuthzTrans> {
         if (aafEnv==null) {
             throw new APIException("aaf_env needs to be set");
         }
-        
+
         // Check for allowing /tmp in Properties
         String allowTmp = env.getProperty(CM_ALLOW_TMP);
         if("true".equalsIgnoreCase(allowTmp)) {
@@ -132,7 +132,7 @@ public class AAF_CM extends AbsService<AuthzEnv, AuthzTrans> {
             String key = es.getKey().toString();
             if (key.startsWith(CA.CM_CA_PREFIX)) {
                 int idx = key.indexOf('.');
-                if (idx==key.lastIndexOf('.')) { // else it's a regular property 
+                if (idx==key.lastIndexOf('.')) { // else it's a regular property
                     env.log(Level.INIT, "Loading Certificate Authority Module: " + key.substring(idx+1));
                     String[] segs = Split.split(',', env.getProperty(key));
                     if (segs.length>0) {
@@ -149,7 +149,7 @@ public class AAF_CM extends AbsService<AuthzEnv, AuthzTrans> {
                         pinst[0]=env;
                         pinst[1]= key.substring(idx+1);
                         pinst[2]= aafEnv;
-                        pinst[3] = multiParams; 
+                        pinst[3] = multiParams;
                         try {
                             CA ca = cons.newInstance(pinst);
                             certAuths.put(ca.getName(),ca);
@@ -170,7 +170,7 @@ public class AAF_CM extends AbsService<AuthzEnv, AuthzTrans> {
         }
         // note: Service knows how to shutdown Cluster on Shutdown, etc.  See Constructor
         facade1_0 = FacadeFactory.v1_0(this,trans, service,Data.TYPE.JSON);   // Default Facade
-        facade1_0_XML = FacadeFactory.v1_0(this,trans,service,Data.TYPE.XML); 
+        facade1_0_XML = FacadeFactory.v1_0(this,trans,service,Data.TYPE.XML);
 
 
         synchronized(env) {
@@ -194,19 +194,19 @@ public class AAF_CM extends AbsService<AuthzEnv, AuthzTrans> {
     public CA getCA(String key) {
         return certAuths.get(key);
     }
-    
+
 
     /**
      * Setup XML and JSON implementations for each supported Version type
-     * 
+     *
      * We do this by taking the Code passed in and creating clones of these with the appropriate Facades and properties
      * to do Versions and Content switches
-     * 
+     *
      */
     public void route(HttpMethods meth, String path, API api, Code code) throws Exception {
         String version = "1.0";
         // Get Correct API Class from Mapper
-        Class<?> respCls = facade1_0.mapper().getClass(api); 
+        Class<?> respCls = facade1_0.mapper().getClass(api);
         if (respCls==null) throw new Exception("Unknown class associated with " + api.getClass().getName() + ' ' + api.name());
         // setup Application API HTML ContentTypes for JSON and Route
         String application = applicationJSON(respCls, version);
index d32b67a..dbc63ad 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,7 +35,7 @@ public class LocalCAImpl extends CA {
         super(access, caName, env);
         // TODO Auto-generated constructor stub
     }
-    
+
     public LocalCAImpl(Access access, final String name, final String env, final String[][] params) throws IOException, CertException {
         super(access, name, env);
     }
index a3a3060..8ba4b12 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,7 +34,7 @@ import org.onap.aaf.auth.rserv.HttpMethods;
 
 /**
  * API Deployment Artifact Apis.. using Redirect for mechanism
- * 
+ *
  * @author Jonathan
  *
  */
@@ -43,7 +43,7 @@ public class API_Artifact {
   private static final String CERT_ARTIFACTS = "/cert/artifacts";
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param cmAPI
      * @throws Exception
      */
@@ -79,7 +79,7 @@ public class API_Artifact {
         cmAPI.route(HttpMethods.GET, "/cert/artifacts/:mechid/:machine", API.ARTIFACTS, new Code(cmAPI,GET_ARTIFACTS) {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.readArtifacts(trans, resp, pathParam(req,":mechid"), pathParam(req,":machine"));
                 if (r.isOK()) {
                     resp.setStatus(HttpStatus.OK_200);
@@ -88,8 +88,8 @@ public class API_Artifact {
                 }
             }
         });
-        
-        
+
+
         cmAPI.route(HttpMethods.PUT, CERT_ARTIFACTS, API.ARTIFACTS, new Code(cmAPI,"Update Artifacts") {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
@@ -105,7 +105,7 @@ public class API_Artifact {
         cmAPI.route(HttpMethods.DELETE, "/cert/artifacts/:mechid/:machine", API.VOID, new Code(cmAPI,"Delete Artifacts") {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
-                Result<Void> r = context.deleteArtifacts(trans, resp, 
+                Result<Void> r = context.deleteArtifacts(trans, resp,
                         pathParam(req, ":mechid"), pathParam(req,":machine"));
                 if (r.isOK()) {
                     resp.setStatus(HttpStatus.OK_200);
@@ -114,7 +114,7 @@ public class API_Artifact {
                 }
             }
         });
-        
+
 
         cmAPI.route(HttpMethods.DELETE, CERT_ARTIFACTS, API.VOID, new Code(cmAPI,"Delete Artifacts") {
             @Override
@@ -127,7 +127,7 @@ public class API_Artifact {
                 }
             }
         });
-        
+
 
     }
 }
index 6835441..0f239ad 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,7 +36,7 @@ import org.onap.aaf.misc.env.Slot;
 
 /**
  * API Apis.. using Redirect for mechanism
- * 
+ *
  * @author Jonathan
  *
  */
@@ -46,7 +46,7 @@ public class API_Cert {
 
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param aafCM
      * @param facade
      * @throws Exception
@@ -54,7 +54,7 @@ public class API_Cert {
     public static void init(final AAF_CM aafCM) throws Exception {
         // Check for Created Certificate Authorities in TRANS
         sCertAuth = aafCM.env.slot(CERT_AUTH);
-        
+
         ////////
         // Overall APIs
         ///////
@@ -76,7 +76,7 @@ public class API_Cert {
                 }
             }
         });
-        
+
         aafCM.route(HttpMethods.GET,"/cert/:ca/personal",API.CERT,new Code(aafCM,"Request Personal Certificate") {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
@@ -96,9 +96,9 @@ public class API_Cert {
             }
         });
 
-        
+
         /**
-         * 
+         *
          */
         aafCM.route(HttpMethods.GET, "/cert/may/:perm", API.VOID, new Code(aafCM,"Check Permission") {
             @Override
@@ -114,10 +114,10 @@ public class API_Cert {
         });
 
         /**
-         * Get Cert by ID and Machine 
+         * Get Cert by ID and Machine
          */
 
-        
+
         /**
          * Get Certs by ID
          */
@@ -133,10 +133,10 @@ public class API_Cert {
             }
         });
 
-        
+
         /**
          * Get Certs by Machine
          */
-        
+
     }
 }
index ab30462..13876b1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,11 +54,11 @@ public abstract class CA {
 
     public static final Set<String> EMPTY = Collections.unmodifiableSet(new HashSet<>());
 
-    
+
     private final String name;
     private final String env;
     private MessageDigest messageDigest;
-    private final String permNS; 
+    private final String permNS;
     private final String permType;
     private final ArrayList<String> idDomains;
     private String[] trustedCAs;
@@ -71,7 +71,7 @@ public abstract class CA {
         trustedCAs = new String[4]; // starting array
         this.name = caName;
         this.env = env;
-        this.env_tag = env==null || env.isEmpty()?false: 
+        this.env_tag = env==null || env.isEmpty()?false:
                 Boolean.parseBoolean(access.getProperty(CM_CA_ENV_TAG, Boolean.FALSE.toString()));
         permNS=null;
         String prefix = CM_CA_PREFIX + name;
@@ -80,9 +80,9 @@ public abstract class CA {
             throw new CertException(prefix + ".perm_type" + MUST_EXIST_TO_CREATE_CSRS_FOR + caName);
         }
         caIssuerDNs = Split.splitTrim(':', access.getProperty(Config.CADI_X509_ISSUERS, null));
-        
+
         String tag = CA.CM_CA_PREFIX+caName+CA.CM_CA_BASE_SUBJECT;
-        
+
         String fields = access.getProperty(tag, null);
         if (fields==null) {
             throw new CertException(tag + MUST_EXIST_TO_CREATE_CSRS_FOR + caName);
@@ -94,7 +94,7 @@ public abstract class CA {
                 throw new CertException("email address is not allowed in " + CM_CA_BASE_SUBJECT);
             }
         }
-        
+
         idDomains = new ArrayList<>();
         StringBuilder sb = null;
         for (String s : Split.splitTrim(',', access.getProperty(CA.CM_CA_PREFIX+caName+".idDomains", ""))) {
@@ -111,7 +111,7 @@ public abstract class CA {
         if (sb!=null) {
             access.printf(Level.INIT, "CA '%s' supports Personal Certificates for %s", caName, sb);
         }
-        
+
         String dataDir = access.getProperty(CM_PUBLIC_DIR,null);
         if (dataDir!=null) {
             File data = new File(dataDir);
@@ -132,7 +132,7 @@ public abstract class CA {
                             FileInputStream fis = new FileInputStream(crt);
                             try {
                                 int read = fis.read(bytes);
-                                if (read>0) {    
+                                if (read>0) {
                                     addTrustedCA(new String(bytes));
                                 }
                             } finally {
@@ -166,7 +166,7 @@ public abstract class CA {
             caIssuerDNs = newsa;
         }
     }
-    
+
     protected synchronized void addTrustedCA(final String crtString) {
         String crt;
         if (crtString.endsWith("\n")) {
@@ -185,19 +185,19 @@ public abstract class CA {
         temp[trustedCAs.length]=crt;
         trustedCAs = temp;
     }
-    
+
     public String[] getCaIssuerDNs() {
         return caIssuerDNs;
     }
-    
+
     public String[] getTrustedCAs() {
         return trustedCAs;
     }
-    
+
     public boolean shouldAddEnvTag() {
-        return env_tag; 
+        return env_tag;
     }
-    
+
     public String getEnv() {
         return env;
     }
@@ -213,16 +213,16 @@ public abstract class CA {
     public String getName() {
         return name;
     }
-    
-    
+
+
     public String getPermNS() {
         return permNS;
     }
-    
+
     public String getPermType() {
         return permType;
     }
-    
+
     public abstract X509andChain sign(Trans trans, CSRMeta csrmeta) throws IOException, CertException;
 
     /* (non-Javadoc)
index 4dd4919..e7b4ef4 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -71,20 +71,20 @@ public class JscepCA extends CA {
          super(access, name, env);
          mxcwiS = new ConcurrentHashMap<>();
          mxcwiC = new ConcurrentHashMap<>();
-         
+
          if (params.length<2) {
              throw new CertException("No Trust Chain parameters are included");
-         } 
+         }
          if (params[0].length<2) {
              throw new CertException("User/Password required for JSCEP");
          }
          final String id = params[0][0];
-         final String pw = params[0][1]; 
-        
+         final String pw = params[0][1];
+
         // Set this for NTLM password Microsoft
         Authenticator.setDefault(new Authenticator() {
-            @Override  
-               public PasswordAuthentication getPasswordAuthentication () {
+            @Override
+            public PasswordAuthentication getPasswordAuthentication () {
                     try {
                         return new PasswordAuthentication (id,access.decrypt(pw,true).toCharArray());
                     } catch (IOException e) {
@@ -93,16 +93,16 @@ public class JscepCA extends CA {
                     return null;
               }
         });
-        
+
         StringBuilder urlstr = new StringBuilder();
 
         for (int i=1;i<params.length;++i) { // skip first section, which is user/pass
-            // Work 
+            // Work
             if (i>1) {
                 urlstr.append(','); // delimiter
             }
             urlstr.append(params[i][0]);
-            
+
             String dir = access.getProperty(CM_PUBLIC_DIR, "");
             if (!"".equals(dir) && !dir.endsWith("/")) {
                 dir = dir + '/';
@@ -125,12 +125,12 @@ public class JscepCA extends CA {
                     }
                 }
             }
-        }        
+        }
         clients = new JscepClientLocator(access,urlstr.toString());
     }
 
     // package on purpose
-    
+
     @Override
     public X509ChainWithIssuer sign(Trans trans, CSRMeta csrmeta) throws IOException, CertException {
         TimeTaken tt = trans.start("Generating CSR and Keys for New Certificate", Env.SUB);
@@ -139,14 +139,14 @@ public class JscepCA extends CA {
             csr = csrmeta.generateCSR(trans);
             if (trans.info().isLoggable()) {
                 trans.info().log(BCFactory.toString(csr));
-            } 
+            }
             if (trans.info().isLoggable()) {
                 trans.info().log(csr);
             }
         } finally {
             tt.done();
         }
-        
+
         tt = trans.start("Enroll CSR", Env.SUB);
         Client client = null;
         Item item = null;
@@ -154,13 +154,13 @@ public class JscepCA extends CA {
             try {
                 item = clients.best();
                 client = clients.get(item);
-                
+
                 EnrollmentResponse er = client.enrol(
                         csrmeta.initialConversationCert(trans),
                         csrmeta.keypair(trans).getPrivate(),
                         csr,
                         MS_PROFILE /* profile... MS can't deal with blanks*/);
-                
+
                 while (true) {
                     if (er.isSuccess()) {
                         trans.checkpoint("Cert from " + clients.info(item));
@@ -186,7 +186,7 @@ public class JscepCA extends CA {
                 i=MAX_RETRY;
             } catch (ClientException e) {
                 trans.error().log(e,"SCEP Client Error, Temporarily Invalidating Client: " + clients.info(item));
-                try  { 
+                try  {
                     clients.invalidate(client);
                     if (!clients.hasItems()) {
                         clients.refresh();
@@ -202,13 +202,13 @@ public class JscepCA extends CA {
                 tt.done();
             }
         }
-        
+
         return null;
     }
-    
+
     /**
      * Locator specifically for Jscep Clients.
-     * 
+     *
      * Class based client for access to common Map
      */
     private class JscepClientLocator extends HotPeerLocator<Client> {
@@ -225,10 +225,7 @@ public class JscepCA extends CA {
             try {
                 String[] info = Split.split('/', urlinfo);
                 Client c = new Client(new URL(JscepCA.CA_PREFIX + info[0] + JscepCA.CA_POSTFIX),
-                        cert -> {
-                            //TODO checkIssuer
-                            return true;
-                        }
+                        cert -> true
                 );
                 // Map URL to Client, because Client doesn't expose Connection
                 mxcwiC.put(c, mxcwiS.get(urlinfo));
@@ -247,7 +244,7 @@ public class JscepCA extends CA {
         protected void _destroy(Client client) {
             mxcwiC.remove(client);
         }
-        
-        
+
+
     }
 }
index c51ddbd..c2d6701 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -79,22 +79,22 @@ public class LocalCA extends CA {
                 KeyPurposeId.id_kp_serverAuth, // WebServer
                 KeyPurposeId.id_kp_clientAuth // WebClient
                 };
-    
+
     private final PrivateKey caKey;
     private final X500Name issuer;
     private BigInteger serial;
     private final X509ChainWithIssuer x509cwi; // "Cert" is CACert
-    
-    
+
+
     public LocalCA(Access access, final String name, final String env, final String[][] params) throws IOException, CertException {
         super(access, name, env);
-    
+
         serial = new BigInteger(64,new SecureRandom());
 
         if (params.length<1 || params[0].length<2) {
             throw new IOException("LocalCA expects cm_ca.<ca name>=org.onap.aaf.auth.cm.ca.LocalCA,<full path to key file>[;<Full Path to Trust Chain, ending with actual CA>]+");
         }
-        
+
         // Read in the Private Key
         String configured;
         File f = new File(params[0][0]);
@@ -145,7 +145,7 @@ public class LocalCA extends CA {
                     } else {
                         throw new CertException("Unknown Keystore type from filename " + fileName);
                     }
-                    
+
                     KeyStore.ProtectionParameter keyPass;
 
                     try {
@@ -174,7 +174,7 @@ public class LocalCA extends CA {
                     }
                     PrivateKeyEntry privateKeyEntry = (PrivateKeyEntry)entry;
                     caKey = privateKeyEntry.getPrivateKey();
-                    
+
                     x509cwi = new X509ChainWithIssuer(privateKeyEntry.getCertificateChain());
                     configured =  "keystore \"" + fileName + "\", alias " + params[0][1];
                 } catch (KeyStoreException | NoSuchAlgorithmException | CertificateException | UnrecoverableEntryException e) {
@@ -184,7 +184,7 @@ public class LocalCA extends CA {
         } else {
             throw new CertException("Private Key, " + f.getPath() + ", does not exist");
         }
-        
+
         X500NameBuilder xnb = new X500NameBuilder();
         List<RDN> rp = RDN.parse(',', x509cwi.getIssuerDN());
         Collections.reverse(rp);
@@ -209,12 +209,12 @@ public class LocalCA extends CA {
         TimeTaken tt = trans.start("Create/Sign Cert",Env.SUB);
         try {
             BigInteger bi;
-            
+
             synchronized(ONE) {
                 bi = serial;
                 serial = serial.add(ONE);
             }
-                
+
             RSAPublicKey rpk = (RSAPublicKey)csrmeta.keypair(trans).getPublic();
             X509v3CertificateBuilder xcb = new X509v3CertificateBuilder(
                     issuer,
@@ -238,7 +238,7 @@ public class LocalCA extends CA {
                                 ))
                     .addExtension(Extension.keyUsage,
                         true, new KeyUsage(KeyUsage.digitalSignature
-                                         | KeyUsage.keyEncipherment 
+                                         | KeyUsage.keyEncipherment
                                          | KeyUsage.nonRepudiation))
                     .addExtension(Extension.extendedKeyUsage,
                                   true, new ExtendedKeyUsage(ASN_WebUsage))
@@ -250,8 +250,8 @@ public class LocalCA extends CA {
                             false, new GeneralNames(sans))
 //                    .addExtension(MiscObjectIdentifiers.netscape, true, new NetscapeCertType(
 //                            NetscapeCertType.sslClient|NetscapeCertType.sslClient))
-                    ;                    
-    
+                    ;
+
             x509 = new JcaX509CertificateConverter().getCertificate(
                     xcb.build(BCFactory.contentSigner(caKey)));
         } catch (GeneralSecurityException|OperatorCreationException e) {
@@ -259,7 +259,7 @@ public class LocalCA extends CA {
         } finally {
             tt.done();
         }
-        
+
         return new X509andChain(x509,x509cwi.trustChain);
     }
 
index 30495d0..32fd906 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,13 +34,12 @@ import org.onap.aaf.cadi.configure.Factory;
 
 public class X509ChainWithIssuer extends X509andChain {
     private String issuerDN;
-    public X509Certificate caX509;
 
     public X509ChainWithIssuer(X509ChainWithIssuer orig, X509Certificate x509) {
         super(x509,orig.trustChain);
-        issuerDN=orig.issuerDN;        
+        issuerDN=orig.issuerDN;
     }
-    
+
     public X509ChainWithIssuer(final List<? extends Reader> rdrs) throws IOException, CertException {
         // Trust Chain.  Last one should be the CA
         Collection<? extends Certificate> certs;
@@ -49,7 +48,7 @@ public class X509ChainWithIssuer extends X509andChain {
             if (rdr==null) { // cover for badly formed array
                 continue;
             }
-            
+
             byte[] bytes = Factory.decode(rdr,null);
             try {
                 certs = Factory.toX509Certificate(bytes);
@@ -70,7 +69,7 @@ public class X509ChainWithIssuer extends X509andChain {
             }
         }
     }
-    
+
     public X509ChainWithIssuer(Certificate[] certs) throws IOException, CertException {
         X509Certificate x509;
         for (int i=certs.length-1; i>=0; --i) {
@@ -79,8 +78,8 @@ public class X509ChainWithIssuer extends X509andChain {
             if (subject!=null) {
                 addTrustChainEntry(x509);
                 if (i==0) { // last one is signer
-                    cert=x509; 
-                    issuerDN= subject.toString(); 
+                    cert=x509;
+                    issuerDN= subject.toString();
                 }
             }
         }
index 9a0e1c0..b05747b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,21 +30,21 @@ import org.onap.aaf.cadi.configure.Factory;
 
 
 /**
- * Have to put the Cert and resulting Trust Chain together. 
+ * Have to put the Cert and resulting Trust Chain together.
  * Treating them separately has caused issues
- * 
+ *
  * @author JonathanGathman
  *
  */
 public class X509andChain {
     protected X509Certificate cert;
     protected String[] trustChain;
-    
+
     public X509andChain() {
         cert = null;
         trustChain = null;
     }
-    
+
     public X509andChain(X509Certificate cert, String[] tc) {
         this.cert = cert;
         trustChain=tc;
@@ -55,8 +55,8 @@ public class X509andChain {
         trustChain = new String[chain.size()+1];
         chain.toArray(trustChain);
     }
-    
-    
+
+
     public void addTrustChainEntry(X509Certificate x509) throws IOException, CertException {
         if (trustChain==null) {
             trustChain = new String[] {Factory.toString(NullTrans.singleton(),x509)};
@@ -67,14 +67,14 @@ public class X509andChain {
             trustChain=temp;
         }
     }
-    
+
 
     public X509Certificate getX509() {
         return cert;
     }
-    
+
     public String[] getTrustChain() {
         return trustChain;
     }
-    
+
 }
index b84816a..9715422 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,7 +47,7 @@ import org.onap.aaf.misc.env.Trans;
 /**
  * Additional Factory mechanisms for CSRs, and BouncyCastle.  The main Factory
  * utilizes only Java abstractions, and is useful in Client code.
- * 
+ *
  * @author JonathanGathman
  *
  */
@@ -59,11 +59,11 @@ public class BCFactory extends Factory {
         // Bouncy
         jcsb = new JcaContentSignerBuilder(Factory.SIG_ALGO);
     }
-    
+
     public static ContentSigner contentSigner(PrivateKey pk) throws OperatorCreationException {
         return jcsb.build(pk);
     }
-    
+
     public static String toString(PKCS10CertificationRequest csr) throws IOException, CertException {
         if (csr==null) {
             throw new CertException("x509 Certificate Request not built");
@@ -89,7 +89,7 @@ public class BCFactory extends Factory {
             tt.done();
         }
     }
-    
+
     public static CSRMeta createCSRMeta(CA ca, String mechid, String sponsorEmail, List<String> fqdns) throws CertException {
         CSRMeta csr = ca.newCSRMeta();
         boolean first = true;
@@ -99,9 +99,9 @@ public class BCFactory extends Factory {
                 first = false;
                 csr.cn(fqdn);
             }
-            csr.san(fqdn); // duplicate CN in SAN, per RFC 5280 section 4.2.1.6 
+            csr.san(fqdn); // duplicate CN in SAN, per RFC 5280 section 4.2.1.6
         }
-        
+
         csr.challenge(new String(Symm.randomGen(24)));
         csr.mechID(mechid);
         csr.email(sponsorEmail);
@@ -111,7 +111,7 @@ public class BCFactory extends Factory {
         }
         return csr;
     }
-    
+
     private static String validateApp(CSRMeta csr) {
         CertmanValidator v = new CertmanValidator();
         if (v.nullOrBlank("cn", csr.cn())
@@ -146,6 +146,6 @@ public class BCFactory extends Factory {
             return null;
         }
     }
-    
+
 
 }
index f67f445..04ba0b8 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -90,15 +90,15 @@ public class CSRMeta {
         }
         return name;
     }
-    
-    
+
+
     public PKCS10CertificationRequest  generateCSR(Trans trans) throws IOException, CertException {
         PKCS10CertificationRequestBuilder builder = new JcaPKCS10CertificationRequestBuilder(x500Name(),keypair(trans).getPublic());
         if (challenge!=null) {
             DERPrintableString password = new DERPrintableString(challenge);
             builder.addAttribute(PKCSObjectIdentifiers.pkcs_9_at_challengePassword, password);
         }
-        
+
         int plus = email==null?0:1;
         if (!sanList.isEmpty()) {
             GeneralName[] gna = new GeneralName[sanList.size()+plus];
@@ -107,7 +107,7 @@ public class CSRMeta {
                 gna[++i]=new GeneralName(GeneralName.dNSName,s);
             }
             gna[++i]=new GeneralName(GeneralName.rfc822Name,email);
-            
+
             builder.addAttribute(
                     PKCSObjectIdentifiers.pkcs_9_at_extensionRequest,
                     new Extensions(new Extension[] {
@@ -122,7 +122,7 @@ public class CSRMeta {
             throw new CertException(e);
         }
     }
-    
+
     @SuppressWarnings("deprecation")
     public static void dump(PKCS10CertificationRequest csr) {
          Attribute[] certAttributes = csr.getAttributes();
@@ -152,7 +152,7 @@ public class CSRMeta {
                  }
          }
     }
-    
+
     public X509Certificate initialConversationCert(Trans trans) throws CertificateException, OperatorCreationException {
         GregorianCalendar gc = new GregorianCalendar();
         Date start = gc.getTime();
@@ -209,15 +209,15 @@ public class CSRMeta {
     public void environment(String env) {
         environment = env;
     }
-    
+
     /**
-     * 
+     *
      * @return
      */
     public String environment() {
         return environment;
     }
-    
+
     /**
      * @return the mechID
      */
@@ -263,5 +263,5 @@ public class CSRMeta {
     public void challenge(String challenge) {
         this.challenge = challenge;
     }
-    
+
 }
index fe4e20f..c43e614 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,7 +35,7 @@ public class RDN {
     public RDN(final String tagValue) throws CertException {
         String[] tv = Split.splitTrim('=',tagValue);
         switch(tv[0]) {
-            case "cn":case "CN":            aoi = BCStyle.CN; 
+            case "cn":case "CN":            aoi = BCStyle.CN;
             break;
             case "c":case "C":            aoi = BCStyle.C;
             break;
@@ -49,21 +49,21 @@ public class RDN {
             break;
             case "dc":case "DC":            aoi = BCStyle.DC;
             break;
-            case "gn":case "GN":            aoi = BCStyle.GIVENNAME; 
+            case "gn":case "GN":            aoi = BCStyle.GIVENNAME;
             break;
-            case "sn":case "SN":            aoi = BCStyle.SN; 
+            case "sn":case "SN":            aoi = BCStyle.SN;
             break;  // surname
             case "email":case "EMAIL":
             case "emailaddress":
             case "EMAILADDRESS":            aoi = BCStyle.EmailAddress;
             break; // should be SAN extension
-            case "initials":                aoi = BCStyle.INITIALS; 
-            break; 
-            case "pseudonym":            aoi = BCStyle.PSEUDONYM; 
+            case "initials":                aoi = BCStyle.INITIALS;
+            break;
+            case "pseudonym":            aoi = BCStyle.PSEUDONYM;
             break;
-            case "generationQualifier":    aoi = BCStyle.GENERATION; 
+            case "generationQualifier":    aoi = BCStyle.GENERATION;
             break;
-            case "serialNumber":            aoi = BCStyle.SERIALNUMBER; 
+            case "serialNumber":            aoi = BCStyle.SERIALNUMBER;
             break;
             default:
                 throw new CertException("Unknown ASN1ObjectIdentifier for " + tv[0] + " in " + tagValue);
@@ -71,7 +71,7 @@ public class RDN {
         tag = tv[0];
         value = tv[1];
     }
-    
+
     /**
      * Parse various forms of DNs into appropriate RDNs, which have the ASN1ObjectIdentifier
      * @param delim
@@ -109,7 +109,7 @@ public class RDN {
         }
         return lrnd;
     }
-    
+
     @Override
     public String toString() {
         return tag + '=' + value;
index 0a9d766..e9e5d44 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 242a18a..55e5a57 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 3e2fb81..7de1994 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,13 +37,13 @@ public class CertReq {
     public List<String> fqdns;
     // Notify
     public List<String> emails;
-    
-    
+
+
     // These may be null
     public String sponsor;
     public XMLGregorianCalendar start;
     public XMLGregorianCalendar end;
-    
+
     public CSRMeta getCSRMeta() throws CertException {
         return BCFactory.createCSRMeta(certAuthority, mechid, sponsor,fqdns);
     }
index 9017763..be0c251 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -37,12 +37,12 @@ public class CertResp {
     private CA ca;
     private KeyPair keyPair;
     private String challenge;
-    
+
     private String privateKey;
     private String certString;
     private String[] trustChain;
     private String[] notes;
-    
+
     public CertResp(Trans trans, CA ca, X509Certificate x509, CSRMeta csrMeta, String[] trustChain, String[] notes) throws IOException, CertException {
         keyPair = csrMeta.keypair(trans);
         privateKey = Factory.toString(trans, keyPair.getPrivate());
@@ -58,35 +58,35 @@ public class CertResp {
         certString = cert;
     }
 
-    
+
     public String asCertString() {
         return certString;
     }
-    
+
     public String privateString() {
         return privateKey;
     }
-    
+
     public String challenge() {
         return challenge==null?"":challenge;
     }
-    
+
     public String[] notes() {
         return notes;
     }
-    
+
     public String[] caIssuerDNs() {
         return ca.getCaIssuerDNs();
     }
-    
+
     public String env() {
         return ca.getEnv();
     }
-    
+
     public String[] trustChain() {
         return trustChain;
     }
-    
+
     public String[] trustCAs() {
         return ca.getTrustedCAs();
     }
index 2a49d3c..3926422 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,14 +33,14 @@ import org.onap.aaf.auth.layer.Result;
 
 
 /**
- *   
+ *
  * @author Jonathan
  *
  */
 public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
 
 /////////////////////  STANDARD ELEMENTS //////////////////
-    /** 
+    /**
      * @param trans
      * @param response
      * @param result
@@ -48,7 +48,7 @@ public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
     void error(AuthzTrans trans, HttpServletResponse response, Result<?> result);
 
     /**
-     * 
+     *
      * @param trans
      * @param response
      * @param status
@@ -62,20 +62,20 @@ public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
      * @param resp
      * @param perm
      * @return
-     * @throws IOException 
+     * @throws IOException
      */
     Result<Void> check(AuthzTrans trans, HttpServletResponse resp, String perm) throws IOException;
 
     /**
-     * 
+     *
      * @return
      */
     public Mapper<REQ,CERT,ARTIFACTS,ERROR> mapper();
 
 /////////////////////  STANDARD ELEMENTS //////////////////
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param resp
      * @param rservlet
@@ -84,7 +84,7 @@ public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
     public abstract Result<Void> requestCert(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, CA ca);
 
     /**
-     * 
+     *
      * @param trans
      * @param resp
      * @param rservlet
@@ -94,7 +94,7 @@ public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
 
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
@@ -103,36 +103,36 @@ public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
     public abstract Result<Void> renewCert(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, boolean withTrust);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
      * @return
      */
     public abstract Result<Void> dropCert(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
-    
+
 
     /**
-     * 
+     *
      * @param trans
      * @param resp
      * @param pathParam
      * @return
      */
     public Result<Void> readCertsByMechID(AuthzTrans trans, HttpServletResponse resp, String mechID);
-    
+
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
      * @return
      */
     Result<Void> createArtifacts(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
@@ -141,7 +141,7 @@ public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
     Result<Void> readArtifacts(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
 
     /**
-     * 
+     *
      * @param trans
      * @param resp
      * @param mechid
@@ -151,16 +151,16 @@ public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
     Result<Void> readArtifacts(AuthzTrans trans, HttpServletResponse resp, String mechid, String machine);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
      * @return
      */
     Result<Void> updateArtifacts(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
@@ -169,7 +169,7 @@ public interface Facade<REQ,CERT,ARTIFACTS,ERROR> {
     Result<Void> deleteArtifacts(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
 
     /**
-     * 
+     *
      * @param trans
      * @param resp
      * @param mechid
index 4a3b5cb..6385965 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,9 +37,9 @@ import certman.v1_0.CertInfo;
  *
  */
 public class Facade1_0 extends FacadeImpl<BaseRequest,CertInfo, Artifacts, Error> {
-    public Facade1_0(AAF_CM certman, 
-                     CMService service, 
-                     Mapper<BaseRequest,CertInfo,Artifacts,Error> mapper, 
+    public Facade1_0(AAF_CM certman,
+                     CMService service,
+                     Mapper<BaseRequest,CertInfo,Artifacts,Error> mapper,
                      Data.TYPE type) throws APIException {
         super(certman, service, mapper, type);
     }
index e9ffb90..1519de1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,7 +35,7 @@ public class FacadeFactory {
                 certman,
                 service,
                 new Mapper1_0(),
-                type);  
+                type);
     }
 
 }
index f381a9e..513b8ea 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -59,7 +59,7 @@ import org.onap.aaf.misc.rosetta.env.RosettaData;
 
 /**
  * AuthzFacade
- * 
+ *
  * This Service Facade encapsulates the essence of the API Service can do, and provides
  * a single created object for elements such as RosettaDF.
  *
@@ -70,14 +70,14 @@ import org.onap.aaf.misc.rosetta.env.RosettaData;
  *         a) In the future, we may support multiple Response Formats, aka JSON or XML, based on User Request.
  * 4) Log Service info, warnings and exceptions as necessary
  * 5) When asked by the API layer, this will create and write Error content to the OutputStream
- * 
- * Note: This Class does NOT set the HTTP Status Code.  That is up to the API layer, so that it can be 
+ *
+ * Note: This Class does NOT set the HTTP Status Code.  That is up to the API layer, so that it can be
  * clearly coordinated with the API Documentation
- * 
+ *
  * @author Jonathan
  *
  */
-public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.auth.layer.FacadeImpl implements Facade<REQ,CERT,ARTIFACTS,ERROR> 
+public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.auth.layer.FacadeImpl implements Facade<REQ,CERT,ARTIFACTS,ERROR>
     {
     private static final String TRUE = "TRUE";
     private static final String REQUEST_CERT = "Request New Certificate";
@@ -100,8 +100,8 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
     private final String voidResp;
 
     public FacadeImpl(AAF_CM certman,
-                      CMService service, 
-                      Mapper<REQ,CERT,ARTIFACTS,ERROR> mapper, 
+                      CMService service,
+                      Mapper<REQ,CERT,ARTIFACTS,ERROR> mapper,
                       Data.TYPE dataType) throws APIException {
         this.service = service;
         this.mapper = mapper;
@@ -120,14 +120,14 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
             voidResp = "application/Void+json;charset=utf-8;version=1.0,application/json;version=1.0,*/*";
         }
     }
-    
+
     public Mapper<REQ,CERT,ARTIFACTS,ERROR> mapper() {
         return mapper;
     }
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#error(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, int)
-     * 
+     *
      * Note: Conforms to AT&T TSS RESTful Error Structure
      */
     @Override
@@ -136,7 +136,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 result.details==null?"":result.details.trim(),
                 result.variables==null?Result.EMPTY_VARS:result.variables);
     }
-        
+
     @Override
     public void error(AuthzTrans trans, HttpServletResponse response, int status, final String _msg, final Object ... _detail) {
         String msgId;
@@ -158,7 +158,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 prefix = "Forbidden";
                 response.setStatus(/*httpstatus=*/403);
                 break;
-                
+
             case 404:
             case ERR_NotFound:
                 msgId = "SVC1404";
@@ -172,21 +172,21 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 prefix = "Not Acceptable";
                 response.setStatus(/*httpstatus=*/406);
                 break;
-                
+
             case 409:
             case ERR_ConflictAlreadyExists:
                 msgId = "SVC1409";
                 prefix = "Conflict Already Exists";
                 response.setStatus(/*httpstatus=*/409);
                 break;
-            
+
             case 501:
             case ERR_NotImplemented:
                 msgId = "SVC1501";
-                prefix = "Not Implemented"; 
+                prefix = "Not Implemented";
                 response.setStatus(/*httpstatus=*/501);
                 break;
-                
+
 
             default:
                 msgId = "SVC1500";
@@ -200,7 +200,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
             StringBuilder holder = new StringBuilder();
             ERROR em = mapper().errorFromMessage(holder, msgId,prefix + ": " + _msg,_detail);
             trans.checkpoint(
-                    "ErrResp [" + 
+                    "ErrResp [" +
                     msgId +
                     "] " +
                     holder.toString(),
@@ -210,7 +210,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 em = mapper().errorFromMessage(holder, msgId, "Server had an issue processing this request");
             }
             errDF.newData(trans).load(em).to(response.getOutputStream());
-            
+
         } catch (Exception e) {
             trans.error().log(e,"unable to send response for",_msg);
         }
@@ -256,12 +256,12 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 trans.error().log("Invalid Input",IN,REQUEST_CERT);
                 return Result.err(Result.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<CertResp> rcr = service.requestCert(trans,mapper.toReq(trans,request), ca);
             if (rcr.notOK()) {
                 return Result.err(rcr);
             }
-            
+
             Result<CERT> rc = mapper.toCert(trans, rcr, withTrust);
             if (rc.status == OK) {
                 RosettaData<CERT> data = certDF.newData(trans).load(rc.value);
@@ -279,7 +279,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
             tt.done();
         }
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.cm.facade.Facade#requestPersonalCert(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean)
      */
@@ -300,7 +300,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 trans.error().log("Invalid Input",IN,RENEW_CERT);
                 return Result.err(Result.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<CertResp> rcr = service.renewCert(trans,mapper.toRenew(trans,request));
             Result<CERT> rc = mapper.toCert(trans, rcr, withTrust);
 
@@ -333,7 +333,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 trans.error().log("Invalid Input",IN,DROP_CERT);
                 return Result.err(Result.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<Void> rv = service.dropCert(trans,mapper.toDrop(trans, request));
             if (rv.status == OK) {
                 setContentType(resp, certRequestDF.getOutType());
@@ -387,7 +387,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 trans.error().log("Invalid Input",IN,CREATE_ARTIFACTS);
                 return Result.err(Result.ERR_BadData,"Invalid Input");
             }
-            
+
             return service.createArtifact(trans,mapper.toArtifact(trans,arti));
         } catch (Exception e) {
 
@@ -405,7 +405,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
             String mechid = req.getParameter("mechid");
             String machine = req.getParameter("machine");
             String ns = req.getParameter("ns");
-            
+
             Result<ARTIFACTS> ra;
             if ( machine !=null && mechid == null) {
                 ra = mapper.fromArtifacts(service.readArtifactsByMachine(trans, machine));
@@ -422,7 +422,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
             } else {
                 ra = Result.err(Status.ERR_BadData,"Invalid request inputs");
             }
-            
+
             if (ra.isOK()) {
                 RosettaData<ARTIFACTS> data = artiDF.newData(trans).load(ra.value);
                 data.to(resp.getOutputStream());
@@ -477,7 +477,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 trans.error().log("Invalid Input",IN,UPDATE_ARTIFACTS);
                 return Result.err(Result.ERR_BadData,"Invalid Input");
             }
-            
+
             return service.updateArtifact(trans,mapper.toArtifact(trans,arti));
         } catch (Exception e) {
             trans.error().log(e,IN,UPDATE_ARTIFACTS);
@@ -499,7 +499,7 @@ public abstract class FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> extends org.onap.aaf.
                 trans.error().log("Invalid Input",IN,DELETE_ARTIFACTS);
                 return Result.err(Result.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<Void> rv = service.deleteArtifact(trans,mapper.toArtifact(trans,arti));
             if (rv.status == OK) {
                 setContentType(resp, artiDF.getOutType());
index 4a7019d..90d1cf3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,19 +36,19 @@ import org.onap.aaf.auth.layer.Result;
 public interface Mapper<REQ,CERT,ARTIFACTS,ERROR>
 {
     public enum API{ERROR,VOID,CERT,CERT_REQ,CERT_RENEW,CERT_DROP,ARTIFACTS};
-    
+
     public Class<?> getClass(API api);
     public<A> A newInstance(API api);
 
     public ERROR errorFromMessage(StringBuilder holder, String msgID, String text, Object ... detail);
-    
+
     public Result<CERT> toCert(AuthzTrans trans, Result<CertResp> in, boolean withTrustChain) throws IOException;
     public Result<CERT> toCert(AuthzTrans trans, Result<List<CertDAO.Data>> in);
 
     public Result<CertReq> toReq(AuthzTrans trans, REQ req);
     public Result<CertRenew> toRenew(AuthzTrans trans, REQ req);
     public Result<CertDrop>  toDrop(AuthzTrans trans, REQ req);
-    
+
     public List<ArtiDAO.Data> toArtifact(AuthzTrans trans, ARTIFACTS arti);
     public Result<ARTIFACTS> fromArtifacts(Result<List<ArtiDAO.Data>> readArtifactsByMachine);
 }
index bce7ecc..bf5665a 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -50,7 +50,7 @@ import certman.v1_0.CertificateRequest;
 
 
 public class Mapper1_0 implements Mapper<BaseRequest,CertInfo,Artifacts,Error> {
-    
+
     @Override
     public Class<?> getClass(API api) {
         switch(api) {
@@ -233,7 +233,7 @@ public class Mapper1_0 implements Mapper<BaseRequest,CertInfo,Artifacts,Error> {
             data.ns = trim(arti.getNs());
             data.renewDays = arti.getRenewDays();
             data.notify = trim(arti.getNotification());
-            
+
             // Ignored on way in for create/update
             data.sponsor = (arti.getSponsor());
             if(arti.getSans()!=null) {
@@ -279,8 +279,8 @@ public class Mapper1_0 implements Mapper<BaseRequest,CertInfo,Artifacts,Error> {
             return Result.err(lArtiDAO);
         }
     }
-    
-    
+
+
 
     private String trim(String s) {
         if(s==null) {
index 283c828..501fbcf 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,7 +49,7 @@ import certman.v1_0.CertificateRequest;
 
 
 public class Mapper2_0 implements Mapper<BaseRequest,CertInfo,Artifacts,Error> {
-    
+
     @Override
     public Class<?> getClass(API api) {
         switch(api) {
@@ -127,7 +127,7 @@ public class Mapper2_0 implements Mapper<BaseRequest,CertInfo,Artifacts,Error> {
                 }
                 cout.setNotes(sb.toString());
             }
-            
+
             List<String> caIssuerDNs = cout.getCaIssuerDNs();
             for (String s : cin.caIssuerDNs()) {
                 caIssuerDNs.add(s);
@@ -224,7 +224,7 @@ public class Mapper2_0 implements Mapper<BaseRequest,CertInfo,Artifacts,Error> {
             data.ns = trim(arti.getNs());
             data.renewDays = arti.getRenewDays();
             data.notify = trim(arti.getNotification());
-            
+
             // Ignored on way in for create/update
             data.sponsor = trim(arti.getSponsor());
             data.expires = null;
@@ -274,7 +274,7 @@ public class Mapper2_0 implements Mapper<BaseRequest,CertInfo,Artifacts,Error> {
             return Result.err(lArtiDAO);
         }
     }
-    
-    
+
+
 
 }
\ No newline at end of file
index aa145f1..c85b4ca 100644 (file)
@@ -3,7 +3,7 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2018 IBM.
+ * Modifications Copyright (C) 2019 IBM.
  * ===========================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -80,7 +80,7 @@ public class CMService {
     // Limit total requests
     private static final int MAX_X509s = 200; // Need a "LIMIT Exception" DB.
     private static final String MAX_X509S_TAG = "cm_max_x509s"; // be able to adjust limit in future
-    
+
     public static final String REQUEST = "request";
     public static final String IGNORE_IPS = "ignoreIPs";
     public static final String RENEW = "renew";
@@ -153,25 +153,25 @@ public class CMService {
             boolean dynamic_sans = false;
 
             if(req.value.fqdns.isEmpty()) {
-               fqdns = new ArrayList<>();
+                fqdns = new ArrayList<>();
             } else {
-               // Only Template or Dynamic permitted to pass in FQDNs
-               if (req.value.fqdns.get(0).startsWith("*")) { // Domain set
+                // Only Template or Dynamic permitted to pass in FQDNs
+                if (req.value.fqdns.get(0).startsWith("*")) { // Domain set
                     if (trans.fish(new AAFPermission(null,ca.getPermType(), ca.getName(), DOMAIN))) {
-                       domain_based = true;
+                        domain_based = true;
                     } else {
                         return Result.err(Result.ERR_Denied,
                               "Domain based Authorizations (" + req.value.fqdns.get(0) + ") requires Exception");
                     }
-               } else {
-                       if(trans.fish(new AAFPermission(null, ca.getPermType(), ca.getName(),DYNAMIC_SANS))) {
-                               dynamic_sans = true;
-                       } else {
+                } else {
+                    if(trans.fish(new AAFPermission(null, ca.getPermType(), ca.getName(),DYNAMIC_SANS))) {
+                        dynamic_sans = true;
+                    } else {
                         return Result.err(Result.ERR_Denied,
-                            "Dynamic SANs for (" + req.value.mechid + ") requires Permission");                                
-                       }
-               }
-               fqdns = new ArrayList<>(req.value.fqdns);
+                            "Dynamic SANs for (" + req.value.mechid + ") requires Permission");
+                    }
+                }
+                fqdns = new ArrayList<>(req.value.fqdns);
             }
 
             String email = null;
@@ -185,7 +185,7 @@ public class CMService {
                 } else {
                     ignoreIPs = false;
                 }
-                
+
 
                 InetAddress primary = null;
                 // Organize incoming information to get to appropriate Artifact
@@ -197,8 +197,8 @@ public class CMService {
                         String domain = fqdns.get(0).substring(1); // starts with *, see above
                         fqdns.remove(0);
                         if (fqdns.isEmpty()) {
-                            return Result.err(Result.ERR_Denied, 
-                               "Requests using domain require machine declaration");
+                            return Result.err(Result.ERR_Denied,
+                                "Requests using domain require machine declaration");
                         }
 
                         if (!ignoreIPs) {
@@ -212,7 +212,7 @@ public class CMService {
                         }
 
                     } else {
-                       // Passed in FQDNs, but not starting with *
+                        // Passed in FQDNs, but not starting with *
                         if (!ignoreIPs) {
                             for (String cn : req.value.fqdns) {
                                 try {
@@ -254,37 +254,37 @@ public class CMService {
                         return Result.err(Result.ERR_Denied,"Authorization must not include SANS when doing Dynamic SANS (%s, %s)", req.value.mechid, key);
                     }
                 } else {
-                       if(domain_based) {
-                           ra = artiDAO.read(trans, req.value.mechid, key);
-                           if (ra.isOKhasData()) { // is the Template available?
-                               add = ra.value.get(0);
-                               add.machine = host;
-                               for (String s : fqdns) {
-                                   if (!s.equals(add.machine)) {
-                                       add.sans(true).add(s);
-                                   }
-                               }
-                               Result<ArtiDAO.Data> rc = artiDAO.create(trans, add); // Create new Artifact from Template
-                               if (rc.notOK()) {
-                                   return Result.err(rc);
-                               }
-                           } else {
-                               return Result.err(Result.ERR_Denied,"No Authorization Template for %s, %s", req.value.mechid, key);
-                           }
-                       } else {
+                    if(domain_based) {
+                        ra = artiDAO.read(trans, req.value.mechid, key);
+                        if (ra.isOKhasData()) { // is the Template available?
+                            add = ra.value.get(0);
+                            add.machine = host;
+                            for (String s : fqdns) {
+                                if (!s.equals(add.machine)) {
+                                    add.sans(true).add(s);
+                                }
+                            }
+                            Result<ArtiDAO.Data> rc = artiDAO.create(trans, add); // Create new Artifact from Template
+                            if (rc.notOK()) {
+                                return Result.err(rc);
+                            }
+                        } else {
+                            return Result.err(Result.ERR_Denied,"No Authorization Template for %s, %s", req.value.mechid, key);
+                        }
+                    } else {
                         return Result.err(Result.ERR_Denied,"No Authorization found for %s, %s", req.value.mechid, key);
-                       }
+                    }
                 }
 
                 // Add Artifact listed FQDNs
                 if(!dynamic_sans) {
-                       if (add.sans != null) {
-                           for (String s : add.sans) {
-                               if (!fqdns.contains(s)) {
-                                   fqdns.add(s);
-                               }
-                           }
-                       }
+                    if (add.sans != null) {
+                        for (String s : add.sans) {
+                            if (!fqdns.contains(s)) {
+                                fqdns.add(s);
+                            }
+                        }
+                    }
                 }
 
                 // Policy 2: If Config marked as Expired, do not create or renew
@@ -334,12 +334,10 @@ public class CMService {
                             trans.error().log("CMService var primary is null");
                         } else {
                             String fg = fqdns.get(i);
-                            if (fg!=null && primary!=null && fg.equals(primary.getHostName())) {
-                                if (i != 0) {
+                            if ((fg!=null && primary!=null && fg.equals(primary.getHostName()))&&(i != 0)) {
                                     String tmp = fqdns.get(0);
                                     fqdns.set(0, primary.getHostName());
                                     fqdns.set(i, tmp);
-                                }
                             }
                         }
                     }
@@ -354,7 +352,7 @@ public class CMService {
             try {
                 csrMeta = BCFactory.createCSRMeta(ca, req.value.mechid, email, fqdns);
                 csrMeta.environment(ca.getEnv());
-                
+
                 // Before creating, make sure they don't have too many
                 if(!trans.fish(limitOverridePerm)) {
                     Result<List<CertDAO.Data>> existing = certDAO.readID(trans, req.value.mechid);
@@ -392,7 +390,7 @@ public class CMService {
                 cdd.id = req.value.mechid;
                 cdd.x500 = x509.getSubjectDN().getName();
                 cdd.x509 = Factory.toString(trans, x509);
-                
+
                 certDAO.create(trans, cdd);
 
                 CredDAO.Data crdd = new CredDAO.Data();
index fdf2447..0a4a4ab 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public abstract class Code extends HttpCode<AuthzTrans,Facade1_0> implements Clo
         // Note, the first "Code" will be created with default Facade, "JSON".
         // use clone for another Code with XML
     }
-    
+
 
     public <D extends Code> D clone(Facade1_0 facade) throws Exception {
         @SuppressWarnings("unchecked")
index cdd501c..eaee6dc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,9 +31,9 @@ import org.onap.aaf.auth.validation.Validator;
 /**
  * Validator
  * Consistently apply content rules for content (incoming)
- * 
- * Note: We restrict content for usability in URLs (because RESTful service), and avoid 
- * issues with Regular Expressions, and other enabling technologies. 
+ *
+ * Note: We restrict content for usability in URLs (because RESTful service), and avoid
+ * issues with Regular Expressions, and other enabling technologies.
  * @author Jonathan
  *
  */
@@ -49,12 +49,12 @@ public class CertmanValidator extends Validator{
     private static final String IS_NULL = " is null.";
     private static final String ARTIFACTS_MUST_HAVE_AT_LEAST = "Artifacts must have at least ";
     private static final Pattern ALPHA_NUM = Pattern.compile("[a-zA-Z0-9]*");
-    
+
     private static boolean disallowTmp = true;
     public static void allowTmp() {
         disallowTmp=false;
     }
-    
+
     public CertmanValidator nullBlankMin(String name, List<String> list, int min) {
         if (list==null) {
             msg(name + IS_NULL);
@@ -97,7 +97,7 @@ public class CertmanValidator extends Validator{
         }
         return this;
     }
-    
+
     private CertmanValidator allRequired(Data a) {
         if (a==null) {
             msg("Artifact is null.");
index 9f7497e..39681cf 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -65,20 +65,20 @@ public class JU_AAF_CM {
 
     @Mock
     AuthzEnv env;
-    
+
     BasicEnv baseEnv;
-    
+
     @Mock
     PropAccess access;
-    
+
     AuthzTransImpl1 trans;
-    
+
     AAF_CMImpl rosettaObj = null;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
-        
+
         try {
             Mockito.doReturn(access).when(env).access();
             Mockito.doReturn("test.test").when(access).getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
@@ -95,7 +95,7 @@ public class JU_AAF_CM {
             Mockito.doReturn(trans).when(env).newTrans();
 //            Mockito.doReturn("test").when(trans).getProperty("cm_ca.props.baseSubject",null);
 //            Mockito.doReturn(Mockito.mock(TimeTaken.class)).when(trans).start("Clear Reset Deque",8);
-            
+
             Mockito.doReturn("TLSv1.1").when(access).getProperty("cadi_protocols","test");
             Mockito.doReturn("https://www.google.com").when(access).getProperty(Config.AAF_URL,null);
             Mockito.doReturn("test").when(env).getProperty(Config.AAF_ENV);
@@ -126,10 +126,10 @@ public class JU_AAF_CM {
             PowerMockito.mockStatic(FacadeFactory.class);
             FacadeFactory factObj = PowerMockito.mock(FacadeFactory.class);
             PowerMockito.when(factObj.v1_0(tempObj,trans, null,Data.TYPE.JSON)).thenReturn(facadeObj);
-            
+
 //            Mockito.doReturn(Mockito.mock(Mapper.class)).when(facadeObj).mapper();
 
-            
+
             rosettaObj = new AAF_CMImpl(env);
         } catch (Exception e) {
             // TODO Auto-generated catch block
@@ -137,13 +137,13 @@ public class JU_AAF_CM {
             assertTrue(e instanceof NullPointerException);
         }
     }
-    
+
     @Test
     public void testTestCA() {
         CA obj = rosettaObj.getCA("props");
         assertTrue(obj instanceof CA);
     }
-    
+
 //    @Test
 //    public void testRoute() {
 //        try {
@@ -155,7 +155,7 @@ public class JU_AAF_CM {
 ////        System.out.println(obj);
 ////        assertTrue(obj instanceof CA);
 //    }
-    
+
     @Test
     public void testFilters() {
         try {
@@ -168,31 +168,31 @@ public class JU_AAF_CM {
         }
 //        assertTrue(obj instanceof CA);
     }
-    
+
     class AAF_CMImpl extends AAF_CM{
 
         public AAF_CMImpl(AuthzEnv env) throws Exception {
             super(env);
             // TODO Auto-generated constructor stub
         }
-        
+
         @Override
         public synchronized AAFConHttp aafCon() throws CadiException, LocatorException {
             return Mockito.mock(AAFConHttp.class);
         }
-        
+
         public CMService getService() {
             return Mockito.mock(CMService.class);
         }
-        
+
         @Override
         public void route(HttpMethods meth, String path, API api, Code code) throws Exception {
-            
+
         }
     }
-    
-    
-    
+
+
+
     class AuthzTransImpl1 extends AuthzTransImpl{
 
         public AuthzTransImpl1(AuthzEnv env) {
@@ -204,22 +204,22 @@ public class JU_AAF_CM {
         protected TimeTaken newTimeTaken(String name, int flag, Object ... values) {
             // TODO Auto-generated method stub
             TimeTaken tt= new TimeTaken("nameTest", Env.XML) {
-                
+
                 @Override
                 public void output(StringBuilder sb) {
                     // TODO Auto-generated method stub
-                    
+
                 }
             };
             return tt;
         }
-        
+
         @Override
         public Metric auditTrail(int indent, StringBuilder sb, int ... flag) {
             return null;
         }
-        
+
     }
-    
+
 
 }
index 31ee072..c6a78b3 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -42,19 +42,19 @@ import junit.framework.Assert;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_API_Artifact {
-    
+
     @Mock
     private static API_Artifact api;
-    
+
     @Mock
     private static AAF_CM certManApi;
-    
+
     private static AAF_CM noMockAPI;
     private static API_Artifact api_1;
-    
+
     private static HttpServletRequest req;
     private static HttpServletResponse res;
-    
+
     @BeforeClass
     public static void setUp() {
         AuthzTrans trans = mock(AuthzTrans.class);
@@ -63,18 +63,18 @@ public class JU_API_Artifact {
         trans.setProperty("testTag", "UserValue");
         trans.set(req,res);
     }
-    
+
     @Rule
     public ExpectedException thrown= ExpectedException.none();
-    
+
     @Test
     public void placeholder() {
         Assert.assertTrue(true);
     }
-    
+
     /*
      * These fail in builds.  Need something better.
-     * 
+     *
      * Also, they don't do much.  Just catch some null pointers.
     @Test
     public void init_bothValued() {
@@ -85,7 +85,7 @@ public class JU_API_Artifact {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void init_Null_() {
         try {
@@ -95,7 +95,7 @@ public class JU_API_Artifact {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void init_NMC_Null() {
         try {
@@ -105,7 +105,7 @@ public class JU_API_Artifact {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void init_NMC() {
         try {
index 674e4ed..4c7888d 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -42,19 +42,19 @@ import org.onap.aaf.auth.env.AuthzTrans;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_API_Cert {
-    
+
     @Mock
     private static API_Cert api;
-    
+
     @Mock
     private static AAF_CM certManApi;
-    
+
     private static AAF_CM noMockAPI;
     private static API_Cert api_1;
-    
+
     private static HttpServletRequest req;
     private static HttpServletResponse res;
-    
+
     @BeforeClass
     public static void setUp() {
         AuthzTrans trans = mock(AuthzTrans.class);
@@ -63,10 +63,10 @@ public class JU_API_Cert {
         trans.setProperty("testTag", "UserValue");
         trans.set(req,res);
     }
-    
+
     @Rule
     public ExpectedException thrown= ExpectedException.none();
-    
+
     @Test
     public void init_bothValued() {
         try {
@@ -76,7 +76,7 @@ public class JU_API_Cert {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void init_Null_() {
         try {
@@ -86,7 +86,7 @@ public class JU_API_Cert {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void init_NMC_Null() {
         try {
@@ -96,7 +96,7 @@ public class JU_API_Cert {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void init_NMC() {
         try {
index 48c81c5..5d91d70 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -61,23 +61,23 @@ import org.onap.aaf.misc.env.Trans;
 //TODO: Gabe [JUnit] Import does not exist
 @RunWith(MockitoJUnitRunner.class)
 public class JU_AppCA {
-    
+
     @Mock
     private static CachedCertDAO certDAO;
-    
+
     @Mock
     private static HttpServletRequest req;
-    
+
     @Mock
     private static CSRMeta csrMeta;
-    
+
     static Trans trans;
-    
+
     static X509andChain cert1;
     static byte [] name = {1,23,4,54,6,56};
-    
+
     private static LocalCA localCA;
-    
+
     @BeforeClass
     public static void setUp() throws CertificateException, CertException, IOException {
         String str = "core java api";
@@ -86,196 +86,196 @@ public class JU_AppCA {
         req = mock(HttpServletRequest.class);
         localCA = mock(LocalCA.class);
         X509Certificate cert = new X509Certificate() {
-            
+
             @Override
             public boolean hasUnsupportedCriticalExtension() {
                 return false;
             }
-            
+
             @Override
             public Set<String> getNonCriticalExtensionOIDs() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public byte[] getExtensionValue(String oid) {
-                 
+
                 return null;
             }
-            
+
             @Override
             public Set<String> getCriticalExtensionOIDs() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public void verify(PublicKey key, String sigProvider) throws CertificateException, NoSuchAlgorithmException,
                     InvalidKeyException, NoSuchProviderException, SignatureException {
-                 
-                
+
+
             }
-            
+
             @Override
             public void verify(PublicKey key) throws CertificateException, NoSuchAlgorithmException, InvalidKeyException,
                     NoSuchProviderException, SignatureException {
-                 
-                
+
+
             }
-            
+
             @Override
             public String toString() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public PublicKey getPublicKey() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public byte[] getEncoded() throws CertificateEncodingException {
-                 
+
                 return null;
             }
-            
+
             @Override
             public int getVersion() {
-                 
+
                 return 0;
             }
-            
+
             @Override
             public byte[] getTBSCertificate() throws CertificateEncodingException {
-                 
+
                 return null;
             }
-            
+
             @Override
             public boolean[] getSubjectUniqueID() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public Principal getSubjectDN() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public byte[] getSignature() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public byte[] getSigAlgParams() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public String getSigAlgOID() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public String getSigAlgName() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public BigInteger getSerialNumber() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public Date getNotBefore() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public Date getNotAfter() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public boolean[] getKeyUsage() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public boolean[] getIssuerUniqueID() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public Principal getIssuerDN() {
-                 
+
                 return null;
             }
-            
+
             @Override
             public int getBasicConstraints() {
-                 
+
                 return 0;
             }
-            
+
             @Override
             public void checkValidity(Date date) throws CertificateExpiredException, CertificateNotYetValidException {
-                 
-                
+
+
             }
-            
+
             @Override
             public void checkValidity() throws CertificateExpiredException, CertificateNotYetValidException {
-                
+
             }
         };
         X509andChain xac = new X509andChain(cert, new ArrayList<>());
         when(localCA.sign(Mockito.any(Trans.class), Mockito.any(CSRMeta.class))).thenReturn(xac);
         certDAO = mock(CachedCertDAO.class, CALLS_REAL_METHODS);
     }
-    
+
     @Test
     public void identity_True() throws CertificateException, IOException, CertException {
         assertNotNull(localCA.sign(trans, csrMeta));
     }
-    
-    
+
+
     @Test
     public void identityNull() throws CertificateException {
         try {
             assertNotNull(localCA.sign(null, csrMeta));
         } catch (IOException e) {
-        
+
             e.printStackTrace();
         } catch (CertException e) {
-            
+
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void identityBothNull() throws CertificateException {
         try {
             assertNotNull(localCA.sign(null, null));
         } catch (IOException e) {
-        
+
             e.printStackTrace();
         } catch (CertException e) {
-            
+
             e.printStackTrace();
         }
     }
index 4c6f758..2560b4b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index dbae3fc..c1b0f94 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index b5f35c3..7e0a084 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -48,19 +48,19 @@ import org.onap.aaf.misc.env.Trans;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_BCFactory {
-    
+
     private static BCFactory bcFactory = new BCFactory();
-    
+
     private static BCFactory bcFact;
-    
+
     private static PrivateKey pk;
-    
-    
+
+
     private static Trans trans;
-    
-    
+
+
     private static PKCS10CertificationRequest req;
-    
+
     @BeforeClass
     public static void setUp() throws IOException {
         pk = new XYZKey();
@@ -68,29 +68,29 @@ public class JU_BCFactory {
         req = mock(PKCS10CertificationRequest.class);
         when(req.getEncoded()).thenReturn(new byte[1]);
         when(trans.start(Mockito.anyString(), Mockito.anyInt())).thenReturn(new TimeTaken(null, 0) {
-            
+
             @Override
             public void output(StringBuilder sb) {
                 // TODO Auto-generated method stub
-                
+
             }
         });
         bcFact = mock(BCFactory.class);
     }
-    
+
     @Test
     public void toStrin() throws OperatorCreationException, IOException, CertException {
         assertNotNull(bcFactory.toString(req));
     }
-    
+
     @Test
     public void toStrinMoc() throws OperatorCreationException, IOException, CertException {
         assertNotNull(bcFact.toString(req));
     }
-    
+
     @Rule
     public ExpectedException thrown= ExpectedException.none();
-    
+
     @Test
     public void toCSR()  {
         try {
@@ -100,11 +100,11 @@ public class JU_BCFactory {
             e.printStackTrace();
         }
     }
-    
+
 }
 
 class XYZKey implements Key, PublicKey, PrivateKey {
-    
+
     int rotValue;
     public XYZKey() {
         rotValue = 1200213;
index 8b33036..ea7f5a8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 37519a3..3424de0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index a980643..7db1778 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -53,7 +53,7 @@ import org.onap.aaf.misc.env.TimeTaken;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> {
-    
+
     private static AuthzTrans trans;
     private static HttpServletResponse resp;
     private static AAF_CM certman;
@@ -62,10 +62,10 @@ public class JU_FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> {
     private Mapper<REQ,CERT,ARTIFACTS,ERROR> mapper;
     private Data.TYPE dataType;
     private static AuthzEnv env;
-    
+
     private static FacadeImpl fImpl;
     private static HttpServletRequest req;
-    
+
     @Before
     public void setUp() throws APIException, IOException {
         fImpl = mock(FacadeImpl.class);
@@ -76,111 +76,111 @@ public class JU_FacadeImpl<REQ,CERT,ARTIFACTS,ERROR> {
         Result<Void> rvd = (Result) mock(Result.class);
         trans = mock(AuthzTrans.class);
         when(trans.error()).thenReturn(new LogTarget() {
-            
+
             @Override
             public void printf(String fmt, Object... vars) {}
-            
+
             @Override
             public void log(Throwable e, Object... msgs) {
                 e.getMessage();
                 //e.printStackTrace();
                 msgs.toString();
-                
+
             }
-            
+
             @Override
             public void log(Object... msgs) {
             }
-            
+
             @Override
             public boolean isLoggable() {
-                
+
                 return false;
             }
         });
         when(trans.start(Mockito.anyString(), Mockito.anyInt())).thenReturn(new TimeTaken("Now", 1) {
-            
+
             @Override
             public void output(StringBuilder sb) {
-                
+
             }
         });
         when(fImpl.check(Mockito.any(AuthzTrans.class), Mockito.any(HttpServletResponse.class), Mockito.anyString())).thenReturn(rvd);
         when(resp.getOutputStream()).thenReturn(new ServletOutputStream() {
-            
+
             @Override
             public void write(int b) throws IOException {
-                
-                
+
+
             }
         });
-        
+
     }
-    
+
     @Test
     public void check() throws IOException {
         AAFPermission ap = new AAFPermission("str0","str1","str3","str2");
         String perms = ap.getInstance();
         assertNotNull(hImpl.check(trans, resp, perms));
     }
-    
+
     @Test
     public void checkNull() throws IOException {
         AAFPermission ap = new AAFPermission(null,null,"Str3","str2");
         String perms = ap.getInstance();
         assertNotNull(hImpl.check(trans, resp, perms));
     }
-    
+
     @Test
     public void checkTwoNull() throws IOException {
         AAFPermission ap = new AAFPermission(null,null,null,"str2");
         String perms = ap.getInstance();
         assertNotNull(fImpl.check(trans, resp, perms));
     }
-    
+
     @Test
     public void checkAllNull() throws IOException {
         AAFPermission ap = new AAFPermission(null,null,null,null);
         String perms = ap.getInstance();
         assertNotNull(fImpl.check(trans, resp, perms));
     }
-    
+
     @Test
     public void checkTrans_null() throws IOException {
         AAFPermission ap = new AAFPermission("str0","str1","str3","str2");
         String perms = ap.getInstance();
         assertNotNull(hImpl.check(null, resp, perms));
     }
-    
+
     @Test
     public void checkRespNull() throws IOException {
         AAFPermission ap = new AAFPermission("str0","str1","str3","str2");
         String perms = ap.getInstance();
         assertNotNull(hImpl.check(trans, null, perms));
     }
-    
+
     @Test
-    public void requestCert() {        
+    public void requestCert() {
         assertNotNull(hImpl.requestCert(trans, req, resp, null));
     }
-    
+
     @Test
-    public void renewCert() {        
+    public void renewCert() {
         assertNotNull(hImpl.renewCert(trans, req, resp, true));
     }
-    
+
     @Test
-    public void dropCert() {        
+    public void dropCert() {
         assertNotNull(hImpl.renewCert(trans, req, resp, true));
     }
-    
+
     @Test
-    public void createArtifacts() {        
+    public void createArtifacts() {
         assertNotNull(hImpl.createArtifacts(trans, req, resp));
     }
-    
+
     @Test
-    public void readArtifacts() {        
+    public void readArtifacts() {
         assertNotNull(hImpl.readArtifacts(trans, req, resp));
     }
 }
index 80c9dbc..f23acd8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,14 +54,14 @@ public class CertmanTest {
 //        for (Item item = loc.first(); item!=null; item=loc.next(item)) {
 //            System.out.println(loc.get(item));
 //        }
-//        
-//        
+//
+//
 //        SecurityInfoC<HttpURLConnection> si = SecurityInfoC.instance(env, HttpURLConnection.class);
-//        ss = new HBasicAuthSS(si,"m12345@aaf.att.com", 
+//        ss = new HBasicAuthSS(si,"m12345@aaf.att.com",
 //                env.decrypt("enc:gvptdJyo0iKdVZw2rzMb0woxa7YKMdqLuhfQ4OQfZ8k",false));
 //                env.decrypt("enc:jFfAnO3mOKb9Gzm2OFysslmXpbnyuAxuoNJK",false), si);
 //                    SecuritySetter<HttpURLConnection> ss = new X509SS(si, "aaf");
-        
+
 //        hman = new HMangr(env,loc);
 //
 //        reqDF = env.newDataFactory(CertificateRequest.class);
@@ -85,13 +85,13 @@ public class CertmanTest {
 
 //    @Test
 //    public void testX500Name() throws Exception {
-//        
+//
 //        for ( InetAddress ia : InetAddress.getAllByName("aaf.dev.att.com")) {
 //            System.out.printf("%s - %s\n", ia.getHostName(), ia.getHostAddress());
 //            InetAddress ia1 = InetAddress.getByName(ia.getHostAddress());
 //            System.out.printf("%s - %s\n", ia1.getHostName(), ia1.getHostAddress());
 //        }
-//        
+//
 //        hman.best(ss, new Retryable<Void>() {
 //            @Override
 //            public Void code(Rcli<?> client) throws APIException, CadiException {
@@ -101,7 +101,7 @@ public class CertmanTest {
 //                cr.getFqdns().add("mithrilcsp.sbc.com");
 //                cr.getFqdns().add("zld01907.vci.att.com");
 //                cr.getFqdns().add("aaftest.test.att.com");
-//                
+//
 //                String path = "/cert/local"; // Local Test
 ////                String path = "/cert/aaf"; // Official CA
 //                long end=0,start = System.nanoTime();
@@ -131,12 +131,12 @@ public class CertmanTest {
 //                return null;
 //            }
 //        });
-//        
-//        
+//
+//
 //    }
 //
 //    public X500Principal ephemeral() {
 //        return null;
 //    }
-    
+
 }
index fd3b6cd..bf4193e 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -90,7 +90,7 @@ public class AAFcli {
     private static int globalDelay=0;
 
     // Create when only have Access
-    public AAFcli(Access access, Writer wtr, HMangr hman, SecurityInfoC<HttpURLConnection> si, SecuritySetter<HttpURLConnection> ss) throws APIException, CadiException {
+    public AAFcli(Access access, Writer wtr, HMangr hman, SecurityInfoC<HttpURLConnection> si, SecuritySetter<HttpURLConnection> ss) throws APIException {
         this(access,new AuthzEnv(access.getProperties()),wtr,hman, si,ss);
     }
 
@@ -232,7 +232,7 @@ public class AAFcli {
                     continue;
                     // Sleep, typically for reports, to allow DB to update
                     // Milliseconds
-                    
+
                 } else if ("sleep".equalsIgnoreCase(largs[idx])) {
                     Integer t = Integer.parseInt(largs[++idx]);
                     pw.println("sleep " + t);
@@ -299,8 +299,8 @@ public class AAFcli {
                     // Allow Script to indicate if Failure is what is expected
                 }
 
-            } 
-            
+            }
+
             if ("REQUEST".equalsIgnoreCase(largs[idx])) {
                 request=true;
                 ++idx;
@@ -417,7 +417,7 @@ public class AAFcli {
         System.out.println("For instance, C-b means hold ctrl key and press b, M-b means hold alt and press b\n");
 
         System.out.println("Basic Keybindings:");
-        System.out.println("\tC-l - clear screen");        
+        System.out.println("\tC-l - clear screen");
         System.out.println("\tC-a - beginning of line");
         System.out.println("\tC-e - end of line");
         System.out.println("\tC-b - backward character (left arrow also works)");
@@ -442,7 +442,7 @@ public class AAFcli {
      */
     public static void main(String[] args) {
         int rv = 0;
-        
+
         try {
             AAFSSO aafsso = new AAFSSO(args);
             String noexit = aafsso.access().getProperty("no_exit");
@@ -452,7 +452,7 @@ public class AAFcli {
                 if (aafsso.ok()) {
                     Define.set(access);
                     AuthzEnv env = new AuthzEnv(access);
-                    
+
                     Reader rdr = null;
                     boolean exitOnFailure = true;
                     /*
@@ -490,15 +490,15 @@ public class AAFcli {
                             sb.append(args[i]);
                         }
                     }
-                    
+
                     AAFConHttp aafcon = new AAFConHttp(access);
-//                    
+//
 //                    SecurityInfoC<?> si = aafcon.securityInfo();
 //                    Locator<URI> loc;
-                    
+
                     aafsso.setLogDefault();
                     aafsso.setStdErrDefault();
-    
+
                     // Note, with AAF Locator, this may not longer be necessary 3/2018 Jonathan
                     if (!aafsso.loginOnly()) {
 //                        try {
@@ -510,16 +510,16 @@ public class AAFcli {
 //                            // Other Access is done writing to StdOut and StdErr, reset Std out
 //                            aafsso.setLogDefault();
 //                        }
-    
+
                         TIMEOUT = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF));
 //                        HMangr hman = new HMangr(access, loc).readTimeout(TIMEOUT).apiVersion(Config.AAF_DEFAULT_API_VERSION);
-                        
+
                         if (access.getProperty(Config.AAF_DEFAULT_REALM)==null) {
                             access.setProperty(Config.AAF_DEFAULT_REALM, "people.osaaf.org");
                             aafsso.addProp(Config.AAF_DEFAULT_REALM, "people.osaaf.org");
                         }
-            
-                        AAFcli aafcli = new AAFcli(access,env, new OutputStreamWriter(System.out),  
+
+                        AAFcli aafcli = new AAFcli(access,env, new OutputStreamWriter(System.out),
                                 aafcon.hman(), aafcon.securityInfo(), aafcon.securityInfo().defSS);
 //                            new HBasicAuthSS(si,aafsso.user(), access.decrypt(aafsso.enc_pass(),false)));
 //                        }
@@ -541,24 +541,24 @@ public class AAFcli {
                                 System.out.println("Type 'help' for short help or 'help -d' for detailed help with aafcli commands");
                                 System.out.println("Type '?' for help with command line editing");
                                 System.out.println("Type 'q', 'quit', or 'exit' to quit aafcli\n");
-            
+
                                 ConsoleReader reader = new ConsoleReader();
                                 try {
                                     reader.setPrompt("aafcli > ");
-                
+
                                     String line;
                                     while ((line = reader.readLine()) != null) {
                                         showDetails = (line.contains("-d"));
-                
-                                        if (line.equalsIgnoreCase("quit") || line.equalsIgnoreCase("q") || line.equalsIgnoreCase("exit")) {
+
+                                        if ("quit".equalsIgnoreCase(line) || "q".equalsIgnoreCase(line) || "exit".equalsIgnoreCase(line)) {
                                             break;
-                                        } else if (line.equalsIgnoreCase("--help -d") || line.equalsIgnoreCase("help -d") 
-                                                || line.equalsIgnoreCase("help")) {
+                                        } else if ("--help -d".equalsIgnoreCase(line) || "help -d".equalsIgnoreCase(line)
+                                                || "help".equalsIgnoreCase(line)) {
                                             line = "--help";
-                                        } else if (line.equalsIgnoreCase("cls")) {
+                                        } else if ("cls".equalsIgnoreCase(line)) {
                                             reader.clearScreen();
                                             continue;
-                                        } else if (line.equalsIgnoreCase("?")) {
+                                        } else if ("?".equalsIgnoreCase(line)) {
                                             keyboardHelp();
                                             continue;
                                         }
@@ -593,10 +593,10 @@ public class AAFcli {
                                 }
                                 rv = aafcli.eval(sb.toString()) ? 0 : 1;
                             }
-                            
+
                         } finally {
                             aafcli.close();
-            
+
                             // Don't close if No Reader, or it's a Reader of Standard In
                             if (rdr != null && !(rdr instanceof InputStreamReader)) {
                                 rdr.close();
@@ -630,7 +630,7 @@ public class AAFcli {
     public boolean isTest() {
         return AAFcli.isTest;
     }
-    
+
     public boolean isDetailed() {
         return AAFcli.showDetails;
     }
index 77d1894..6978e9e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,13 +36,13 @@ public class BaseCmd<CMD extends Cmd> extends Cmd  {
         super(aafcli, null, name, params);
         cmds = new ArrayList<>();
     }
-    
+
     public BaseCmd(CMD parent, String name, Param ... params) {
         super(parent.aafcli, parent, name, params);
         cmds = new ArrayList<>();
     }
 
-    
+
     @Override
     public int _exec( int idx, final String ... args) throws CadiException, APIException, LocatorException {
         if (args.length-idx<1) {
@@ -53,7 +53,7 @@ public class BaseCmd<CMD extends Cmd> extends Cmd  {
             Cmd empty = null;
             for (Cmd c: cmds) {
                 name = c.getName();
-                if (name==null && empty==null) { // Mark with Command is null, and take the first one.  
+                if (name==null && empty==null) { // Mark with Command is null, and take the first one.
                     empty = c;
                 } else if (s.equalsIgnoreCase(c.getName()))
                     return c.exec(idx+1, args);
index 6ca0921..0ae4ce9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -67,7 +67,7 @@ public abstract class Cmd {
 
     public static final String STARTDATE = "startdate";
     public static final String ENDDATE = "enddate";
-    
+
     private String name;
     private final Param[] params;
     private int required;
@@ -104,7 +104,7 @@ public abstract class Cmd {
                 ++required;
             }
         }
-        
+
         String temp = access.getProperty(Config.AAF_DEFAULT_REALM,null);
         if (temp!=null && !temp.startsWith("@")) {
             defaultRealm = '@' + temp;
@@ -112,16 +112,16 @@ public abstract class Cmd {
             defaultRealm="<Set Default Realm>";
         }
     }
-    
+
     public final int exec(int idx, String ... args) throws CadiException, APIException, LocatorException {
         if (args.length-idx<required) {
             throw new CadiException(build(new StringBuilder("Too few args: "),null).toString());
         }
         return _exec(idx,args);
     }
-    
+
     protected abstract int _exec(int idx, final String ... args) throws CadiException, APIException, LocatorException;
-    
+
     public void detailedHelp(int indent,StringBuilder sb) {
     }
 
@@ -179,7 +179,7 @@ public abstract class Cmd {
             sb.append(p.tag);
             sb.append(p.required?"> ": "] ");
         }
-        
+
         boolean first = true;
         for (Cmd child : children) {
             if (!(child instanceof DeprecatedCMD)) {
@@ -222,7 +222,7 @@ public abstract class Cmd {
         }
         return sb;
     }
-    
+
     protected void error(Future<?> future) {
         StringBuilder sb = new StringBuilder("Failed");
         String desc = future.body();
@@ -275,7 +275,7 @@ public abstract class Cmd {
         pw().println(sb);
     }
 
-    
+
     private void withCode(StringBuilder sb, Integer code) {
         sb.append(" with code ");
         sb.append(code);
@@ -303,7 +303,7 @@ public abstract class Cmd {
         if ((str = access.getProperty(Cmd.STARTDATE,null))!=null) {
             req.setStart(Chrono.timeStamp(Date.valueOf(str)));
         }
-        
+
         if ((str = access.getProperty(Cmd.ENDDATE,null))!=null) {
             req.setEnd(Chrono.timeStamp(Date.valueOf(str)));
         }
@@ -311,7 +311,7 @@ public abstract class Cmd {
 
     /**
      * For Derived classes, who have ENV in this parent
-     * 
+     *
      * @param cls
      * @return
      * @throws APIException
@@ -349,17 +349,17 @@ public abstract class Cmd {
                 pw().print('-');
             }
             pw().println();
-                                
+
             pw().format(hformat,"Date","Table","User","Memo");
             for (int i=0;i<lineLength;++i) {
                 pw().print('-');
             }
             pw().println();
-    
+
             // Save Server time by Sorting locally
             List<Item> items = history.getItem();
             java.util.Collections.sort(items, (Comparator<Item>) (o1, o2) -> o2.getTimestamp().compare(o1.getTimestamp()));
-            
+
             for (History.Item item : items) {
                 GregorianCalendar gc = item.getTimestamp().toGregorianCalendar();
                 pw().format(hformat,
@@ -370,7 +370,7 @@ public abstract class Cmd {
             }
         }
     }
-    
+
     /**
      * Turn String Array into a | delimited String
      * @param options
@@ -389,12 +389,12 @@ public abstract class Cmd {
         }
         return sb.toString();
     }
-    
+
     /**
      * return which index number the Option matches.
-     * 
+     *
      * throws an Exception if not part of this Option Set
-     * 
+     *
      * @param options
      * @param test
      * @return
@@ -420,9 +420,9 @@ public abstract class Cmd {
             retryable.item(aafcli.prevCall.item());
             retryable.lastClient=aafcli.prevCall.lastClient;
         }
-        
+
         RET ret = aafcli.hman.same(aafcli.ss,retryable);
-        
+
         // Store last call in AAFcli, because Cmds are all different instances.
         aafcli.prevCall = retryable;
         return ret;
@@ -445,7 +445,7 @@ public abstract class Cmd {
     public String getName() {
         return name;
     }
-    
+
     public void reportHead(String ... str) {
         pw().println();
         boolean first = true;
@@ -467,7 +467,7 @@ public abstract class Cmd {
         pw().println();
         reportLine();
     }
-    
+
     public String reportColHead(String format, String ...  args) {
         pw().format(format,(Object[])args);
         reportLine();
@@ -480,7 +480,7 @@ public abstract class Cmd {
         }
         pw().println();
     }
-    
+
     protected void setQueryParamsOn(Rcli<?> rcli) {
         StringBuilder sb=null;
         String force;
@@ -502,7 +502,7 @@ public abstract class Cmd {
 //
 //    /**
 //     * If Force is set, will return True once only, then revert to "FALSE".
-//     *  
+//     *
 //     * @return
 //     */
 //    protected String checkForce() {
@@ -525,7 +525,7 @@ public abstract class Cmd {
 
     /**
      * Appends shortID with Realm, but only when allowed by Organization
-     * @throws OrganizationException 
+     * @throws OrganizationException
      */
     public String fullID(String id) {
         if (id != null) {
index 6082fac..cb9eb7c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,7 +29,7 @@ import org.onap.aaf.misc.env.APIException;
 /**
  * Use this class to deprecate methods and features, by pointing to the new
  * usages.
- * 
+ *
  * These commands will not show up in Help
  * @author Jonathan
  *
index 49ffb51..5243904 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,7 +31,7 @@ public class Help extends Cmd {
     private List<Cmd> cmds;
 
     public Help(AAFcli aafcli, List<Cmd> cmds) {
-        super(aafcli, "help", 
+        super(aafcli, "help",
             new Param("-d (more details)", false),
             new Param("command",false));
         this.cmds = cmds;
@@ -83,7 +83,7 @@ public class Help extends Cmd {
         pw().println(sb.toString());
         return 200 /*HttpStatus.OK_200*/;
     }
-    
+
     @Override
     public void detailedHelp(int indentValue, StringBuilder sb) {
             int indent = indentValue;
index 934212c..bca337e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
  */
 
 /**
- * 
+ *
  */
 package org.onap.aaf.auth.cmd;
 
 /**
  * An Exception designed simply to give End User message, no stack trace
- * 
+ *
  * @author Jonathan
  *
  */
 public class MessageException extends Exception {
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = 8143933588878259048L;
 
index 8e48552..dfcf4ed 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,9 +24,9 @@ package org.onap.aaf.auth.cmd;
 public class Param {
     public final String tag;
     public final boolean required;
-    
+
     /**
-     * 
+     *
      * @param t
      * @param b
      */
index 9bfb77f..c6ff3bd 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index ab9758a..29b74a8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 83bf57c..6b95810 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,7 +54,7 @@ public class Clear extends Cmd {
                 public Integer code(Rcli<?> client) throws APIException, CadiException {
                     int rv = 409;
                     Future<Void> fp = client.delete(
-                            "/mgmt/cache/"+name, 
+                            "/mgmt/cache/"+name,
                             Void.class
                             );
                     if (fp.get(AAFcli.timeout())) {
index bc7f91f..3ab26cb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,7 +41,7 @@ public class Deny extends BaseCmd<Mgmt> {
         cmds.add(new DenySomething(this,"ip","ipv4or6[,ipv4or6]*"));
         cmds.add(new DenySomething(this,"id","identity[,identity]*"));
     }
-    
+
     public class DenySomething extends Cmd {
 
         private boolean isID;
@@ -84,7 +84,7 @@ public class Deny extends BaseCmd<Mgmt> {
                             pw().println(name + append + resp + " on " + client);
                             rv=fp.code();
                         } else {
-                            if (rv==409) { 
+                            if (rv==409) {
                                 rv = fp.code();
                             };
                             error(fp);
index 6289032..df9f520 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,7 +42,7 @@ public class Log extends BaseCmd<Mgmt> {
                 new Param(optionsToString(options),true),
                 new Param("id[,id]*",true));
     }
-    
+
     @Override
     public int _exec(int idxValue, String ... args) throws CadiException, APIException, LocatorException {
         int rv=409;
@@ -56,7 +56,7 @@ public class Log extends BaseCmd<Mgmt> {
             } else {
                 fname = name;
             }
-            
+
             rv = all(new Retryable<Integer>() {
                 @Override
                 public Integer code(Rcli<?> client) throws APIException, CadiException {
@@ -65,7 +65,7 @@ public class Log extends BaseCmd<Mgmt> {
                     String str = "/mgmt/log/id/"+fname;
                     String msg;
                     switch(option) {
-                        case 0:    
+                        case 0:
                             fp = client.create(str,Void.class);
                             msg = "Added";
                             break;
@@ -77,7 +77,7 @@ public class Log extends BaseCmd<Mgmt> {
                             fp = null;
                             msg = "Ignored";
                     }
-                            
+
                     if (fp!=null) {
                         if (fp.get(AAFcli.timeout())) {
                             pw().println(msg + " Special Log for " + fname + " on " + client);
index a1c83ee..43dfc85 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
index 9ca01a3..ef139ae 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -53,14 +53,14 @@ public class SessClear extends Cmd {
             public Integer code(Rcli<?> client) throws APIException, CadiException {
                 int rv = 409;
                 Future<Void> fp = client.delete(
-                        "/mgmt/dbsession", 
+                        "/mgmt/dbsession",
                         Void.class
                         );
                 if (fp.get(AAFcli.timeout())) {
                     pw().println("Cleared DBSession on " + client);
                     rv=200;
                 } else {
-                    if (rv==409) { 
+                    if (rv==409) {
                         rv = fp.code();
                     };
                     error(fp);
index c70234e..e543e23 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 9d2843b..0afa73b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,24 +52,24 @@ public class Admin extends BaseCmd<NS> {
 
         return same(new Retryable<Integer>() {
             @Override
-            public Integer code(Rcli<?> client) throws CadiException, APIException {    
+            public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<Void> fp = null;
                 for (String id : ids) {
                     id = fullID(id);
                     String verb;
                     switch(option) {
-                        case 0: 
+                        case 0:
                             fp = client.create("/authz/ns/"+ns+"/admin/"+id,Void.class);
                             verb = " added to ";
                             break;
-                        case 1: 
+                        case 1:
                             fp = client.delete("/authz/ns/"+ns+"/admin/"+id,Void.class);
                             verb = " deleted from ";
                             break;
                         default:
                             throw new CadiException("Bad Argument");
                     };
-                
+
                     if (fp.get(AAFcli.timeout())) {
                         pw().append("Admin ");
                         pw().append(id);
@@ -79,7 +79,7 @@ public class Admin extends BaseCmd<NS> {
                         error(fp);
                         return fp.code();
                     }
-                    
+
                 }
                 return fp==null?500:fp.code();
             }
index feade45..63089e4 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -62,24 +62,24 @@ public class Attrib extends BaseCmd<NS> {
         } else {
             value = "";
         }
-        
+
         return same(new Retryable<Integer>() {
             @Override
-            public Integer code(Rcli<?> client) throws CadiException, APIException {    
+            public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<Void> fp = null;
                 String message;
                 switch(option) {
-                    case 0: 
+                    case 0:
                         fp = client.create(authzString+ns+atrributeString+key+'/'+value,Void.class);
                         message = String.format("Add Attrib %s=%s to %s",
                                 key,value,ns);
                         break;
-                    case 1: 
+                    case 1:
                         fp = client.update(authzString+ns+atrributeString+key+'/'+value);
                         message = String.format("Update Attrib %s=%s for %s",
                                 key,value,ns);
                         break;
-                    case 2: 
+                    case 2:
                         fp = client.delete(authzString+ns+atrributeString+key,Void.class);
                         message = String.format("Attrib %s deleted from %s",
                                 key,ns);
@@ -95,8 +95,8 @@ public class Attrib extends BaseCmd<NS> {
                     } else {
                         error(fp);
                     }
-                        
-                    return fp.code(); 
+
+                    return fp.code();
                 }
             }
         });
index 05d6688..6e6b40b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,9 +42,9 @@ public class Create extends Cmd {
     private static final String COMMA = ",";
 
     public Create(NS parent) {
-        super(parent,"create", 
+        super(parent,"create",
                 new Param("ns-name",true),
-                new Param("owner (id[,id]*)",true), 
+                new Param("owner (id[,id]*)",true),
                 new Param("admin (id[,id]*)",false));
     }
 
@@ -53,7 +53,7 @@ public class Create extends Cmd {
             int idx = _idx;
 
         final NsRequest nr = new NsRequest();
-        
+
         nr.setName(args[idx++]);
         String[] responsible = args[idx++].split(COMMA);
         for (String s : responsible) {
@@ -68,17 +68,17 @@ public class Create extends Cmd {
         for (String s : admin) {
             nr.getAdmin().add(fullID(s));
         }
-        
+
         // Set Start/End commands
         setStartEnd(nr);
-        
+
         return same(new Retryable<Integer>() {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 // Requestable
                 setQueryParamsOn(client);
                 Future<NsRequest> fp = client.create(
-                        "/authz/ns", 
+                        "/authz/ns",
                         getDF(NsRequest.class),
                         nr
                         );
index 7da6c26..7e6b142 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,8 +39,8 @@ import org.onap.aaf.misc.env.APIException;
  */
 public class Delete extends Cmd {
     public Delete(NS parent) {
-        super(parent,"delete", 
-                new Param("ns-name",true)); 
+        super(parent,"delete",
+                new Param("ns-name",true));
     }
 
     @Override
@@ -51,11 +51,11 @@ public class Delete extends Cmd {
                 int index = idx;
                 StringBuilder path = new StringBuilder("/authz/ns/");
                 path.append(args[index++]);
-                
+
                 // Send "Force" if set
                 setQueryParamsOn(client);
                 Future<Void> fp = client.delete(path.toString(),Void.class);
-                
+
                 if (fp.get(AAFcli.timeout())) {
                     pw().println("Deleted Namespace");
                 } else {
index e521d61..68532c9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,9 +37,9 @@ import aaf.v2_0.NsRequest;
 public class Describe extends Cmd {
     private static final String NS_PATH = "/authz/ns";
     public Describe(NS parent) {
-        super(parent,"describe", 
+        super(parent,"describe",
                 new Param("ns-name",true),
-                new Param("description",true)); 
+                new Param("description",true));
     }
 
     @Override
@@ -53,14 +53,14 @@ public class Describe extends Cmd {
                 while (idx < args.length) {
                     desc.append(args[idx++] + ' ');
                 }
-        
+
                 NsRequest nsr = new NsRequest();
                 nsr.setName(name);
                 nsr.setDescription(desc.toString());
-        
+
                 // Set Start/End commands
                 setStartEnd(nsr);
-                
+
                 Future<NsRequest> fn = null;
                 int rv;
 
index e1252d8..ef25f75 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,9 +47,9 @@ public class List extends BaseCmd<NS> {
     public List(NS parent) {
         super(parent,"list");
         cmds.add(new ListByName(this));
-        
-//        TODO: uncomment when on cassandra 2.1.2 if we like cli command to get all ns's 
-//                a user is admin or responsible for 
+
+//        TODO: uncomment when on cassandra 2.1.2 if we like cli command to get all ns's
+//                a user is admin or responsible for
         cmds.add(new ListAdminResponsible(this));
         cmds.add(new DeprecatedCMD<List>(this,"responsible","'responsible' is deprecated.  use 'owner'")); // deprecated
         cmds.add(new ListActivity(this));
@@ -57,13 +57,13 @@ public class List extends BaseCmd<NS> {
         cmds.add(new ListChildren(this));
         cmds.add(new ListNsKeysByAttrib(this));
     }
-    
+
     public void report(Future<Nss> fp, String ... str) {
         reportHead(str);
         if (fp==null) {
             pw().println("    *** Namespace Not Found ***");
         }
-        
+
         if (fp!=null && fp.value!=null) {
             for (Ns ns : fp.value.getNs()) {
                 pw().println(ns.getName());
@@ -93,12 +93,12 @@ public class List extends BaseCmd<NS> {
                         }
                         pw().format(sformat,sb.toString());
                     }
-                    
+
                 }
             }
         }
     }
-    
+
     public void reportName(Future<Nss> fp, String ... str) {
         reportHead(str);
         if (fp!=null && fp.value!=null) {
@@ -109,7 +109,7 @@ public class List extends BaseCmd<NS> {
                     return ns1.getName().compareTo(ns2.getName());
                 }
             });
-            
+
             for (Ns ns : nss) {
                 pw().println(ns.getName());
                 if (this.aafcli.isDetailed() && ns.getDescription() != null) {
@@ -136,9 +136,9 @@ public class List extends BaseCmd<NS> {
             }
         }
     }
-    
 
-    public void reportCred(Future<Users> fc) {        
+
+    public void reportCred(Future<Users> fc) {
         if (fc!=null && fc.value!=null && !(fc.value.getUser().isEmpty())) {
             pw().println("    Credentials");
             java.util.List<User> users = fc.value.getUser();
@@ -162,9 +162,9 @@ public class List extends BaseCmd<NS> {
         Integer type;
         if ((type=u.getType())==null) {
             type = 9999;
-        } 
+        }
         return Define.getCredType(type);
     }
-    
+
 
 }
index f8f8246..ae80fd8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,9 +40,9 @@ import aaf.v2_0.History;
  */
 public class ListActivity extends Cmd {
     private static final String HEADER = "List Activity of Namespace";
-    
+
     public ListActivity(List parent) {
-        super(parent,"activity", 
+        super(parent,"activity",
                 new Param("ns-name",true));
     }
 
@@ -50,15 +50,15 @@ public class ListActivity extends Cmd {
     public int _exec(int _idx, final String ... args) throws CadiException, APIException, LocatorException {
             int idx = _idx;
         final String ns = args[idx++];
-        
+
         return same(new Retryable<Integer>() {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<History> fp = client.read(
-                        "/authz/hist/ns/"+ns, 
+                        "/authz/hist/ns/"+ns,
                         getDF(History.class)
                         );
-    
+
                 if (fp.get(AAFcli.timeout())) {
                     activity(fp.value, HEADER + " [ " + ns + " ]");
                 } else {
@@ -68,7 +68,7 @@ public class ListActivity extends Cmd {
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index 3e3a0ea..1f833d9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,11 +37,11 @@ import aaf.v2_0.Nss;
 public class ListAdminResponsible extends Cmd {
     private static final String HEADER="List Namespaces with ";
     private static final String[] options = {"admin","owner"};
-    
+
     public ListAdminResponsible(List parent) {
-        super(parent,null, 
+        super(parent,null,
                 new Param(optionsToString(options),true),
-                new Param("user",true)); 
+                new Param("user",true));
     }
 
     @Override
@@ -54,21 +54,21 @@ public class ListAdminResponsible extends Cmd {
                 String title = args[idx++];
                 String user = fullID(args[idx++]);
                 String apipart = "owner".equals(title)?"responsible":title;
-                
+
                 Future<Nss> fn = client.read("/authz/nss/"+apipart+"/"+user,getDF(Nss.class));
                 if (fn.get(AAFcli.timeout())) {
                     ((List)parent).reportName(fn,HEADER + title + " privileges for ",user);
                 } else if (fn.code()==404) {
                     ((List)parent).report(null,HEADER + title + " privileges for ",user);
                     return 200;
-                } else {    
+                } else {
                     error(fn);
                 }
                 return fn.code();
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER + "admin or owner privileges for user");
index b4cca87..8151b19 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,9 +45,9 @@ import aaf.v2_0.Users;
  */
 public class ListByName extends Cmd {
     private static final String HEADER="List Namespaces by Name";
-    
+
     public ListByName(List parent) {
-        super(parent,"name", 
+        super(parent,"name",
                 new Param("ns-name",true));
     }
 
@@ -84,7 +84,7 @@ public class ListByName extends Cmd {
                 } else if (fn.code()==404) {
                     ((List)parent).report(null,HEADER,ns);
                     return 200;
-                } else {    
+                } else {
                     error(fn);
                 }
                 return fn.code();
index 96baa32..9a9f47f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,9 +42,9 @@ import aaf.v2_0.Nss.Ns;
  */
 public class ListChildren extends Cmd {
     private static final String HEADER="List Child Namespaces";
-    
+
     public ListChildren(List parent) {
-        super(parent,"children", 
+        super(parent,"children",
                 new Param("ns-name",true));
     }
 
@@ -64,7 +64,7 @@ public class ListChildren extends Cmd {
                 } else if (fn.code()==404) {
                     ((List)parent).report(null,HEADER,ns);
                     return 200;
-                } else {    
+                } else {
                     error(fn);
                 }
                 return fn.code();
index 01b0f21..14bc331 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,10 +45,10 @@ import aaf.v2_0.Users;
  */
 public class ListNsKeysByAttrib extends Cmd {
     private static final String HEADER="List Namespace Names by Attribute";
-    
+
     public ListNsKeysByAttrib(List parent) {
-        super(parent,"keys", 
-                new Param("attrib",true)); 
+        super(parent,"keys",
+                new Param("attrib",true));
     }
 
     @Override
@@ -67,7 +67,7 @@ public class ListNsKeysByAttrib extends Cmd {
                     parent.reportHead(HEADER);
                     pw().println("    *** No Namespaces Found ***");
                     return 200;
-                } else {    
+                } else {
                     error(fn);
                 }
                 return fn.code();
index ba2f88d..a89c849 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -58,7 +58,7 @@ public class ListUsers extends BaseCmd<List> {
     };
 
     private static final String uformat = "%s%-50s expires:%02d/%02d/%04d\n";
-    
+
     public ListUsers(List parent) {
         super(parent,"user");
         cmds.add(new ListUsersWithPerm(this));
index d6eb9b3..3ebafc2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,10 +49,10 @@ import aaf.v2_0.Users.User;
  */
 public class ListUsersContact extends Cmd {
     private static final String HEADER="List Contacts of Namespace ";
-    
+
     public ListUsersContact(ListUsers parent) {
-        super(parent,"contact", 
-                new Param("ns-name",true)); 
+        super(parent,"contact",
+                new Param("ns-name",true));
     }
 
     @Override
@@ -76,7 +76,7 @@ public class ListUsersContact extends Cmd {
                                         ((ListUsers)parent).report(r.getName());
                                     }
                                     Future<Users> fus = client.read(
-                                            "/authz/users/role/"+r.getName(), 
+                                            "/authz/users/role/"+r.getName(),
                                             getDF(Users.class)
                                             );
                                     if (fus.get(AAFcli.timeout())) {
@@ -102,7 +102,7 @@ public class ListUsersContact extends Cmd {
                     }
                 } else if (fn.code()==404) {
                     return 200;
-                } else {    
+                } else {
                     error(fn);
                 }
                 return fn.code();
index b33f506..5cda15b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,10 +49,10 @@ import aaf.v2_0.Users.User;
  */
 public class ListUsersInRole extends Cmd {
     private static final String HEADER="List Users in Roles of Namespace ";
-    
+
     public ListUsersInRole(ListUsers parent) {
-        super(parent,"role", 
-                new Param("ns-name",true)); 
+        super(parent,"role",
+                new Param("ns-name",true));
     }
 
     @Override
@@ -76,7 +76,7 @@ public class ListUsersInRole extends Cmd {
                                         ((ListUsers)parent).report(r.getName());
                                     }
                                     Future<Users> fus = client.read(
-                                            "/authz/users/role/"+r.getName(), 
+                                            "/authz/users/role/"+r.getName(),
                                             getDF(Users.class)
                                             );
                                     if (fus.get(AAFcli.timeout())) {
@@ -102,7 +102,7 @@ public class ListUsersInRole extends Cmd {
                     }
                 } else if (fn.code()==404) {
                     return 200;
-                } else {    
+                } else {
                     error(fn);
                 }
                 return fn.code();
index 96ca95e..cbd21a7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,10 +49,10 @@ import aaf.v2_0.Users.User;
  */
 public class ListUsersWithPerm extends Cmd {
     private static final String HEADER="List Users of Permissions of Namespace ";
-    
+
     public ListUsersWithPerm(ListUsers parent) {
-        super(parent,"perm", 
-                new Param("ns-name",true)); 
+        super(parent,"perm",
+                new Param("ns-name",true));
     }
 
     @Override
@@ -68,7 +68,7 @@ public class ListUsersWithPerm extends Cmd {
                 if (fn.get(AAFcli.timeout())) {
                     if (fn.value!=null) {
                         Set<String> uset = detail?null:new HashSet<>();
-                        
+
                         for (Ns n : fn.value.getNs()) {
                             Future<Perms> fp = client.read("/authz/perms/ns/"+n.getName()+(aafcli.isDetailed()?"?ns":"")
                                     , getDF(Perms.class));
@@ -77,14 +77,14 @@ public class ListUsersWithPerm extends Cmd {
                                     String perm = p.getType()+'/'+p.getInstance()+'/'+p.getAction();
                                     if (detail)((ListUsers)parent).report(perm);
                                     Future<Users> fus = client.read(
-                                            "/authz/users/perm/"+perm, 
+                                            "/authz/users/perm/"+perm,
                                             getDF(Users.class)
                                             );
                                     if (fus.get(AAFcli.timeout())) {
                                         for (User u : fus.value.getUser()) {
                                             if (detail)
                                                 ((ListUsers)parent).report("  ",u);
-                                            else 
+                                            else
                                                 uset.add(u.getId());
                                         }
                                     } else if (fn.code()==404) {
@@ -102,7 +102,7 @@ public class ListUsersWithPerm extends Cmd {
                     }
                 } else if (fn.code()==404) {
                     return 200;
-                } else {    
+                } else {
                     error(fn);
                 }
                 return fn.code();
index 092610c..505417e 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -31,7 +31,7 @@ public class NS extends BaseCmd<NS> {
 
     public NS(AAFcli aafcli) {
         super(aafcli, "ns");
-    
+
         cmds.add(new Create(this));
         cmds.add(new Delete(this));
         cmds.add(new Admin(this));
index 9ca3d21..fd43e8d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -59,18 +59,18 @@ public class Owner extends BaseCmd<NS> {
                     id=fullID(id);
                     String verb;
                     switch(option) {
-                        case 0: 
+                        case 0:
                             fp = client.create("/authz/ns/"+ns+"/responsible/"+id,Void.class);
                             verb = " is now ";
                             break;
-                        case 1: 
+                        case 1:
                             fp = client.delete("/authz/ns/"+ns+"/responsible/"+id,Void.class);
                             verb = " is no longer ";
                             break;
                         default:
                             throw new CadiException("Bad Argument");
                     };
-                
+
                     if (fp.get(AAFcli.timeout())) {
                         pw().append(id);
                         pw().append(verb);
index be49cf2..c444722 100644 (file)
@@ -3,13 +3,14 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 IBM.
  * ===========================================================================
  * 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.
@@ -36,14 +37,14 @@ import aaf.v2_0.PermRequest;
 import aaf.v2_0.RoleRequest;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  */
 public class Create extends Cmd {
     public Create(Perm parent) {
-        super(parent,"create", 
-                new Param("type",true), 
+        super(parent,"create",
+                new Param("type",true),
                 new Param("instance",true),
                 new Param("action", true),
                 new Param("role[,role]* (to Grant to)", false)
@@ -56,7 +57,7 @@ public class Create extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 int idx = index;
-                final PermRequest pr = new PermRequest();  
+                final PermRequest pr = new PermRequest();
                 pr.setType(args[idx++]);
                 pr.setInstance(args[idx++]);
                 pr.setAction(args[idx++]);
@@ -64,7 +65,7 @@ public class Create extends Cmd {
                 String[] roles = roleCommas==null?null:roleCommas.split("\\s*,\\s*");
                 boolean force = aafcli.forceString()!=null;
                 int rv;
-                
+
                 if (roles!=null && force) { // Make sure Roles are Created
                     RoleRequest rr = new RoleRequest();
                     for (String role : roles) {
@@ -81,7 +82,7 @@ public class Create extends Cmd {
                                 break;
                             case 409:
                                 break;
-                            default: 
+                            default:
                                 pw().println("Role [" + role + "] does not exist, and cannot be created.");
                                 return 206 /*HttpStatus.PARTIAL_CONTENT_206*/;
                         }
@@ -113,14 +114,14 @@ public class Create extends Cmd {
                                 switch(fr.code()){
                                     case 201:
                                     case 409:break;
-                                    default: 
-                                        
+                                    default:
+
                                 }
                             }
                         }
-                        
+
                         try {
-                            if (201!=(rv=((Perm)parent)._exec(0, 
+                            if (201!=(rv=((Perm)parent)._exec(0,
                                     new String[] {"grant",pr.getType(),pr.getInstance(),pr.getAction(),roleCommas}))) {
                                 rv = 206 /*HttpStatus.PARTIAL_CONTENT_206*/;
                             }
@@ -144,12 +145,13 @@ public class Create extends Cmd {
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int _indent, StringBuilder sb) {
             int indent = _indent;
         detailLine(sb,indent,"Create a Permission with:");
-        detailLine(sb,indent+=2,"type     - A Namespace qualified identifier identifying the kind of");
+        indent=indent+2;
+        detailLine(sb,indent,"type     - A Namespace qualified identifier identifying the kind of");
         detailLine(sb,indent+11,"resource to be protected");
         detailLine(sb,indent,"instance - A name that distinguishes a particular instance of resource");
         detailLine(sb,indent,"action   - What kind of action is allowed");
index feffbdb..fc1f936 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,8 +41,8 @@ import aaf.v2_0.PermRequest;
  */
 public class Delete extends Cmd {
     public Delete(Perm parent) {
-        super(parent,"delete", 
-                new Param("type",true), 
+        super(parent,"delete",
+                new Param("type",true),
                 new Param("instance",true),
                 new Param("action", true));
     }
@@ -58,7 +58,7 @@ public class Delete extends Cmd {
                 pk.setType(args[idx++]);
                 pk.setInstance(args[idx++]);
                 pk.setAction(args[idx++]);
-        
+
                 if(pk.getType().contains("@")) { // User Perm deletion... Must remove from hidden role
                     client.setQueryParams("force");
                 } else {
@@ -66,7 +66,7 @@ public class Delete extends Cmd {
                     setQueryParamsOn(client);
                 }
                 Future<PermRequest> fp = client.delete(
-                        "/authz/perm", 
+                        "/authz/perm",
                         getDF(PermRequest.class),
                         pk);
                 if (fp.get(AAFcli.timeout())) {
index bb894ca..02c57bd 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,11 +37,11 @@ import aaf.v2_0.PermRequest;
 public class Describe extends Cmd {
     private static final String PERM_PATH = "/authz/perm";
     public Describe(Perm parent) {
-        super(parent,"describe", 
+        super(parent,"describe",
                 new Param("type",true),
                 new Param("instance", true),
                 new Param("action", true),
-                new Param("description",true)); 
+                new Param("description",true));
     }
 
     @Override
@@ -57,16 +57,16 @@ public class Describe extends Cmd {
                 while (idx < args.length) {
                     desc.append(args[idx++] + ' ');
                 }
-        
+
                 PermRequest pr = new PermRequest();
                 pr.setType(type);
                 pr.setInstance(instance);
                 pr.setAction(action);
                 pr.setDescription(desc.toString());
-        
+
                 // Set Start/End commands
                 setStartEnd(pr);
-                
+
                 Future<PermRequest> fp = null;
                 int rv;
 
index f27a260..eb20697 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -38,7 +38,7 @@ import aaf.v2_0.Pkey;
 import aaf.v2_0.RolePermRequest;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  */
@@ -52,7 +52,7 @@ public class Grant extends Cmd {
             new Param("instance",true),
             new Param("action",true),
             new Param("role[,role]*",false)
-            ); 
+            );
     }
 
     @Override
@@ -63,7 +63,7 @@ public class Grant extends Cmd {
                 int idx = index;
                 String action = args[idx++];
                 int option = whichOption(options, action);
-        
+
                 RolePermRequest rpr = new RolePermRequest();
                 Pkey pk = new Pkey();
                 pk.setType(args[idx++]);
@@ -71,9 +71,9 @@ public class Grant extends Cmd {
                 pk.setAction(args[idx++]);
                 rpr.setPerm(pk);
                 setStartEnd(rpr);
-                
+
                 Future<RolePermRequest> frpr = null;
-        
+
                 String[] roles = args[idx++].split(",");
                 String strA;
                 String strB;
@@ -83,7 +83,7 @@ public class Grant extends Cmd {
                         // You can request to Grant Permission to a Role
                         setQueryParamsOn(client);
                         frpr = client.create(
-                                "/authz/role/perm", 
+                                "/authz/role/perm",
                                 getDF(RolePermRequest.class),
                                 rpr
                                 );
@@ -93,7 +93,7 @@ public class Grant extends Cmd {
                         // You can request to UnGrant Permission to a Role
                         setQueryParamsOn(client);
                         frpr = client.delete(
-                                "/authz/role/" + role + "/perm", 
+                                "/authz/role/" + role + "/perm",
                                 getDF(RolePermRequest.class),
                                 rpr
                                 );
@@ -101,7 +101,7 @@ public class Grant extends Cmd {
                         strB = "] from Role [";
                     }
                     if (frpr.get(AAFcli.timeout())) {
-                        pw().println(strA + pk.getType() + '|' + pk.getInstance() + '|' + pk.getAction() 
+                        pw().println(strA + pk.getType() + '|' + pk.getInstance() + '|' + pk.getAction()
                                 + strB + role +']');
                     } else {
                         if (frpr.code()==202) {
@@ -111,7 +111,7 @@ public class Grant extends Cmd {
                         } else {
                             error(frpr);
                             idx=Integer.MAX_VALUE;
-                        }            
+                        }
                     }
                 }
                 return frpr==null?0:frpr.code();
index 8ff2763..2af8d45 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -61,7 +61,7 @@ public class List extends BaseCmd<Perm> {
     // Package Level on purpose
     abstract class ListPerms extends Retryable<Integer> {
         protected int list(Future<Perms> fp,String header, String parentPerm) throws CadiException  {
-            if (fp.get(AAFcli.timeout())) {    
+            if (fp.get(AAFcli.timeout())) {
                 report(fp,header, parentPerm);
             } else {
                 error(fp);
@@ -69,10 +69,10 @@ public class List extends BaseCmd<Perm> {
             return fp.code();
         }
     }
-    
+
     void report(Future<Perms> fp, String ... str) {
         reportHead(str);
-        if (this.aafcli.isDetailed()) {        
+        if (this.aafcli.isDetailed()) {
             String format = "%-36s %-30s %-15s\n";
             String descFmt = "   %-75s\n";
             reportColHead(format + descFmt,"[PERM NS].Type","Instance","Action", "Description");
index c96220a..6400aad 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,9 +40,9 @@ import aaf.v2_0.History;
  */
 public class ListActivity extends Cmd {
     private static final String HEADER = "List Activity of Permission";
-    
+
     public ListActivity(List parent) {
-        super(parent,"activity", 
+        super(parent,"activity",
                 new Param("type",true));
     }
 
@@ -54,7 +54,7 @@ public class ListActivity extends Cmd {
                 int idx = index;
                 String type = args[idx++];
                 Future<History> fp = client.read(
-                        "/authz/hist/perm/"+type, 
+                        "/authz/hist/perm/"+type,
                         getDF(History.class)
                         );
                 if (fp.get(AAFcli.timeout())) {
index 7469eed..e4b0cdb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,16 +34,16 @@ import aaf.v2_0.Perms;
 
 /**
  * Return Perms by NS
- * 
+ *
  * @author Jeremiah
  *
  */
 public class ListByNS extends Cmd {
     private static final String HEADER = "List Perms by NS ";
-    
+
     public ListByNS(List parent) {
-        super(parent,"ns", 
-                new Param("name",true)); 
+        super(parent,"ns",
+                new Param("name",true));
     }
 
     public int _exec( int idx, final String ... args) throws CadiException, APIException, LocatorException {
@@ -53,14 +53,14 @@ public class ListByNS extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<Perms> fp = client.read(
-                        "/authz/perms/ns/"+ns+(aafcli.isDetailed()?"?ns":""), 
+                        "/authz/perms/ns/"+ns+(aafcli.isDetailed()?"?ns":""),
                         getDF(Perms.class)
                         );
                 return list(fp, HEADER, ns);
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index 099fb5f..e13bbed 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,16 +33,16 @@ import org.onap.aaf.misc.env.APIException;
 import aaf.v2_0.Perms;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  */
 public class ListByName extends Cmd {
     private static final String HEADER = "List Child Permissions";
-    
+
     public ListByName(List parent) {
-        super(parent,"name", 
-                new Param("root perm name",true)); 
+        super(parent,"name",
+                new Param("root perm name",true));
     }
 
     public int _exec(final int index, final String ... args) throws CadiException, APIException, LocatorException {
@@ -50,10 +50,10 @@ public class ListByName extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 String parentPerm=args[index];
-                
+
                 Future<Perms> fp = client.read(
-                        "/authz/perms/"+parentPerm+(aafcli.isDetailed()?"?ns":""), 
-                        getDF(Perms.class) 
+                        "/authz/perms/"+parentPerm+(aafcli.isDetailed()?"?ns":""),
+                        getDF(Perms.class)
                         );
                 return list(fp,HEADER,parentPerm);
             }
index 32b78a6..294f6ad 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,16 +34,16 @@ import aaf.v2_0.Perms;
 
 /**
  * Return Perms by Role
- * 
+ *
  * @author Jeremiah
  *
  */
 public class ListByRole extends Cmd {
     private static final String HEADER = "List Perms by Role ";
-    
+
     public ListByRole(List parent) {
-        super(parent,"role", 
-                new Param("name",true)); 
+        super(parent,"role",
+                new Param("name",true));
     }
 
     public int _exec(final int idx, final String ... args) throws CadiException, APIException, LocatorException {
@@ -54,14 +54,14 @@ public class ListByRole extends Cmd {
             public Integer code(Rcli<?> client) throws CadiException, APIException {
 
                 Future<Perms> fp = client.read(
-                        "/authz/perms/role/"+role+(aafcli.isDetailed()?"?ns":""), 
+                        "/authz/perms/role/"+role+(aafcli.isDetailed()?"?ns":""),
                         getDF(Perms.class)
                         );
                 return list(fp, HEADER, role);
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index 00972a1..6b1fe35 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,20 +33,20 @@ import org.onap.aaf.misc.env.APIException;
 import aaf.v2_0.Perms;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  */
 public class ListByUser extends Cmd {
     private static final String HEADER = "List Permissions by User";
     public ListByUser(List parent) {
-        super(parent,"user", 
-                new Param("id",true)); 
+        super(parent,"user",
+                new Param("id",true));
     }
 
     public int _exec( int idx, final String ... args) throws CadiException, APIException, LocatorException {
         final String user=fullID(args[idx]);
-        
+
         return same(((List)parent).new ListPerms() {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
@@ -64,14 +64,14 @@ public class ListByUser extends Cmd {
                     sb.append("ns");
                 }
                 Future<Perms> fp = client.read(
-                        "/authz/perms/user/"+user+(sb==null?"":sb), 
+                        "/authz/perms/user/"+user+(sb==null?"":sb),
                         getDF(Perms.class)
                         );
                 return list(fp,HEADER, user);
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index 40a07f4..499ce73 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
index 5a7b5de..d868a7c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,16 +41,16 @@ import aaf.v2_0.PermRequest;
 
 public class Rename extends Cmd {
     public Rename(Perm parent) {
-        super(parent,"rename", 
-                new Param("type",true), 
+        super(parent,"rename",
+                new Param("type",true),
                 new Param("instance",true),
                 new Param("action", true),
-                new Param("new type",true), 
+                new Param("new type",true),
                 new Param("new instance",true),
                 new Param("new action", true)
                 );
     }
-    
+
     @Override
     public int _exec(final int index, final String ... args) throws CadiException, APIException, LocatorException {
         return same(new Retryable<Integer>() {
@@ -60,13 +60,13 @@ public class Rename extends Cmd {
                 String origType = args[idx++];
                 String origInstance = args[idx++];
                 String origAction = args[idx++];
-                
+
                 //Create new permission
                 PermRequest pr = new PermRequest();
                 pr.setType(args[idx++]);
                 pr.setInstance(args[idx++]);
                 pr.setAction(args[idx++]);
-                
+
                 // Set Start/End commands
                 setStartEnd(pr);
                 try {
@@ -96,9 +96,9 @@ public class Rename extends Cmd {
                 }
             }
         });
-        
+
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,"Rename a Permission from:");
index e44185e..a41256b 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -37,7 +37,7 @@ import org.onap.aaf.misc.env.APIException;
 import aaf.v2_0.RoleRequest;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  */
@@ -45,9 +45,9 @@ public class CreateDelete extends Cmd {
     private static final String ROLE_PATH = "/authz/role";
     private static final String[] options = {"create","delete"};
     public CreateDelete(Role parent) {
-        super(parent,null, 
+        super(parent,null,
                 new Param(optionsToString(options),true),
-                new Param("name",true)); 
+                new Param("name",true));
     }
 
     @Override
@@ -58,13 +58,13 @@ public class CreateDelete extends Cmd {
                 int idx = index;
                 String action = args[idx++];
                 int option = whichOption(options, action);
-        
+
                 RoleRequest rr = new RoleRequest();
                 rr.setName(args[idx++]);
-        
+
                 // Set Start/End commands
                 setStartEnd(rr);
-                
+
                 Future<RoleRequest> fp = null;
                 String verb = null;
                 int rv;
@@ -81,7 +81,7 @@ public class CreateDelete extends Cmd {
                         // Send "Force" if set
                         setQueryParamsOn(client);
                         fp = client.delete(
-                                ROLE_PATH, // +args[idx++], 
+                                ROLE_PATH, // +args[idx++],
                                 getDF(RoleRequest.class),
                                 rr
                                 );
@@ -89,11 +89,11 @@ public class CreateDelete extends Cmd {
                         break;
                     default: // note, if not an option, whichOption throws Exception
                         break;
-                        
+
                 }
                 boolean rolesSupplied = (args.length>idx);
                 if (fp == null) {// This useless code brought to you by Sonar.
-                    throw new CadiException("No call made.");  
+                    throw new CadiException("No call made.");
                 }
                 if (fp.get(AAFcli.timeout())) {
                     rv=fp.code();
index f4d24fb..5341a7c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,9 +37,9 @@ import aaf.v2_0.RoleRequest;
 public class Describe extends Cmd {
     private static final String ROLE_PATH = "/authz/role";
     public Describe(Role parent) {
-        super(parent,"describe", 
+        super(parent,"describe",
                 new Param("name",true),
-                new Param("description",true)); 
+                new Param("description",true));
     }
 
     @Override
@@ -53,14 +53,14 @@ public class Describe extends Cmd {
                 while (idx < args.length) {
                     desc.append(args[idx++] + ' ');
                 }
-        
+
                 RoleRequest rr = new RoleRequest();
                 rr.setName(role);
                 rr.setDescription(desc.toString());
-        
+
                 // Set Start/End commands
                 setStartEnd(rr);
-                
+
                 Future<RoleRequest> fp = null;
                 int rv;
 
index 37d328b..2e3d175 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -59,7 +59,7 @@ public class List extends BaseCmd<Role> {
         cmds.add(new ListByPerm(this));
         cmds.add(new ListActivity(this));
     }
-    
+
     // Package Level on purpose
     abstract class ListRoles extends Retryable<Integer> {
         protected int list(Future<Roles> fr,Rcli<?> client, String header) throws APIException, CadiException {
@@ -68,7 +68,7 @@ public class List extends BaseCmd<Role> {
                 if (aafcli.isDetailed()) {
                     for (aaf.v2_0.Role r : fr.value.getRole()) {
                         Future<Perms> fp = client.read(
-                                "/authz/perms/role/"+r.getName()+(aafcli.isDetailed()?"?ns":""), 
+                                "/authz/perms/role/"+r.getName()+(aafcli.isDetailed()?"?ns":""),
                                 getDF(Perms.class)
                             );
                         if (fp.get(AAFcli.timeout())) {
@@ -93,7 +93,7 @@ public class List extends BaseCmd<Role> {
     private static final String roleExpiredFormat = "%-53s !!! EXPIRED !!! %s\n";
     private static final String permFormat = "   %-30s %-30s %-15s\n";
 
-    
+
     private static final Comparator<aaf.v2_0.Role> roleCompare = new Comparator<aaf.v2_0.Role>() {
         @Override
         public int compare(aaf.v2_0.Role a, aaf.v2_0.Role b) {
@@ -152,13 +152,13 @@ public class List extends BaseCmd<Role> {
                 for (Pkey pkey : r.getPerms()) {
                     Perm perm = get(pkey,perms);
                     if (perm==null || perm.getNs()==null) {
-                        pw().format(permFormat, 
+                        pw().format(permFormat,
                                 pkey.getType(),
                                 pkey.getInstance(),
                                 pkey.getAction());
                     } else {
                         String ns1 = perm.getNs();
-                        pw().format(permFormat, 
+                        pw().format(permFormat,
                                 '['+ns1+"]"+perm.getType().substring(ns1.length()),
                                 perm.getInstance(),
                                 perm.getAction());
@@ -185,7 +185,7 @@ public class List extends BaseCmd<Role> {
                 } else {
                     pw().format(roleFormatNoDate, r.getName());
                     for (Pkey perm : r.getPerms()) {
-                        pw().format(permFormat, 
+                        pw().format(permFormat,
                                 perm.getType(),
                                 perm.getInstance(),
                                 perm.getAction());
index 603ec33..b6a8a0d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,7 +42,7 @@ public class ListActivity extends Cmd {
     private static final String HEADER = "List Activity of Role";
 
     public ListActivity(List parent) {
-        super(parent,"activity", 
+        super(parent,"activity",
                 new Param("name",true));
     }
 
@@ -54,7 +54,7 @@ public class ListActivity extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<History> fp = client.read(
-                        "/authz/hist/role/"+role, 
+                        "/authz/hist/role/"+role,
                         getDF(History.class)
                         );
                 if (fp.get(AAFcli.timeout())) {
index 361676a..02a34f7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,16 +34,16 @@ import aaf.v2_0.Roles;
 
 /**
  * Return Roles by NS
- * 
+ *
  * @author Jonathan
  *
  */
 public class ListByNS extends Cmd {
     private static final String HEADER = "List Roles by NS ";
-    
+
     public ListByNS(List parent) {
-        super(parent,"ns", 
-                new Param("name",true)); 
+        super(parent,"ns",
+                new Param("name",true));
     }
 
     @Override
@@ -54,14 +54,14 @@ public class ListByNS extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<Roles> fp = client.read(
-                        "/authz/roles/ns/"+ns+(aafcli.isDetailed()?"?ns":""), 
+                        "/authz/roles/ns/"+ns+(aafcli.isDetailed()?"?ns":""),
                         getDF(Roles.class)
                         );
                 return list(fp,client, HEADER+"["+ns+"]");
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index 4d77c46..6e5a562 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,16 +34,16 @@ import aaf.v2_0.Roles;
 
 /**
  * Return Roles by NS
- * 
+ *
  * @author Jonathan
  *
  */
 public class ListByNameOnly extends Cmd {
     private static final String HEADER = "List Roles by Name ";
-    
+
     public ListByNameOnly(List parent) {
-        super(parent,"name", 
-                new Param("name",true)); 
+        super(parent,"name",
+                new Param("name",true));
     }
 
     @Override
@@ -54,14 +54,14 @@ public class ListByNameOnly extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<Roles> fp = client.read(
-                        "/authz/roles/name/"+name+(aafcli.isDetailed()?"?ns":""), 
+                        "/authz/roles/name/"+name+(aafcli.isDetailed()?"?ns":""),
                         getDF(Roles.class)
                         );
                 return list(fp,client, HEADER+"["+name+"]");
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index 5d291ac..3d3e5e4 100644 (file)
@@ -8,9 +8,9 @@
  * 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.
@@ -39,18 +39,18 @@ import aaf.v2_0.Roles;
 
 /**
  * Return Roles by NS
- * 
+ *
  * @author Jonathan
  *
  */
 public class ListByPerm extends Cmd {
     private static final String HEADER = "List Roles by Perm ";
-    
+
     public ListByPerm(List parent) {
-        super(parent,"perm", 
+        super(parent,"perm",
                 new Param("type",true),
                 new Param("instance", true),
-                new Param("action", true)); 
+                new Param("action", true));
     }
 
     @Override
@@ -59,15 +59,15 @@ public class ListByPerm extends Cmd {
         final String type=args[idx];
         final String instance=args[++idx];
         final String action = args[++idx];
-        
+
         return same(((List)parent).new ListRoles() {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 try {
                     Future<Roles> fp = client.read(
-                            "/authz/roles/perm/"+type+'/' + 
+                            "/authz/roles/perm/"+type+'/' +
                                 URLEncoder.encode(instance,Config.UTF_8)+'/'+
-                                action, 
+                                action,
                             getDF(Roles.class)
                             );
                     return list(fp,client, HEADER+type+'|'+instance+'|'+action);
@@ -77,7 +77,7 @@ public class ListByPerm extends Cmd {
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index 761df69..6520140 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,16 +33,16 @@ import org.onap.aaf.misc.env.APIException;
 import aaf.v2_0.Roles;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  */
 public class ListByRole extends Cmd {
     private static final String HEADER="List Roles for Role";
-    
+
     public ListByRole(List parent) {
-        super(parent,"role", 
-                new Param("role",true)); 
+        super(parent,"role",
+                new Param("role",true));
     }
 
     @Override
@@ -50,16 +50,16 @@ public class ListByRole extends Cmd {
         return same(((List)parent).new ListRoles() {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
-                String role=args[idx];    
+                String role=args[idx];
                 Future<Roles> fp = client.read(
-                        "/authz/roles/"+role+(aafcli.isDetailed()?"?ns":""), 
-                        getDF(Roles.class) 
+                        "/authz/roles/"+role+(aafcli.isDetailed()?"?ns":""),
+                        getDF(Roles.class)
                         );
                 return list(fp,client,HEADER+"["+role+"]");
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index 8111fed..9657721 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,17 +50,17 @@ import aaf.v2_0.UserRoles;
  */
 public class ListByUser extends Cmd {
     private static final String HEADER = "List Roles for User ";
-    
+
     public ListByUser(List parent) {
-        super(parent,"user", 
+        super(parent,"user",
                 new Param("id",true),
-                new Param("detail", false)); 
+                new Param("detail", false));
     }
 
     @Override
     public int _exec( int idx, final String ... args) throws CadiException, APIException, LocatorException {
         final String user=fullID(args[idx]);
-        
+
 
         return same(new Retryable<Integer>() {
             @Override
@@ -84,7 +84,7 @@ public class ListByUser extends Cmd {
                 if (aafcli.isDetailed()) {
                     roles = new Roles();
                     Future<Perms> fp = client.read(
-                            "/authz/perms/user/"+user+"?ns&force", 
+                            "/authz/perms/user/"+user+"?ns&force",
                             getDF(Perms.class)
                         );
                     if (fp.get(AAFcli.timeout())) {
@@ -108,7 +108,7 @@ public class ListByUser extends Cmd {
                                 r.getPerms().add(p);
                             }
                         }
-                    } 
+                    }
                     code = fp.code();
                 } else {
                     roles = new Roles();
@@ -120,14 +120,14 @@ public class ListByUser extends Cmd {
                         lr.add(r);
                     }
                 }
-                
-                
+
+
                 ((List)parent).report(roles,perms,urs,HEADER,user);
                 return code;
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,HEADER);
index c49df03..b06bc5e 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
index 45361a3..4641ade 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,10 +42,10 @@ import aaf.v2_0.UserRoleRequest;
 public class User extends Cmd {
     private final static String[] options = {"add","del","extend"};
     public User(Role parent) {
-        super(parent,"user", 
+        super(parent,"user",
                 new Param(optionsToString(options),true),
                 new Param("role",true),
-                new Param("id[,id]*",false)); 
+                new Param("id[,id]*",false));
     }
 
     @Override
@@ -60,9 +60,9 @@ public class User extends Cmd {
                 urr.setRole(args[idx++]);
                 // Set Start/End commands
                 setStartEnd(urr);
-                
+
                 Future<?> fp = null;
-                
+
                 String[] ids = args[idx++].split(",");
                 String verb=null,participle=null;
                 // You can request to be added or removed from role.
@@ -74,15 +74,15 @@ public class User extends Cmd {
                     switch(option) {
                         case 0:
                             fp = client.create(
-                                    "/authz/userRole", 
-                                    getDF(UserRoleRequest.class), 
+                                    "/authz/userRole",
+                                    getDF(UserRoleRequest.class),
                                     urr);
                             verb = "Added";
                             participle = "] to Role [" ;
                             break;
                         case 1:
                             fp = client.delete(
-                                    "/authz/userRole/"+urr.getUser()+'/'+urr.getRole(), 
+                                    "/authz/userRole/"+urr.getUser()+'/'+urr.getRole(),
                                     Void.class);
                             verb = "Removed";
                             participle = "] from Role [" ;
@@ -124,7 +124,7 @@ public class User extends Cmd {
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
         detailLine(sb,indent,"Add OR Delete a User to/from a Role OR extend Expiration");
index 1613b2f..1a41008 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -72,7 +72,7 @@ public class Cred extends Cmd {
         if (args.length>idx) {
             cr.setEntry(args[idx]);
         }
-        
+
         // Set Start/End commands
         setStartEnd(cr);
         Integer ret = same(new Retryable<Integer>() {
@@ -83,8 +83,8 @@ public class Cred extends Cmd {
                 switch(option) {
                     case 0:
                         fp = client.create(
-                            CRED_PATH, 
-                            getDF(CredRequest.class), 
+                            CRED_PATH,
+                            getDF(CredRequest.class),
                             cr
                             );
                         verb = "Added Credential [";
@@ -129,7 +129,7 @@ public class Cred extends Cmd {
                     Error err = em.getError(fp);
                     String text = err.getText();
                     List<String> vars = err.getVariables();
-                    
+
                     // IMPORTANT! We do this backward, because it is looking for string
                     // %1 or %13.  If we replace %1 first, that messes up %13
                     for(int i=vars.size()-1;i>0;--i) {
@@ -153,7 +153,7 @@ public class Cred extends Cmd {
         }
         return ret;
     }
-    
+
     @Override
     public void detailedHelp(int indentVar, StringBuilder sb) {
             int indent = indentVar;
@@ -169,7 +169,7 @@ public class Cred extends Cmd {
         sb.append('\n');
         detailLine(sb,indent,"NOTE: AAF does support multiple creds with the same ID. Check with your org if you");
         detailLine(sb,indent+2,"have this implemented. (For example, this is implemented for MechIDs at AT&T)");
-        sb.append('\n');            
+        sb.append('\n');
         detailLine(sb,indent,"*NOTE: com.att.csp is a reserved Domain for Global Sign On");
 
         detailLine(sb,indent,"Delegates can be listed by the User or by the Delegate");
index 3d226f7..f5cb449 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -62,7 +62,7 @@ public class Delg extends BaseCmd<User> {
                 int idx = index;
                 DelgRequest dr = new DelgRequest();
                 setStartEnd(dr);
-        
+
                 int option= whichOption(options, args[idx++]);
                 String user = fullID(args[idx++]);
                 dr.setUser(user);
@@ -79,29 +79,29 @@ public class Delg extends BaseCmd<User> {
                         dr.setEnd(Chrono.timeStamp(date));
                     }
                 }
-        
+
                 Future<DelgRequest> fp;
                 RosettaDF<DelgRequest> df = getDF(DelgRequest.class);
                 String verb;
                 setQueryParamsOn(client);
 
                 switch(option) {
-                    case 0: 
+                    case 0:
                         fp = client.create(AUTHZ_DELG, df, dr);
                         verb = "Added";
                         break;
-                    case 1: 
-                        fp = client.update(AUTHZ_DELG, df, dr); 
+                    case 1:
+                        fp = client.update(AUTHZ_DELG, df, dr);
                         verb = "Updated";
                         break;
-                    case 2: 
-                        fp = client.delete(AUTHZ_DELG, df, dr); 
+                    case 2:
+                        fp = client.delete(AUTHZ_DELG, df, dr);
                         verb = "Deleted";
                         break;
                     default:
                         throw new CadiException("Bad Argument");
                 };
-                
+
                 if (fp.get(AAFcli.timeout())) {
                     pw().append("Delegate ");
                     pw().println(verb);
index 71d61f7..2c88e9f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,7 +45,7 @@ public class ID extends Cmd {
     }
 
     @Override
-    public int _exec(int _idx, final String ... args) throws CadiException, APIException, LocatorException { 
+    public int _exec(int _idx, final String ... args) throws CadiException, APIException, LocatorException {
         int idx = _idx;
         String key = args[idx++];
         final int option = whichOption(options,key);
@@ -55,7 +55,7 @@ public class ID extends Cmd {
         cr.setType(10);
         if (args.length>idx)
             cr.setEntry(args[idx]);
-        
+
         // Set Start/End commands
         setStartEnd(cr);
         Integer ret = same(new Retryable<Integer>() {
@@ -66,8 +66,8 @@ public class ID extends Cmd {
                 switch(option) {
                     case 0:
                         fp = client.create(
-                            CRED_PATH, 
-                            getDF(CredRequest.class), 
+                            CRED_PATH,
+                            getDF(CredRequest.class),
                             cr
                             );
                         verb = "Added ID [";
@@ -105,7 +105,7 @@ public class ID extends Cmd {
         if (ret==null)ret = -1;
         return ret;
     }
-    
+
     @Override
     public void detailedHelp(int _indent, StringBuilder sb) {
             int indent = _indent;
index 212df8a..b301136 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,7 +45,7 @@ public class List extends BaseCmd<User> {
         cmds.add(new ListActivity(this));
     }
 
-     
+
     void report(Users users, boolean count, String ... str) {
         reportHead(str);
         java.util.List<aaf.v2_0.Users.User> sorted = users.getUser();
@@ -68,7 +68,7 @@ public class List extends BaseCmd<User> {
             } else if(type!=null && type>=200) {
                 tag = "\n\tfingerprint: " + tag;
             }
-            pw().format(format, 
+            pw().format(format,
                     user.getId(),
                     org.onap.aaf.auth.cmd.ns.List.getType(user),
                     date,
@@ -107,9 +107,9 @@ public class List extends BaseCmd<User> {
         String format = reportColHead(" %-25s %-25s  %-10s\n","User","Delegate","Expires");
         String date = "XXXX-XX-XX";
         for (Delg delg : delgs.getDelgs()) {
-            if (!this.aafcli.isTest()) 
+            if (!this.aafcli.isTest())
                 date = Chrono.dateOnlyStamp(delg.getExpires());
-            pw().printf(format, 
+            pw().printf(format,
                         delg.getUser(),
                         delg.getDelegate(),
                         date
index 162dada..30c71e5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,7 +42,7 @@ public class ListActivity extends Cmd {
     private static final String HEADER = "List Activity of User";
 
     public ListActivity(List parent) {
-        super(parent,"activity", 
+        super(parent,"activity",
                 new Param("user",true));
     }
 
@@ -53,9 +53,9 @@ public class ListActivity extends Cmd {
         return same(new Retryable<Integer>() {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
-        
+
                 Future<History> fp = client.read(
-                        "/authz/hist/user/"+user, 
+                        "/authz/hist/user/"+user,
                         getDF(History.class)
                         );
                 if (fp.get(AAFcli.timeout())) {
@@ -67,7 +67,7 @@ public class ListActivity extends Cmd {
             }
         });
     }
-    
+
 
     @Override
     public void detailedHelp(int indent, StringBuilder sb) {
index 068aacb..765bd0a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,17 +35,17 @@ import org.onap.aaf.misc.env.APIException;
 import aaf.v2_0.Approvals;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  */
 public class ListApprovals extends Cmd {
-    private static final String HEADER = "List Approvals"; 
-    private final static String[] options = {"user","approver","ticket"};
+    private static final String HEADER = "List Approvals";
+    private static final String[] options = {"user","approver","ticket"};
     public ListApprovals(List parent) {
-        super(parent,"approvals", 
+        super(parent,"approvals",
                 new Param(optionsToString(options),true),
-                new Param("value",true)); 
+                new Param("value",true));
     }
 
     @Override
@@ -64,7 +64,7 @@ public class ListApprovals extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<Approvals> fp = client.read(
-                        "/authz/approval/"+type+'/'+fullValue, 
+                        "/authz/approval/"+type+'/'+fullValue,
                         getDF(Approvals.class)
                         );
                 if (fp.get(AAFcli.timeout())) {
index 28b5c9e..788f1c7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,10 +39,10 @@ import aaf.v2_0.Delgs;
  *
  */
 public class ListDelegates extends Cmd {
-    private static final String HEADER = "List Delegates"; 
+    private static final String HEADER = "List Delegates";
     private static final String[] options = {"user","delegate"};
     public ListDelegates(List parent) {
-        super(parent,"delegates", 
+        super(parent,"delegates",
                 new Param(optionsToString(options),true),
                 new Param("id",true));
     }
@@ -56,9 +56,9 @@ public class ListDelegates extends Cmd {
         return same(new Retryable<Integer>() {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
-        
+
                 Future<Delgs> fp = client.read(
-                        "/authz/delegates/" + key + '/' + id, 
+                        "/authz/delegates/" + key + '/' + id,
                         getDF(Delgs.class)
                         );
                 if (fp.get(AAFcli.timeout())) {
index 176787e..07a19d3 100644 (file)
@@ -9,9 +9,9 @@
  * 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.
@@ -52,7 +52,7 @@ public class ListForCreds extends Cmd {
     public ListForCreds(List parent) {
         super(parent,"cred",
                 new Param(optionsToString(options),true),
-                new Param("value",true)); 
+                new Param("value",true));
     }
 
     @Override
@@ -65,7 +65,7 @@ public class ListForCreds extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<Users> fp = client.read(
-                        "/authn/creds/"+which+'/'+value, 
+                        "/authn/creds/"+which+'/'+value,
                         getDF(Users.class)
                         );
                 if (fp.get(AAFcli.timeout())) {
@@ -74,7 +74,7 @@ public class ListForCreds extends Cmd {
                             @Override
                             public int compare(User u1, User u2) {
                                 return u1.getId().compareTo(u2.getId());
-                            }            
+                            }
                         });
                     ((org.onap.aaf.auth.cmd.user.List)parent).report(fp.value,option==1,HEADER+which,value);
                     if (fp.code()==404) {
@@ -87,7 +87,7 @@ public class ListForCreds extends Cmd {
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int indentParam, StringBuilder sb) {
             int indent = indentParam;
index b40c96c..0ab2490 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,10 +49,10 @@ import aaf.v2_0.Users.User;
 public class ListForPermission extends Cmd {
     private static final String HEADER = "List Users for Permission";
     public ListForPermission(List parent) {
-        super(parent,"perm", 
+        super(parent,"perm",
                 new Param("type",true),
                 new Param("instance",true),
-                new Param("action",true)); 
+                new Param("action",true));
     }
 
     @Override
@@ -68,10 +68,10 @@ public class ListForPermission extends Cmd {
                 if ("\\*".equals(action))action="*";
                 try {
                     Future<Users> fp = client.read(
-                            "/authz/users/perm/" + 
+                            "/authz/users/perm/" +
                                 type + '/' +
-                                URLEncoder.encode(instance,Config.UTF_8) + '/' + 
-                                action, 
+                                URLEncoder.encode(instance,Config.UTF_8) + '/' +
+                                action,
                             getDF(Users.class)
                             );
                     if (fp.get(AAFcli.timeout())) {
@@ -89,7 +89,7 @@ public class ListForPermission extends Cmd {
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int _indent, StringBuilder sb) {
             int indent = _indent;
index 4e539ac..6fdf162 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,7 +42,7 @@ import aaf.v2_0.Users;
 public class ListForRoles extends Cmd {
     private static final String HEADER = "List Users for Role";
     public ListForRoles(List parent) {
-        super(parent,"role", new Param("role",true)); 
+        super(parent,"role", new Param("role",true));
     }
 
     @Override
@@ -53,7 +53,7 @@ public class ListForRoles extends Cmd {
             @Override
             public Integer code(Rcli<?> client) throws CadiException, APIException {
                 Future<Users> fp = client.read(
-                        "/authz/users/role/"+role, 
+                        "/authz/users/role/"+role,
                         getDF(Users.class)
                         );
                 if (fp.get(AAFcli.timeout())) {
@@ -66,7 +66,7 @@ public class ListForRoles extends Cmd {
             }
         });
     }
-    
+
     @Override
     public void detailedHelp(int _indent, StringBuilder sb) {
             int indent = _indent;
index b177778..4261df6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,7 +36,7 @@ import aaf.v2_0.UserRoleRequest;
 
 /**
  * p
- * 
+ *
  * @author Jonathan
  *
  */
@@ -65,7 +65,7 @@ public class Role extends Cmd {
                 Future<?> fp = null;
 
                 if (args.length < 5) {
-                    throw new CadiException(build(new StringBuilder("Too few args: "), null).toString());                        
+                    throw new CadiException(build(new StringBuilder("Too few args: "), null).toString());
                 }
                 String[] roles = args[idx++].split(",");
                 for (String role : roles) {
index 746f9c2..7176cbe 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index bd2eeae..6d366ed 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -34,7 +34,7 @@ import org.onap.aaf.cadi.client.Retryable;
 import org.onap.aaf.cadi.http.HMangr;
 
 public class HMangrStub extends HMangr {
-    
+
     private Rcli<HttpURLConnection> clientMock;
 
     public HMangrStub(Access access, Locator<URI> loc, Rcli<HttpURLConnection> clientMock) throws LocatorException {
index abe4c34..1a43a30 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -147,12 +147,12 @@ public class JU_AAFCli {
     public void eval10() throws Exception {
         assertTrue(cli.eval("set @[ 123"));
     }
-    
+
     @Test
     public void eval11() throws Exception {
         assertTrue(cli.eval("DETAILS @[ 123"));
     }
-    
+
     @Test
     public void eval12() throws Exception {
         assertTrue(cli.eval(". |/, .\"0 \" "));
@@ -179,7 +179,7 @@ public class JU_AAFCli {
         }
         assertTrue(noError);
     }
-    
+
     @Test
     public void eval_randomString() throws Exception {
         assertTrue(cli.eval("Some random string @#&*& to check complete 100 coverage"));
@@ -198,64 +198,64 @@ public class JU_AAFCli {
         // TODO: Consider requiring a default in properties
         env.setProperty(Config.AAF_DEFAULT_REALM,
                 System.getProperty(Config.AAF_DEFAULT_REALM, Config.getDefaultRealm()));
-        
+
         HBasicAuthSS ss = mock(HBasicAuthSS.class);
         env.setProperty(Config.AAF_APPPASS, "test");
         return new AAFcli(env, new OutputStreamWriter(System.out), hman, si, ss);
     }
-    
+
     @Test
     public void testVerbose() {
         cli.verbose(true);
         cli.verbose(false);
     }
-    
+
     @Test
     public void testClose() {
         cli.close();
     }
-    
+
     @Test
     public void testTimeout() {
         Assert.assertNotNull(cli.timeout());
     }
-    
+
     @Test
     public void testTest() {
         Assert.assertNotNull(cli.isTest());
     }
-    
+
     @Test
     public void testIsDetailed() {
         Assert.assertNotNull(cli.isDetailed());
     }
-    
+
     @Test
     public void testAddRequest() {
         Assert.assertNotNull(cli.addRequest());
     }
-    
+
     @Test
     public void testForceString() {
         cli.clearSingleLineProperties();
         Assert.assertNull(cli.forceString());
     }
-    
+
     @Test
     public void testClearSingleLineProperties() {
         cli.clearSingleLineProperties();
     }
-    
+
     @Test
     public void testGui() {
         cli.gui(true);
         cli.gui(false);
     }
-    
+
     @Test
     public void testMain() {
         String[] strArr = {"\\*","test1"};
         //cli.main(strArr);
     }
-    
+
 }
index e2e2bff..92fdc83 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -65,7 +65,7 @@ public class JU_BaseCmd {
         assertEquals(bCmd._exec(4, "add", "del", "reset", "extend"), 0);
 
     }
-    
+
     @Test
     public void exec1() throws CadiException, APIException, LocatorException {
         assertEquals(bCmd._exec(0, "add", "del", "reset", "extend"), 0);
index bfb4b67..a2074bf 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -36,7 +36,7 @@ import junit.framework.Assert;
 //TODO: Gabe [JUnit] Import missing
 @RunWith(MockitoJUnitRunner.class)
 public class JU_BasicAuth {
-    
+
 //    @Test
 //    public void getID () {
 //        try {
@@ -47,9 +47,9 @@ public class JU_BasicAuth {
 //            // TODO Auto-generated catch block
 //            e.printStackTrace();
 //        }
-//        
+//
 //    }
-    
+
     @Test
     public void netYetTested() {
         Assert.assertTrue(true);
index e3cfbd1..b31f104 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -67,7 +67,7 @@ public class JU_Cmd {
     CmdStub cmd1;
     CmdStub cmd2;
     AAFcli cli;
-    
+
     private class CmdStub extends Cmd {
 
 
@@ -75,7 +75,7 @@ public class JU_Cmd {
             super(aafcli, name, params);
             // TODO Auto-generated constructor stub
         }
-        
+
         public CmdStub(Cmd parent, String name, Param[] params) {
             super(parent, name, params);
             // TODO Auto-generated constructor stub
@@ -86,40 +86,40 @@ public class JU_Cmd {
             // TODO Auto-generated method stub
             return 0;
         }
-        
+
         @Override
         public void error(Future<?> future) {
             super.error(future);
         }
 
     }
-    
+
     @Before
     public void setUp() throws APIException, LocatorException, GeneralSecurityException, IOException, CadiException {
         cli = JU_AAFCli.getAAfCli();
         Param[] param = new Param[] {new Param("name",true)};
-        
+
         cmd = new CmdStub(cli,"test", param);
         cmd1 = new CmdStub(cmd,"test", param);
         cmd2 = new CmdStub(cmd,"test", param);
     }
-    
+
     @Test
     public void testReportColHead() {
         String[] args = new String[] {new String("test")};
         cmd.reportColHead("format", args);
     }
-    
+
     @Test
     public void testBuilder() {
         StringBuilder detail = new StringBuilder();
         StringBuilder sb = new StringBuilder("test 123");
-        
+
         cmd.build(sb, detail);
         detail.append("test");
         cmd.build(sb, detail);
     }
-    
+
     @Test
     public void testApi() throws APIException, CadiException {
         StringBuilder sb = new StringBuilder("test 123");
@@ -131,19 +131,19 @@ public class JU_Cmd {
         Clear clr = new Clear(cache);
         clr.detailedHelp(0, sb);
     }
-    
+
     @Test
     public void testToString() {
         cmd.toString();
     }
-    
+
     @Test
     public void testFullID() {
         cmd.fullID("test");
         cmd.fullID("t@st");
         cmd.fullID(null);
     }
-    
+
     @Test
     public void testError() {
         Future<?> future = mock(Future.class);
@@ -161,32 +161,32 @@ public class JU_Cmd {
         when(future.body()).thenReturn("<html>NotNull");
         cmd.error(future);
     }
-    
+
     @Test
     public void testActivity() {
         History hist = new History();
         cmd.activity(hist, "test");
         cmd.activity(hist, "te[st");
     }
-    
+
     @Test
     public void testWhichOption() throws CadiException {
         String[] strArr = {"a", "b", "c"};
         cmd.whichOption(strArr, "b");
     }
-    
+
     @Test
     public void testOneOf() throws APIException, CadiException, LocatorException {
         Retryable retryable = mock(Retryable.class);
         //cmd.oneOf(retryable, "host");            //TODO: AAF-111 need input for hMan
     }
-    
+
     @Test
     public void testExec() throws CadiException, APIException, LocatorException {
         String[] strArr = {"a", "b", "c"};
         cmd.exec(1, strArr);
     }
-    
-    
+
+
 
 }
index 3269747..c6dcc14 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -49,7 +49,7 @@ public class JU_DeprecatedCMD {
 
     CmdStub cmd;
     AAFcli cli;
-    
+
     private class CmdStub extends Cmd {
 
         public CmdStub(AAFcli aafcli, String name, Param[] params) {
@@ -62,14 +62,14 @@ public class JU_DeprecatedCMD {
             // TODO Auto-generated method stub
             return 0;
         }
-        
+
     }
-    
+
     @Test
     public void testExec() throws CadiException, APIException, LocatorException, GeneralSecurityException, IOException {
         cli = JU_AAFCli.getAAfCli();
         Param[] param = new Param[] {new Param("name",true)};
-        
+
         cmd = new CmdStub(cli,"test", param);
         DeprecatedCMD deprecatedcmd = new DeprecatedCMD(cmd,"test", "test");
         deprecatedcmd._exec(0, "test");
index d2e7b97..92cb9b8 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -51,7 +51,7 @@ import junit.framework.Assert;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Help {
-    
+
     private static AAFcli cli;
     private static Help help;
     String[] strArr = {"null","null","b","c"};
@@ -62,7 +62,7 @@ public class JU_Help {
             super(aafcli, name, params);
             // TODO Auto-generated constructor stub
         }
-        
+
         public CmdStub(Cmd parent, String name, Param[] params) {
             super(parent, name, params);
             // TODO Auto-generated constructor stub
@@ -73,17 +73,17 @@ public class JU_Help {
             // TODO Auto-generated method stub
             return 0;
         }
-        
+
         @Override
         public void error(Future<?> future) {
             super.error(future);
-        }    
-    
+        }
+
     }
-    
+
     @Mock
     private static List<Cmd> cmds;
-    
+
     @Before
     public void setUp() throws APIException, LocatorException, GeneralSecurityException, IOException, CadiException {
         cli = JU_AAFCli.getAAfCli();
@@ -93,7 +93,7 @@ public class JU_Help {
         cmds.add(cmd);
         help = new Help(cli, cmds);
     }
-    
+
     @Test
     public void exec_HTTP_200() {
         try {
@@ -104,7 +104,7 @@ public class JU_Help {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void exec_HTTP_200_1() {
         try {
@@ -114,7 +114,7 @@ public class JU_Help {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void detailhelp() {
         boolean hasError=false;
index de8e83a..e2bdcae 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -46,22 +46,22 @@ import junit.framework.Assert;
 //TODO: Gabe [JUnit] Import missing
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Version {
-    
+
     private static AAFcli cli;
     private static Version version;
-    
+
     @BeforeClass
     public static void setUp() throws APIException, LocatorException, GeneralSecurityException, IOException, CadiException {
         cli = JU_AAFCli.getAAfCli();
         version = new Version(cli);
     }
-    
+
 //    @Test
 //    public void exec_HTTP_200() throws CadiException, APIException, LocatorException {
 //        assertEquals(version._exec(0, "Version"), HttpStatus.OK_200);
 //
 //    }
-    
+
     @Test                        //TODO: Temporary fix AAF-111
     public void netYetTested() {
         Assert.assertTrue(true);
index 4102e59..b5fb99d 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -59,17 +59,17 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Clear {
-    
+
     private static Clear clr;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
     Cache cache;
     Mgmt mgmt;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -77,14 +77,14 @@ public class JU_Clear {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-//        hman = new HMangr(aEnv, loc);    
+//        hman = new HMangr(aEnv, loc);
 //        aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
 //        mgmt = new Mgmt(aafcli);
 //        cache = new Cache(mgmt);
 //        clr = new Clear(cache);
-        
+
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -95,10 +95,10 @@ public class JU_Clear {
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
 //        HRcli hcli = new HRcli(hman, uri, value, secSet);
 //        String[] strArr = {"grant","ungrant","setTo","grant","ungrant","setTo"};
-        //clr._exec(0, strArr);                
+        //clr._exec(0, strArr);
 
     }
-    
+
     @Test
     public void testDetailedHelp() throws CadiException {
         Define define = new Define();
index 5b37288..ac33afd 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -59,14 +59,14 @@ import java.net.URISyntaxException;
 import org.junit.Test;
 
 public class JU_Deny {
-    
+
     Deny deny;
     DenySomething denyS;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
 
     @Before
@@ -76,15 +76,15 @@ public class JU_Deny {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-//        hman = new HMangr(aEnv, loc);    
+//        hman = new HMangr(aEnv, loc);
 //        aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
 //        Mgmt mgmt = new Mgmt(aafcli);
 //        deny = new Deny(mgmt);
         //denyS = deny.new DenySomething(deny,"ip","ipv4or6[,ipv4or6]*");
 
     }
-    
-    
+
+
 
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
@@ -99,10 +99,10 @@ public class JU_Deny {
 
 //        String[] strArr = {"add","del", "add","del"};
 //        deny._exec(0, strArr);
-//        
+//
 //        String[] strArr1 = {"del", "add","del"};
 //        deny._exec(0, strArr1);
-        
+
     }
 
 }
index 7edeaa1..0110057 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -56,16 +56,16 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Log {
-    
+
     private static Log log;
     private static Log log1;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp() throws APIException, LocatorException, CadiException {
         prop = new PropAccess();
@@ -73,12 +73,12 @@ public class JU_Log {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Mgmt mgmt = new Mgmt(aafcli);
         log1 = new Log(mgmt);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -97,7 +97,7 @@ public class JU_Log {
 //        log1._exec(0, strArr1);
 
     }
-    
+
     @Test
     public void testDetailedHelp() throws CadiException {
         Define define = new Define();
index 5e88dca..a51dbf4 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,15 +57,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_SessClear {
-    
+
     private static SessClear sessclr;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public  void setUp() throws LocatorException, APIException, CadiException {
         prop = new PropAccess();
@@ -73,13 +73,13 @@ public class JU_SessClear {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-//        hman = new HMangr(aEnv, loc);    
+//        hman = new HMangr(aEnv, loc);
 //        aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
 //        Mgmt mgmt = new Mgmt(aafcli);
 //        Session sess = new Session(mgmt);
 //        sessclr = new SessClear(sess);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -95,7 +95,7 @@ public class JU_SessClear {
         //sessclr._exec(0, strArr);
 
     }
-    
+
     @Test
     public void testDetailedHelp() throws CadiException {
         Define define = new Define();
index 8a080ee..faca9ff 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -58,14 +58,14 @@ import org.onap.aaf.misc.env.APIException;
 public class JU_Admin {
 
     private static Admin admin;
-    
+
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
 
     @Before
     public void setUp() throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
@@ -74,13 +74,13 @@ public class JU_Admin {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         NS ns = new NS(aafcli);
         admin = new Admin(ns);
-        
+
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -93,10 +93,10 @@ public class JU_Admin {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"add", "del","add","add"};
 //        admin._exec(0, strArr);
-//        
+//
 //        String[] strArr1 = {"del","add","add"};
 //        admin._exec(0, strArr1);
-        
+
     }
 
     @Test
index 7ccf657..62e3270 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -67,7 +67,7 @@ public class JU_Attrib {
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
 
     @Before
@@ -77,7 +77,7 @@ public class JU_Attrib {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         NS ns = new NS(aafcli);
         attrib = new Attrib(ns);
@@ -95,13 +95,13 @@ public class JU_Attrib {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"add","upd","del","add","upd","del"};
 //        attrib._exec(0, strArr);
-//        
+//
 //        String[] strArr1 = {"upd","del","add","upd","del","add"};
 //        attrib._exec(0, strArr1);
-//        
+//
 //        String[] strArr2 = {"del","add","upd","del","add","upd"};
 //        attrib._exec(0, strArr2);
-        
+
     }
 
     @Test
index a0e95ab..f76fcd5 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,9 +57,9 @@ public class JU_Create {
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp() throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -67,13 +67,13 @@ public class JU_Create {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         NS ns = new NS(aafcli);
         create = new Create(ns);
     }
-    
-    
+
+
 
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
@@ -87,7 +87,7 @@ public class JU_Create {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"add","upd","del","add","upd","del"};
         create._exec(0, strArr);
-        
+
     }
 
     @Test
index 2c12d51..3ac8402 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -55,9 +55,9 @@ public class JU_Delete {
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp() throws APIException, LocatorException, GeneralSecurityException, IOException, CadiException {
         prop = new PropAccess();
@@ -65,7 +65,7 @@ public class JU_Delete {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         NS ns = new NS(aafcli);
         delete = new Delete(ns);
@@ -84,7 +84,7 @@ public class JU_Delete {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"add","upd","del","add","upd","del"};
 //        delete._exec(0, strArr);
-        
+
     }
 
     @Test
index 9cc8ed1..601f0a2 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -49,15 +49,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Describe {
-    
+
     private static Describe desc;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -65,12 +65,12 @@ public class JU_Describe {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         NS ns = new NS(aafcli);
         desc = new Describe(ns);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -83,9 +83,9 @@ public class JU_Describe {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"add","upd","del","add","upd","del"};
 //        desc._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index e4100a0..683db0b 100644 (file)
@@ -54,19 +54,19 @@ import static org.mockito.Mockito.*;
 import org.junit.Test;
 
 public class JU_List {
-    
+
     List list;
     AAFcli aafcli;
     User user;
-    
+
     private class NssStub extends Nss {
-        public void addNs(Nss.Ns ns) {    
+        public void addNs(Nss.Ns ns) {
             if (this.ns == null) {
                 this.ns = new ArrayList<>();
             }
             this.ns.add(ns);
         }
-        
+
         private class NsStub extends Ns{
             public void addAttrib(Nss.Ns.Attrib attrib) {
                 if ( this.attrib == null) {
@@ -74,14 +74,14 @@ public class JU_List {
                 }
                 this.attrib.add(attrib);
             }
-            
+
             public void addResponsible(String str) {
                 if (this.responsible == null) {
                     this.responsible = new ArrayList<>();
                 }
                 this.responsible.add(str);
             }
-            
+
             public void addAdmin(String str) {
                 if (this.admin == null) {
                     this.admin = new ArrayList<>();
@@ -89,12 +89,12 @@ public class JU_List {
                 this.admin.add(str);
             }
         }
-        
-        
-        
-        
+
+
+
+
     }
-    
+
 
     @Before
     public void setUp() throws APIException, LocatorException, CadiException {
@@ -102,14 +102,14 @@ public class JU_List {
         AuthzEnv aEnv = new AuthzEnv();
         Writer wtr = mock(Writer.class);
         Locator loc = mock(Locator.class);
-        HMangr hman = new HMangr(aEnv, loc);        
+        HMangr hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, null);
         user = new User();
         NS ns = new NS(aafcli);
-        
+
         list = new List(ns);
     }
-    
+
     @Test
     public void testReport() throws Exception {
         Future<Nss> fu = mock(Future.class);
@@ -124,10 +124,10 @@ public class JU_List {
         nssStub.addNs(nsStub);
         fu.value = nssStub;
         aafcli.eval("DETAILS @[ 123");
-        
+
         list.report(fu, "test");
     }
-    
+
     @Test
     public void testGetType() {
         Assert.assertEquals("n/a", list.getType(user));
@@ -140,5 +140,5 @@ public class JU_List {
         user.setType(200);
         Assert.assertEquals("x509", list.getType(user));
     }
-    
+
 }
index 0f8ae5c..f534c7f 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -58,15 +58,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListActivity {
-    
+
     private static ListActivity lsActivity;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -74,13 +74,13 @@ public class JU_ListActivity {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         NS ns = new NS(aafcli);
         List ls = new List(ns);
         lsActivity = new ListActivity(ls);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -93,9 +93,9 @@ public class JU_ListActivity {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"add","upd","del","add","upd","del"};
         //lsActivity._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 2315f8c..31bfa50 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,15 +57,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListAdminResponsible {
-    
+
     private static ListAdminResponsible lsAdminRes;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -73,13 +73,13 @@ public class JU_ListAdminResponsible {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         NS ns = new NS(aafcli);
         List ls = new List(ns);
         lsAdminRes = new ListAdminResponsible(ls);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -92,9 +92,9 @@ public class JU_ListAdminResponsible {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"add","upd","del","add","upd","del"};
         //lsAdminRes._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 63ebd74..c2106eb 100644 (file)
@@ -8,9 +8,9 @@
  * * 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.
@@ -58,15 +58,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByName {
-    
+
     private static ListByName lsByName;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -74,13 +74,13 @@ public class JU_ListByName {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         NS ns = new NS(aafcli);
         List ls = new List(ns);
         lsByName = new ListByName(ls);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -93,9 +93,9 @@ public class JU_ListByName {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"add","upd","del","add","upd","del"};
         //lsByName._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 3f76cd2..6cc3833 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -42,9 +42,9 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListChildren {
-    
+
     private static ListChildren lsChildren;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
@@ -52,7 +52,7 @@ public class JU_ListChildren {
         List ls = new List(ns);
         lsChildren = new ListChildren(ls);
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
@@ -68,7 +68,7 @@ public class JU_ListChildren {
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 68a0337..c355948 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,9 +41,9 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListNsKeysByAttrib {
-    
+
     private static ListNsKeysByAttrib lsNsKeys;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
@@ -51,7 +51,7 @@ public class JU_ListNsKeysByAttrib {
         List ls = new List(ns);
         lsNsKeys = new ListNsKeysByAttrib(ls);
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
@@ -67,7 +67,7 @@ public class JU_ListNsKeysByAttrib {
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index f400e16..264a42c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,7 +56,7 @@ public class JU_ListUsers {
     NS ns;
     List list;
     ListUsers lUsers;
-    
+
     @Before
     public void setUp() throws APIException, LocatorException, GeneralSecurityException, IOException, CadiException {
         cli = JU_AAFCli.getAAfCli();
@@ -64,14 +64,14 @@ public class JU_ListUsers {
         list = new List(ns);
         lUsers = new ListUsers(list);
     }
-    
+
     @Test
     public void testReports() throws DatatypeConfigurationException {
         Users.User user = new Users.User();
         GregorianCalendar gcal = new GregorianCalendar();
         XMLGregorianCalendar xgcal = DatatypeFactory.newInstance().newXMLGregorianCalendar(gcal);
         user.setExpires(xgcal);
-        
+
         lUsers.report("header", "ns");
         lUsers.report("subHead");
         lUsers.report("prefix", user);
index e002979..19f12e0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -59,13 +59,13 @@ public class JU_ListUsersContact {
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
     NS ns;
     List list;
     ListUsers lUsers;
     ListUsersContact lUContact;
-    
+
     @Before
     public void setUp() throws LocatorException, APIException, CadiException {
         prop = new PropAccess();
@@ -73,13 +73,13 @@ public class JU_ListUsersContact {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         ns = new NS(aafcli);
         list = new List(ns);
         lUsers = new ListUsers(list);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         lUContact = new ListUsersContact(lUsers);
@@ -92,9 +92,9 @@ public class JU_ListUsersContact {
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         //lUContact._exec(0, "test");
-        
+
     }
-    
+
     @Test
     public void testDetailedHelp() {
         lUContact = new ListUsersContact(lUsers);
index 4abc6e3..ad4f860 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index ee514db..9fb8a0c 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -71,7 +71,7 @@ public class JU_ListUsersWithPerm {
         }
         assertEquals(hasNoError, true);
     }
-    
+
     @Test                        //TODO: Temporary fix AAF-111
     public void netYetTested() {
         Assert.assertTrue(true);
index 2b552b9..c418b38 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -60,14 +60,14 @@ public class JU_Owner {
         NS ns = new NS(cli);
         owner = new Owner(ns);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         String[] strArr = {"add","del","add","del"};
         //owner._exec(0, strArr);
 
     }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
index 515a676..5fcf310 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -67,7 +67,7 @@ public class JU_Responsible {
 //        }
 //        assertEquals(hasNoError, true);
 //    }
-    
+
     @Test
     public void netYetTested() {
         Assert.assertTrue(true);
index 80c6d82..6118e3d 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -60,19 +60,19 @@ public class JU_Create {
     @Mock private Writer wrtMock;
     @Mock private Rcli<HttpURLConnection> clientMock;
     @Mock private Future<String> futureMock;
-        
+
     private static Create create;
 
     private NS ns;
     private PropAccess access;
-    private HMangrStub hman;    
+    private HMangrStub hman;
     private AuthzEnv aEnv;
     private AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         MockitoAnnotations.initMocks(this);
-        
+
         when(clientMock.create(any(), any(), any(String.class))).thenReturn(futureMock);
         when(clientMock.delete(any(), any(), any(String.class))).thenReturn(futureMock);
         when(clientMock.update(any(), any(), any(String.class))).thenReturn(futureMock);
@@ -81,18 +81,18 @@ public class JU_Create {
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
         aEnv = new AuthzEnv();
         aafcli = new AAFcli(access, aEnv, wrtMock, hman, null, ssMock);
-        
+
         ns = new NS(aafcli);
 
         create = new Create(ns);
     }
-    
+
     @Test
     public void testError() throws APIException, LocatorException, CadiException, URISyntaxException {
         create._exec(0, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
         create._exec(4, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
     }
-    
+
     @Test
     public void testSuccess1() throws APIException, LocatorException, CadiException, URISyntaxException {
         when(futureMock.code()).thenReturn(202);
@@ -104,11 +104,11 @@ public class JU_Create {
         when(futureMock.get(any(Integer.class))).thenReturn(true);
         create._exec(0, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
         create.detailedHelp(0, sb);
     }
-    
+
 }
index 3cfdf5c..232e5d8 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -58,7 +58,7 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Delete {
-    
+
     @Mock private SecuritySetter<HttpURLConnection> ssMock;
     @Mock private Locator<URI> locMock;
     @Mock private Writer wrtMock;
@@ -66,12 +66,12 @@ public class JU_Delete {
     @Mock private Future<String> futureMock;
 
     private static Delete del;
-    
+
     private PropAccess access;
-    private HMangrStub hman;    
+    private HMangrStub hman;
     private AuthzEnv aEnv;
     private AAFcli aafcli;
-    
+
     @Before
     public void setUp() throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         MockitoAnnotations.initMocks(this);
@@ -90,7 +90,7 @@ public class JU_Delete {
 
         del = new Delete(perm);
     }
-    
+
     @Test
     public void testExecError() throws APIException, LocatorException, CadiException, URISyntaxException {
         del._exec(0, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
@@ -101,17 +101,17 @@ public class JU_Delete {
         when(futureMock.code()).thenReturn(202);
         del._exec(0, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
     }
-    
+
     @Test
     public void testExecSuccess2() throws APIException, LocatorException, CadiException, URISyntaxException {
         when(futureMock.get(any(Integer.class))).thenReturn(true);
         del._exec(0, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
         del.detailedHelp(0, sb);
     }
-    
+
 }
index 29a72a3..435d03e 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -65,12 +65,12 @@ public class JU_Describe {
     @Mock private Future<String> futureMock;
 
     private PropAccess access;
-    private HMangrStub hman;    
+    private HMangrStub hman;
     private AuthzEnv aEnv;
     private AAFcli aafcli;
-    
+
     private Describe desc;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         MockitoAnnotations.initMocks(this);
@@ -89,24 +89,24 @@ public class JU_Describe {
 
         desc = new Describe(perm);
     }
-    
+
     @Test
     public void testExecError() throws APIException, LocatorException, CadiException, URISyntaxException {
         desc._exec(0, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
     }
-    
+
     @Test
     public void testExecSuccess1() throws APIException, LocatorException, CadiException, URISyntaxException {
         when(futureMock.code()).thenReturn(202);
         desc._exec(0, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
     }
-    
+
     @Test
     public void testExecSuccess2() throws APIException, LocatorException, CadiException, URISyntaxException {
         when(futureMock.get(any(Integer.class))).thenReturn(true);
         desc._exec(0, new String[] {"grant","ungrant","setTo","grant","ungrant","setTo"});
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index ebd5f5f..02f3e13 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,7 +57,7 @@ import org.onap.aaf.auth.cmd.test.HMangrStub;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Grant {
-    
+
     private static Grant grant;
 
     @Mock private SecuritySetter<HttpURLConnection> ssMock;
@@ -67,10 +67,10 @@ public class JU_Grant {
     @Mock private Future<String> futureMock;
 
     private PropAccess access;
-    private HMangrStub hman;    
+    private HMangrStub hman;
     private AuthzEnv aEnv;
     private AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         MockitoAnnotations.initMocks(this);
@@ -94,20 +94,20 @@ public class JU_Grant {
     public void testExecError() throws APIException, LocatorException, CadiException, URISyntaxException {
         grant._exec(0, new String[] {"grant","type","instance","action","role"});
     }
-    
+
     @Test
     public void testExecSuccess1() throws APIException, LocatorException, CadiException, URISyntaxException {
         when(futureMock.code()).thenReturn(202);
         grant._exec(0, new String[] {"grant","type","instance","action","role"});
 
     }
-    
+
     @Test
     public void testExecSuccess2() throws APIException, LocatorException, CadiException, URISyntaxException {
         when(futureMock.get(any(Integer.class))).thenReturn(true);
         grant._exec(0, new String[] {"grant","type","instance","action","role"});
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index c28f65b..a658ec7 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -58,15 +58,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListActivity {
-    
+
     private static ListActivity lsActivity;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -74,14 +74,14 @@ public class JU_ListActivity {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         Perm perm = new Perm(role);
         List ls = new List(perm);
         lsActivity = new ListActivity(ls);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -96,7 +96,7 @@ public class JU_ListActivity {
         //lsActivity._exec(0, strArr);
 
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index c611300..9610679 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -42,9 +42,9 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByNS {
-    
+
     private static ListByNS lsByNS;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
@@ -53,7 +53,7 @@ public class JU_ListByNS {
         List ls = new List(perm);
         lsByNS = new ListByNS(ls);
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
@@ -69,7 +69,7 @@ public class JU_ListByNS {
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 856867c..b319a7b 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -58,15 +58,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByName {
-    
+
     private static ListByName lsByName;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -74,14 +74,14 @@ public class JU_ListByName {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         Perm perm = new Perm(role);
         List ls = new List(perm);
         lsByName = new ListByName(ls);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -96,7 +96,7 @@ public class JU_ListByName {
         //lsByName._exec(0, strArr);
 
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 600d1c4..f471e4e 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -42,9 +42,9 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByRole {
-    
+
     private static ListByRole lsByRole;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
@@ -53,7 +53,7 @@ public class JU_ListByRole {
         List ls = new List(perm);
         lsByRole = new ListByRole(ls);
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
@@ -69,7 +69,7 @@ public class JU_ListByRole {
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 6c451d0..f7a48d9 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -42,9 +42,9 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByUser {
-    
+
     private static ListByUser lsByName;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
@@ -53,7 +53,7 @@ public class JU_ListByUser {
         List ls = new List(perm);
         lsByName = new ListByUser(ls);
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
@@ -69,7 +69,7 @@ public class JU_ListByUser {
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index c5ae3d2..b7eef51 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,15 +57,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Rename {
-    
+
     private static Rename rename;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -73,13 +73,13 @@ public class JU_Rename {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         Perm perm = new Perm(role);
         rename = new Rename(perm);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -92,9 +92,9 @@ public class JU_Rename {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"grant","ungrant","setTo","grant","ungrant","setTo"};
 //        rename._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index c863f9e..3c7d4c0 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -56,15 +56,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_CreateDelete {
-    
+
     private static CreateDelete createDel;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -72,12 +72,12 @@ public class JU_CreateDelete {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         createDel = new CreateDelete(role);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -90,12 +90,12 @@ public class JU_CreateDelete {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"create","delete","create","delete"};
 //        createDel._exec(0, strArr);
-//        
+//
 //        String[] strArr1 = {"delete","create","delete"};
 //        createDel._exec(0, strArr1);
-        
+
     }
-    
+
     @Test
     public void testDetailedHelp() {
         boolean hasNoError = true;
index a93a2ae..9bddbeb 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -50,15 +50,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Describe {
-    
+
     private static Describe desc;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -66,12 +66,12 @@ public class JU_Describe {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         desc = new Describe(role);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -84,9 +84,9 @@ public class JU_Describe {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"add","upd","del","add","upd","del"};
 //        desc._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
index 4ddd421..bbdb77e 100644 (file)
@@ -66,7 +66,7 @@ import java.util.ArrayList;
 import org.junit.Test;
 
 public class JU_List {
-    
+
     AAFcli cli;
     Role role;
     List list;
@@ -74,7 +74,7 @@ public class JU_List {
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
 
     private class ListRolesStub extends List {
@@ -84,7 +84,7 @@ public class JU_List {
             // TODO Auto-generated constructor stub
         }
     }
-    
+
     private class RolesStub extends Roles {
         public void addRole(aaf.v2_0.Role role) {
             if (this.role == null) {
@@ -93,17 +93,17 @@ public class JU_List {
             this.role.add(role);
         }
     }
-    
+
     private class RoleStub extends aaf.v2_0.Role {
-        
+
         public void addPerms(Pkey perms) {
             if (this.perms == null) {
                 this.perms = new ArrayList<>();
             }
-            this.perms.add(perms); 
+            this.perms.add(perms);
         }
     }
-    
+
     @Before
     public void setUp() throws APIException, LocatorException, GeneralSecurityException, IOException, CadiException{
         prop = new PropAccess();
@@ -111,19 +111,19 @@ public class JU_List {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         role = new Role(aafcli);
         list = new List(role);
     }
-    
+
     @Test
     public void testRoles() throws APIException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
         Role role = new Role(aafcli);
         ListRolesStub listStub = new ListRolesStub(role);
         Future future = mock(Future.class);
         Rcli rcli = mock(Rcli.class);
-        
+
         Class c = listStub.getClass();
         Class[] cArg = new Class[3];
         cArg[0] = Future.class;
@@ -132,9 +132,9 @@ public class JU_List {
         //Method listMethod = c.getDeclaredMethod("list", cArg);
         //listMethod.setAccessible(true);
         //listMethod.invoke(listStub, future, rcli, "test");
-        
+
     }
-    
+
     @Test
     public void testReport() throws Exception {
         UserRoles urs = new UserRoles();
@@ -152,7 +152,7 @@ public class JU_List {
         role.addPerms(pkey);
         list.report(roles, perms , null , "test");
         list.report(roles, perms , urs , "test");
-        
+
         aafcli.eval("DETAILS @[ 123");
         role.setName("test");
 
index c8ff94f..1c5e586 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,15 +57,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListActivity {
-    
+
     private static ListActivity lsActivity;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -73,13 +73,13 @@ public class JU_ListActivity {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         List ls = new List(role);
         lsActivity = new ListActivity(ls);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -92,9 +92,9 @@ public class JU_ListActivity {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"add","upd","del","add","upd","del"};
         //lsActivity._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
index b58e44f..2369f14 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,9 +41,9 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByNS {
-    
+
     private static ListByNS lsByNS;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
@@ -51,7 +51,7 @@ public class JU_ListByNS {
         List ls = new List(role);
         lsByNS = new ListByNS(ls);
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
@@ -67,7 +67,7 @@ public class JU_ListByNS {
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
index c8a8717..79156c1 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,15 +57,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByNameOnly {
-    
+
     private static ListByNameOnly lsByName;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -73,13 +73,13 @@ public class JU_ListByNameOnly {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         List ls = new List(role);
         lsByName = new ListByNameOnly(ls);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -92,9 +92,9 @@ public class JU_ListByNameOnly {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"add","upd","del","add","upd","del"};
         //lsByName._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
index 44f642e..646bffd 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,9 +41,9 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByPerm {
-    
+
     private static ListByPerm lsByPerm;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
@@ -51,7 +51,7 @@ public class JU_ListByPerm {
         List ls = new List(role);
         lsByPerm = new ListByPerm(ls);
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
@@ -67,7 +67,7 @@ public class JU_ListByPerm {
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
index 38b4290..a93e18f 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,9 +41,9 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByRole {
-    
+
     private static ListByRole lsByRole;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
@@ -51,7 +51,7 @@ public class JU_ListByRole {
         List ls = new List(role);
         lsByRole = new ListByRole(ls);
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
@@ -67,7 +67,7 @@ public class JU_ListByRole {
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
@@ -78,5 +78,5 @@ public class JU_ListByRole {
         }
         assertEquals(hasNoError, true);
     }
-    
+
 }
index e4dd4ad..1ab4da8 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,15 +57,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListByUser {
-    
+
     private static ListByUser lsByUser;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -73,13 +73,13 @@ public class JU_ListByUser {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         List ls = new List(role);
         lsByUser = new ListByUser(ls);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -92,9 +92,9 @@ public class JU_ListByUser {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"add","upd","del","add","upd","del"};
         //lsByUser._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
@@ -105,5 +105,5 @@ public class JU_ListByUser {
         }
         assertEquals(hasNoError, true);
     }
-    
+
 }
index a262557..6e7f8c1 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,15 +57,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_User {
-    
+
     private static User user;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -73,12 +73,12 @@ public class JU_User {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         Role role = new Role(aafcli);
         user = new User(role);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -91,18 +91,18 @@ public class JU_User {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"add","del","setTo","extend","add","del","setTo","extend"};
 //        user._exec(0, strArr);
-//        
+//
 //        String[] strArr1 = {"del","setTo","extend","add","del","setTo","extend"};
 //        user._exec(0, strArr1);
-//        
+//
 //        String[] strArr2 = {"setTo","extend","add","del","setTo","extend"};
 //        user._exec(0, strArr2);
-//        
+//
 //        String[] strArr3 = {"extend","add","del","setTo","extend"};
 //        user._exec(0, strArr3);
-        
+
     }
-    
+
     @Test
     public void detailedHelp() {
         boolean hasNoError = true;
index 0855a2a..f9111c2 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -66,7 +66,7 @@ public class JU_Cred {
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
 
     @Before
@@ -76,12 +76,12 @@ public class JU_Cred {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         user = new User(aafcli);
         cred = new Cred(user);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -94,18 +94,18 @@ public class JU_Cred {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"add","del","reset","extend"};
 //        cred._exec(0, strArr);
-//        
+//
 //        String[] strArr1 = {"del","reset","extend","add"};
 //        cred._exec(0, strArr1);
-//        
+//
 //        String[] strArr2 = {"reset","extend", "add","del"};
 //        cred._exec(0, strArr2);
-//        
+//
 //        String[] strArr3 = {"extend","add","del","reset"};
 //        cred._exec(0, strArr3);
 
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 4888f28..628b8a6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,7 +57,7 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Delg {
-    
+
     private static User testUser;
     private static Delg delg;
     User user;
@@ -65,7 +65,7 @@ public class JU_Delg {
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
 
     @Before
@@ -75,12 +75,12 @@ public class JU_Delg {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = mock(HMangr.class); //new HMangr(aEnv, loc);    
+        hman = mock(HMangr.class); //new HMangr(aEnv, loc);
         aafcli = mock(AAFcli.class);//new AAFcli(prop, aEnv, wtr, hman, null, secSet);
 //        user = mock(User.class); //new User(aafcli);
 //        delg = new Delg(user);
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -93,19 +93,19 @@ public class JU_Delg {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"add","upd","del"};
 //        delg._exec(0, strArr);
-        
+
         String[] strArr1 = {"upd","del","add"};
 //        delg._exec(0, strArr1);
-        
+
         String[] strArr2 = {"del","add"};
 //        delg._exec(0, strArr2);
 
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
 //        delg.detailedHelp(0, sb);
     }
-    
+
 }
index a299fcf..93b5081 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,34 +41,34 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListActivity {
-    
+
     private static ListActivity lsActivity;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
         User usr = new User(cli);
         List parent = new List(usr);
         lsActivity = new ListActivity(parent);
-        
+
     }
-//    
+//
 //    @Test
 //    public void exec() {
 //        try {
 //            assertEquals(lsActivity._exec(0, "add","del","reset","extend","clear", "rename", "create"),500);
 //        } catch (CadiException e) {
-//            
+//
 //            e.printStackTrace();
 //        } catch (APIException e) {
-//            
+//
 //            e.printStackTrace();
 //        } catch (LocatorException e) {
-//            
+//
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 9ef4c16..5a972b1 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -59,15 +59,15 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListApprovals {
-    
+
     private static ListApprovals lsApprovals;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp() throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -75,14 +75,14 @@ public class JU_ListApprovals {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         User usr = new User(aafcli);
         List parent = new List(usr);
         lsApprovals = new ListApprovals(parent);
     }
-    
-    
+
+
 
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
@@ -96,9 +96,9 @@ public class JU_ListApprovals {
         HRcli hcli = new HRcli(hman, uri, item, secSet);
         String[] strArr = {"user","approver","ticket"};
         //lsApprovals._exec(0, strArr);
-        
+
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 16a5dae..473c64f 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,34 +41,34 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListDelegates {
-    
+
     private static ListDelegates lsDelegates;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
         User usr = new User(cli);
         List parent = new List(usr);
         lsDelegates = new ListDelegates(parent);
-        
+
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
 //            assertEquals(lsDelegates._exec(0, "add","del","reset","extend","clear", "rename", "create"),500);
 //        } catch (CadiException e) {
-//            
+//
 //            e.printStackTrace();
 //        } catch (APIException e) {
-//            
+//
 //            e.printStackTrace();
 //        } catch (LocatorException e) {
-//            
+//
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 9db943e..a2b4e86 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -57,16 +57,16 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListForCreds {
-    
+
     private static ListForCreds lsForCreds;
     User user;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -74,14 +74,14 @@ public class JU_ListForCreds {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         User usr = new User(aafcli);
         List parent = new List(usr);
         lsForCreds = new ListForCreds(parent);
-        
+
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -96,7 +96,7 @@ public class JU_ListForCreds {
         //lsForCreds._exec(0, strArr);
 
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 9087626..36399d6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,34 +41,34 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListForPermission {
-    
+
     private static ListForPermission lsForPermission;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
         User usr = new User(cli);
         List parent = new List(usr);
         lsForPermission = new ListForPermission(parent);
-        
+
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
 //            assertEquals(lsForPermission._exec(0, "add","del","reset","extend","clear", "rename", "create"),500);
 //        } catch (CadiException e) {
-//            
+//
 //            e.printStackTrace();
 //        } catch (APIException e) {
-//            
+//
 //            e.printStackTrace();
 //        } catch (LocatorException e) {
-//            
+//
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 2b64f0a..a0d940d 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -41,34 +41,34 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ListForRoles {
-    
+
     private static ListForRoles lsForRoles;
-    
+
     @BeforeClass
     public static void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         AAFcli cli = JU_AAFCli.getAAfCli();
         User usr = new User(cli);
         List parent = new List(usr);
         lsForRoles = new ListForRoles(parent);
-        
+
     }
-    
+
 //    @Test
 //    public void exec() {
 //        try {
 //            assertEquals(lsForRoles._exec(0, "add","del","reset","extend","clear", "rename", "create"),500);
 //        } catch (CadiException e) {
-//            
+//
 //            e.printStackTrace();
 //        } catch (APIException e) {
-//            
+//
 //            e.printStackTrace();
 //        } catch (LocatorException e) {
-//            
+//
 //            e.printStackTrace();
 //        }
 //    }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index e44ee02..3a47fba 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -56,16 +56,16 @@ import org.onap.aaf.misc.env.APIException;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_Role {
-    
+
     private static Role role;
     User user;
     PropAccess prop;
     AuthzEnv aEnv;
     Writer wtr;
     Locator<URI> loc;
-    HMangr hman;    
+    HMangr hman;
     AAFcli aafcli;
-    
+
     @Before
     public void setUp () throws NoSuchFieldException, SecurityException, Exception, IllegalAccessException {
         prop = new PropAccess();
@@ -73,13 +73,13 @@ public class JU_Role {
         wtr = mock(Writer.class);
         loc = mock(Locator.class);
         SecuritySetter<HttpURLConnection> secSet = mock(SecuritySetter.class);
-        hman = new HMangr(aEnv, loc);    
+        hman = new HMangr(aEnv, loc);
         aafcli = new AAFcli(prop, aEnv, wtr, hman, null, secSet);
         User usr = new User(aafcli);
         role = new Role(usr);
-        
+
     }
-    
+
     @Test
     public void testExec() throws APIException, LocatorException, CadiException, URISyntaxException {
         Item value = mock(Item.class);
@@ -92,18 +92,18 @@ public class JU_Role {
 //        HRcli hcli = new HRcli(hman, uri, item, secSet);
 //        String[] strArr = {"add", "del", "setTo","extend", "del", "setTo","extend"};
 //        Assert.assertEquals(200, role._exec(0, strArr));
-//        
+//
 //        String[] strArr1 = { "del", "setTo","extend","add", "del", "setTo","extend"};
 //        Assert.assertEquals(501, role._exec(0, strArr1));
-//        
+//
 //        String[] strArr2 = {"setTo","extend","add", "del", "del", "setTo","extend" };
 //        Assert.assertEquals(501, role._exec(0, strArr2));
-//        
+//
 //        String[] strArr3 = {"extend","add", "del","setTo", "del", "setTo","extend" };
 //        Assert.assertEquals(501, role._exec(0, strArr3));
 
     }
-    
+
     @Test
     public void testDetailedHelp() {
         StringBuilder sb = new StringBuilder();
index 6a8ccf1..ca387dc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ import org.onap.aaf.misc.env.Trans;
 
 /**
  * Create and maintain a Map of Maps used for Caching
- * 
+ *
  * @author Jonathan
  *
  * @param <TRANS>
@@ -58,7 +58,7 @@ public class Cache<TRANS extends Trans, DATA> {
 
     /**
      * Dated Class - store any Data with timestamp
-     * 
+     *
      * @author Jonathan
      *
      */
@@ -66,7 +66,7 @@ public class Cache<TRANS extends Trans, DATA> {
         public Date timestamp;
         public List<?> data;
         private long expireIn;
-        
+
         public Dated(List<?> data, long expireIn) {
             timestamp = new Date(System.currentTimeMillis()+expireIn);
             this.data = data;
@@ -85,7 +85,7 @@ public class Cache<TRANS extends Trans, DATA> {
             timestamp = new Date(System.currentTimeMillis()+expireIn);
         }
     }
-    
+
     public static Map<String,Dated> obtain(String key) {
         Map<String, Dated> m = cacheMap.get(key);
         if (m==null) {
@@ -99,24 +99,24 @@ public class Cache<TRANS extends Trans, DATA> {
 
     /**
      * Clean will examine resources, and remove those that have expired.
-     * 
+     *
      * If "highs" have been exceeded, then we'll expire 10% more the next time.  This will adjust after each run
      * without checking contents more than once, making a good average "high" in the minimum speed.
-     * 
+     *
      * @author Jonathan
      *
      */
     private static final class Clean extends TimerTask {
         private final Env env;
         private Set<String> set;
-        
-        // The idea here is to not be too restrictive on a high, but to Expire more items by 
+
+        // The idea here is to not be too restrictive on a high, but to Expire more items by
         // shortening the time to expire.  This is done by judiciously incrementing "advance"
         // when the "highs" are exceeded.  This effectively reduces numbers of cached items quickly.
         private final int high;
         private long advance;
         private final long timeInterval;
-        
+
         public Clean(Env env, long cleanInterval, int highCount) {
             this.env = env;
             high = highCount;
@@ -124,7 +124,7 @@ public class Cache<TRANS extends Trans, DATA> {
             advance = 0;
             set = new HashSet<>();
         }
-        
+
         public synchronized void add(String key) {
             set.add(key);
         }
@@ -134,8 +134,8 @@ public class Cache<TRANS extends Trans, DATA> {
             int total = 0;
             // look at now.  If we need to expire more by increasing "now" by "advance"
             Date now = new Date(System.currentTimeMillis() + advance);
-            
-            
+
+
             for (String name : set) {
                 Map<String,Dated> map = cacheMap.get(name);
                 if (map==null) {
@@ -150,7 +150,7 @@ public class Cache<TRANS extends Trans, DATA> {
                     }
                 }
             }
-            
+
             if (count>0) {
                 env.debug().log("Cache removed",count,"expired Cached Elements out of", total);
             }
@@ -170,11 +170,11 @@ public class Cache<TRANS extends Trans, DATA> {
     public static synchronized void startCleansing(Env env, String ... keys) {
         if (cleanseTimer==null) {
             cleanseTimer = new Timer("Cache Cleanup Timer");
-            int cleanInterval = Integer.parseInt(env.getProperty(CACHE_CLEAN_INTERVAL,"60000")); // 1 minute clean cycles 
+            int cleanInterval = Integer.parseInt(env.getProperty(CACHE_CLEAN_INTERVAL,"60000")); // 1 minute clean cycles
             int highCount = Integer.parseInt(env.getProperty(CACHE_HIGH_COUNT,"5000"));
             cleanseTimer.schedule(clean = new Clean(env, cleanInterval, highCount), cleanInterval, cleanInterval);
         }
-        
+
         for (String key : keys) {
             clean.add(key);
         }
@@ -193,7 +193,7 @@ public class Cache<TRANS extends Trans, DATA> {
             public void run() {
                 Cache.stopTimer();
             }
-        }); 
+        });
     }
 
 }
index 5fb590c..77d9e8a 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -44,14 +44,14 @@ public class Define {
         }
         return ROOT_NS;
     }
-    
+
     public static String ROOT_COMPANY() {
         if (ROOT_NS==null) {
             throw new RuntimeException(Define.class.getName() + MSG);
         }
         return ROOT_COMPANY;
     }
-    
+
     public static void set(Access access) throws CadiException {
         ROOT_NS = access.getProperty(Config.AAF_ROOT_NS,"org.osaaf.aaf");
         ROOT_COMPANY = access.getProperty(Config.AAF_ROOT_COMPANY,null);
@@ -63,7 +63,7 @@ public class Define {
                 throw new CadiException(Config.AAF_ROOT_COMPANY + " or " + Config.AAF_ROOT_NS + " property with 3 positions is required.");
             }
         }
-        
+
         for ( Entry<Object, Object> es : access.getProperties().entrySet()) {
             if (es.getKey().toString().startsWith(ROOT_NS_TAG_DOT)) {
                 access.getProperties().setProperty(es.getKey().toString(),varReplace(es.getValue().toString()));
@@ -90,7 +90,7 @@ public class Define {
     public static boolean isInitialized() {
         return initialized;
     }
-    
+
     public static String getCredType(int type) {
         switch(type) {
             case 0:      return "NoCrd";
@@ -102,5 +102,5 @@ public class Define {
                 return "n/a";
         }
     }
-    
+
 }
index a46be8e..0e2d414 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,10 +39,10 @@ import org.onap.aaf.misc.rosetta.env.RosettaEnv;
 
 /**
  * AuthzEnv is the Env tailored to Authz Service
- * 
+ *
  * Most of it is derived from RosettaEnv, but it also implements Access, which
  * is an Interface that Allows CADI to interact with Container Logging
- * 
+ *
  * @author Jonathan
  *
  */
@@ -65,14 +65,14 @@ public class AuthzEnv extends RosettaEnv implements Access {
         super();
         _init(new PropAccess(props));
     }
-    
+
 
     public AuthzEnv(PropAccess pa) {
         super();
         _init(pa);
     }
-    
-    private final void _init(PropAccess pa) { 
+
+    private final void _init(PropAccess pa) {
         access = pa;
         times = new long[20];
         idx = 0;
@@ -85,16 +85,16 @@ public class AuthzEnv extends RosettaEnv implements Access {
         debug = new AccessLogTarget(access, Level.DEBUG);
         trace = new AccessLogTarget(access, Level.TRACE);
     }
-    
+
     private class AccessLogTarget implements LogTarget {
         private final Level level;
         private final Access access;
-        
+
         public AccessLogTarget(final Access access, final Level level) {
             this.level = level;
             this.access = access;
         }
-        
+
         @Override
         public void log(Object... msgs) {
             access.log(level, msgs);
@@ -117,7 +117,7 @@ public class AuthzEnv extends RosettaEnv implements Access {
         public void printf(String fmt, Object... vars) {
             access.printf(level, fmt, vars);
         }
-        
+
     }
     @Override
     public AuthzTransImpl newTrans() {
@@ -146,7 +146,7 @@ public class AuthzEnv extends RosettaEnv implements Access {
                     ++count;
         pot += times[i]-prev;
                 }
-                prev = times[i]; 
+                prev = times[i];
             }
         }
         for (int i=0;i<idx;++i) {
@@ -155,13 +155,13 @@ public class AuthzEnv extends RosettaEnv implements Access {
                     ++count;
                     pot += times[i]-prev;
                 }
-                prev = times[i]; 
+                prev = times[i];
             }
         }
 
         return count==0?300000L:pot/count; // Return Weighted Avg, or 5 mins, if none avail.
     }
-    
+
     @Override
     public ClassLoader classLoader() {
         return getClass().getClassLoader();
@@ -199,7 +199,7 @@ public class AuthzEnv extends RosettaEnv implements Access {
     public void setLogLevel(Level level) {
         access.setLogLevel(level);
     }
-    
+
     private static final byte[] ENC="enc:".getBytes();
     public String decrypt(String encrypted, final boolean anytext) throws IOException {
         if (encrypted==null) {
@@ -237,7 +237,7 @@ public class AuthzEnv extends RosettaEnv implements Access {
                             return "";
                         }
                     }
-    
+
                 };
             }
             return decryptor.decrypt(encrypted);
@@ -290,5 +290,5 @@ public class AuthzEnv extends RosettaEnv implements Access {
     public Properties getProperties() {
         return access.getProperties();
     };
-    
+
 }
index ac16833..934b841 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,13 +45,13 @@ public interface AuthzTrans extends TransStore {
     public abstract AuthzTrans set(HttpServletRequest req, HttpServletResponse resp);
 
     public abstract HttpServletRequest hreq();
-    
+
     public abstract HttpServletResponse hresp();
 
     public abstract String user();
 
     public abstract void setUser(TaggedPrincipal p);
-    
+
     public abstract TaggedPrincipal getUserPrincipal();
 
     public abstract String ip();
@@ -63,27 +63,27 @@ public interface AuthzTrans extends TransStore {
     public abstract String path();
 
     public abstract String agent();
-    
+
     public abstract AuthzEnv env();
 
     public abstract void setLur(Lur lur);
-    
+
     public abstract Lur getLur();
 
     public abstract boolean fish(Permission ... p);
-    
+
     public abstract Organization org();
 
     public abstract boolean requested(REQD_TYPE requested);
-    
+
     public void requested(REQD_TYPE requested, boolean b);
-    
+
     public abstract void logAuditTrail(LogTarget lt);
-    
+
     public abstract Date now();
-    
+
     public abstract void setTag(String tag);
-    
+
     public abstract String getTag();
 
     public abstract void clearCache();
index bd9f887..e78a488 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,7 +48,7 @@ public class AuthzTransFilter extends TransFilter<AuthzTrans> {
     public static final String SPECIAL_LOG_SLOT = "SPECIAL_LOG_SLOT";
 
     public static final int BUCKETSIZE = 2;
-    
+
     public AuthzTransFilter(AuthzEnv env, Connector con, TrustChecker tc, Object ... additionalTafLurs) throws CadiException, LocatorException {
         super(env.access(),con, tc, additionalTafLurs);
         this.env = env;
@@ -61,7 +61,7 @@ public class AuthzTransFilter extends TransFilter<AuthzTrans> {
             specialLogSlot = env.slot(SPECIAL_LOG_SLOT);
         }
     }
-    
+
     @Override
     protected AuthzTrans newTrans(HttpServletRequest req, HttpServletResponse resp) {
         AuthzTrans at = env.newTrans();
@@ -87,7 +87,7 @@ public class AuthzTransFilter extends TransFilter<AuthzTrans> {
     protected void tallyHo(AuthzTrans trans, String target) {
         Boolean b = trans.get(specialLogSlot, false);
         LogTarget lt = b?trans.warn():trans.debug();
-        
+
         if (lt.isLoggable()) {
             // Transaction is done, now post full Audit Trail
             StringBuilder sb = new StringBuilder("AuditTrail\n");
@@ -100,7 +100,7 @@ public class AuthzTransFilter extends TransFilter<AuthzTrans> {
             for (int i=0;i<serviceMetric.buckets.length;++i) {
                 serviceMetric.buckets[i]+=m.buckets[i];
             }
-            
+
             Long tsi;
             if ((tsi=trans.get(transIDslot, null))!=null) {
                 sb.append("  TraceID=");
@@ -118,14 +118,14 @@ public class AuthzTransFilter extends TransFilter<AuthzTrans> {
         } else {
             // Single Line entry
             // IMPORTANT!!! if you add more entries here, change "BUCKETSIZE"!!!
-            StringBuilder content = new StringBuilder(); 
+            StringBuilder content = new StringBuilder();
             Metric m = trans.auditTrail(lt,1, content, Env.REMOTE,Env.JSON);
             // Add current Metrics to total metrics
             serviceMetric.total+= m.total;
             for (int i=0;i<serviceMetric.buckets.length;++i) {
                 serviceMetric.buckets[i]+=m.buckets[i];
             }
-            
+
             StringBuilder sb = new StringBuilder();
             sb.append("user=");
             Principal p = trans.getUserPrincipal();
@@ -140,7 +140,7 @@ public class AuthzTransFilter extends TransFilter<AuthzTrans> {
                     sb.append('(');
                     sb.append(((TrustPrincipal)p).personalName()); // UserChain
                     sb.append(')');
-                } else { 
+                } else {
                     sb.append('[');
                     if (p instanceof TaggedPrincipal) {
                         sb.append(((TaggedPrincipal)p).tag());
@@ -184,7 +184,7 @@ public class AuthzTransFilter extends TransFilter<AuthzTrans> {
                 }
                 sb.append('"');
             }
-            
+
             lt.log(sb);
         }
     }
index 037ce4e..c3d0298 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -60,7 +60,7 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
         hreq = req;
         hresp = resp;
         user = (TaggedPrincipal)req.getUserPrincipal();
-        
+
         for (REQD_TYPE rt : REQD_TYPE.values()) {
             requested(rt,req);
         }
@@ -73,7 +73,7 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
         org=null;
         return this;
     }
-    
+
     @Override
     public HttpServletRequest hreq() {
         return hreq;
@@ -96,7 +96,7 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
     public String user() {
         return user==null?N_A:user.getName();
     }
-    
+
     /**
      * @see org.onap.aaf.auth.env.test.AuthTrans#getUserPrincipal()
      */
@@ -150,12 +150,12 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
     public AuthzEnv env() {
         return (AuthzEnv)delegate;
     }
-    
+
     @Override
     public boolean requested(REQD_TYPE requested) {
         return (mask&requested.bit)==requested.bit;
     }
-    
+
     public void requested(REQD_TYPE requested, boolean b) {
         if (b) {
             mask|=requested.bit;
@@ -163,7 +163,7 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
             mask&=~requested.bit;
         }
     }
-    
+
     private void requested(REQD_TYPE reqtype, HttpServletRequest req) {
         String p = req.getParameter(reqtype.name());
         if (p!=null) {
@@ -175,12 +175,12 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
     public void setLur(Lur lur) {
         this.lur = lur;
     }
-    
+
     @Override
     public Lur getLur() {
-       return lur;
+        return lur;
     }
-    
+
     @Override
     public boolean fish(Permission ... pond) {
         if (lur!=null) {
@@ -188,7 +188,7 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
         }
         return false;
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.env.test.AuthzTrans#org()
      */
@@ -200,10 +200,10 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
                     org = Organization.NULL;
                 }
             } catch (Exception e) {
-                
+
                 org = Organization.NULL;
             }
-        } 
+        }
         return org;
     }
 
@@ -229,7 +229,7 @@ public class AuthzTransImpl extends BasicTrans implements AuthzTrans {
         }
         return now;
     }
-    
+
     /*
      * (non-Javadoc)
      * @see org.onap.aaf.auth.env.AuthzTrans#setTag(java.lang.String)
index 5545c7d..396f0d1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,9 +39,9 @@ public class AuthzTransOnlyFilter extends TransOnlyFilter<AuthzTrans> {
     public AuthzTransOnlyFilter(AuthzEnv env) {
         this.env = env;
         serviceMetric = new Metric();
-        serviceMetric.buckets = new float[BUCKETSIZE]; 
+        serviceMetric.buckets = new float[BUCKETSIZE];
     }
-    
+
     @Override
     protected AuthzTrans newTrans(HttpServletRequest req, HttpServletResponse resp) {
         AuthzTrans trans = env.newTrans();
index df086cd..a10cae9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,13 +42,13 @@ import org.onap.aaf.misc.env.TimeTaken;
  */
 public class NullTrans implements AuthzTrans {
     private static final AuthzTrans singleton = new NullTrans();
-    
+
     public static final AuthzTrans singleton() {
         return singleton;
     }
 
     private Date now;
-    
+
     public void checkpoint(String text) {}
     public void checkpoint(String text, int additionalFlag) {}
     public Metric auditTrail(int indent, StringBuilder sb, int... flag) {return null;}
@@ -144,7 +144,7 @@ public class NullTrans implements AuthzTrans {
     public HttpServletResponse hresp() {
          return null;
     }
-    
+
 
     @Override
     public String user() {
@@ -159,7 +159,7 @@ public class NullTrans implements AuthzTrans {
     @Override
     public void setUser(TaggedPrincipal p) {
     }
-    
+
     @Override
     public String ip() {
         return null;
@@ -209,7 +209,7 @@ public class NullTrans implements AuthzTrans {
 
     @Override
     public Lur getLur() {
-       return null;
+        return null;
     }
 
     @Override
index 41f0e74..dd3a14d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index c81504b..a80ad26 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,7 +34,7 @@ public abstract class FacadeImpl {
     protected void setContentType(HttpServletResponse response, TYPE type) {
         response.setContentType(type==Data.TYPE.JSON?"application/json":"text.xml");
     }
-    
+
     protected void setCacheControlOff(HttpServletResponse response) {
         response.setHeader("Cache-Control", "no-store");
         response.setHeader("Pragma", "no-cache");
index 9d7347a..9050553 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,7 +28,7 @@ import java.util.Set;
 
 /**
  * It would be nice if Java Enums were extensible, but they're not.
- * 
+ *
  * @author Jonathan
  *
  */
@@ -47,12 +47,12 @@ public class Result<RV> {
                             ERR_ActionNotCompleted         = 8,
                             ERR_Backend                    = 9,
                             ERR_General                    = 20;
-                            
+
     public RV value;
     public final int status;
     public final String details;
     public final Object[] variables;
-    
+
     public Result(RV value, int status, String details, Object ... variables) {
         this.value = value;
         if (value==null) {
@@ -66,12 +66,12 @@ public class Result<RV> {
             this.variables=variables;
         }
     }
-    
+
     /**
      * Create a Result class with "OK" status and "Success" for details
-     * 
+     *
      * This is the easiest to use
-     * 
+     *
      * @param value
      * @param status
      * @return
@@ -126,7 +126,7 @@ public class Result<RV> {
     }
 
     /**
-     * Create a Status (usually non OK, with a details statement 
+     * Create a Status (usually non OK, with a details statement
      * @param value
      * @param status
      * @param details
@@ -135,7 +135,7 @@ public class Result<RV> {
 //    public static<R> Result<R> err(int status, String details) {
 //        return new Result<R>(null,status,details,null);
 //    }
-    
+
     /**
      * Create a Status (usually non OK, with a details statement and variables supported
      * @param status
@@ -166,7 +166,7 @@ public class Result<RV> {
     }
 
     /**
-     * Create a Status (usually non OK, with a details statement 
+     * Create a Status (usually non OK, with a details statement
      * @param value
      * @param status
      * @param details
@@ -177,7 +177,7 @@ public class Result<RV> {
     }
 
     /**
-     * Create a Status from a previous status' result/details 
+     * Create a Status from a previous status' result/details
      * @param value
      * @param status
      * @param details
@@ -189,10 +189,10 @@ public class Result<RV> {
 
     private static final int PARTIAL_CONTENT = 0x001;
     private static final int EMPTY_LIST = 0x002;
-    
+
     /**
-     * AAF Specific problems, etc 
-     * 
+     * AAF Specific problems, etc
+     *
      * @author Jonathan
      *
      */
@@ -227,7 +227,7 @@ public class Result<RV> {
 
     /**
      * When Result is a List, you can check here to see if it's empty instead of looping
-     * 
+     *
      * @return
      */
     public boolean isEmpty() {
@@ -237,7 +237,7 @@ public class Result<RV> {
     /**
      * A common occurrence is that data comes back, but list is empty.  If set, you can skip looking
      * at list at the outset.
-     * 
+     *
      * @param emptyList
      * @return
      */
@@ -250,8 +250,8 @@ public class Result<RV> {
         return this;
     }
 
-    
-    /** 
+
+    /**
      * Convenience function.  Checks OK, and also if List is not Empty
      * Not valid if Data is not a List
      * @return
@@ -260,7 +260,7 @@ public class Result<RV> {
         return status == OK;
     }
 
-    /** 
+    /**
      * Convenience function.  Checks OK, and also if List is not Empty
      * Not valid if Data is not a List
      * @return
@@ -269,7 +269,7 @@ public class Result<RV> {
         return status != OK;
     }
 
-    /** 
+    /**
      * Convenience function.  Checks OK, and also if List is not Empty
      * Not valid if Data is not a List
      * @return
@@ -279,7 +279,7 @@ public class Result<RV> {
     }
 
 
-    /** 
+    /**
      * Convenience function.  Checks OK, and also if List is not Empty
      * Not valid if Data is not a List
      * @return
@@ -307,7 +307,7 @@ public class Result<RV> {
             return sb.toString();
         }
     }
-    
+
     public String errorString() {
         StringBuilder sb = new StringBuilder();
         switch(status) {
index 6f644bd..cdc0e48 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,21 +55,21 @@ public abstract class AbsData implements Iterable<String> {
         this.fieldOffset = fieldOffset;
         idxf = new File(dir,name.concat(".idx"));
         lockf = new File(dir,name.concat(".lock"));
-        
-        
+
+
         data = new DataFile(dataf,"r");
         ti = new TextIndex(idxf);
         skipLines=0;
     }
-    
+
     public void skipLines(int lines) {
         skipLines=lines;
     }
-    
+
     public String name() {
         return name;
     }
-    
+
     public void open(AuthzTrans trans, long timeout) throws IOException {
         TimeTaken tt = trans.start("Open Data File", Env.SUB);
         boolean first = true;
@@ -84,7 +84,7 @@ public abstract class AbsData implements Iterable<String> {
                     if (first) {
                         trans.warn().log("Waiting for",lockf.getCanonicalPath(),"to close");
                         first = false;
-                    } 
+                    }
                     try {
                         Thread.sleep(200);
                     } catch (InterruptedException e) {
@@ -103,12 +103,12 @@ public abstract class AbsData implements Iterable<String> {
                     throw e;
                 }
                 ti.open();
-            
+
         } finally {
             tt.done();
         }
     }
-    
+
     private synchronized void ensureIdxGood(AuthzTrans trans) throws IOException {
         if (!idxf.exists() || idxf.length()==0 || dataf.lastModified()>idxf.lastModified()) {
             trans.warn().log(idxf.getAbsolutePath(),"is missing, empty or out of date, creating");
@@ -129,7 +129,7 @@ public abstract class AbsData implements Iterable<String> {
         ti.close();
         data.close();
     }
-    
+
     public class Reuse {
         public Token tokenData;
         private Field fieldData;
@@ -138,7 +138,7 @@ public abstract class AbsData implements Iterable<String> {
             tokenData = data.new Token(size);
             fieldData = tokenData.new Field(delim);
         }
-        
+
         public void reset() {
             getFieldData().reset();
         }
@@ -151,7 +151,7 @@ public abstract class AbsData implements Iterable<String> {
         public String next() {
             return getFieldData().next();
         }
-        
+
         public String at(int field) {
             return getFieldData().at(field);
         }
@@ -164,7 +164,7 @@ public abstract class AbsData implements Iterable<String> {
             return fieldData;
         }
     }
-    
+
     public Reuse reuse() {
         return new Reuse(maxLineSize,delim);
     }
@@ -172,7 +172,7 @@ public abstract class AbsData implements Iterable<String> {
     public Iter iterator() {
         return new Iter();
     }
-    
+
     public class Iter implements Iterator<String> {
         private Reuse reuse;
         private org.onap.aaf.auth.local.TextIndex.Iter tii;
index a65c13d..2ca6e1f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ public class DataFile {
     public MappedByteBuffer mapBuff;
     private final File file;
     private final String access;
-    
+
     public DataFile(File file, String access)  {
         this.file = file;
         this.access = access;
@@ -73,21 +73,21 @@ public class DataFile {
         }
         return len<0?0:len;
     }
-    
+
     public class Token {
         private byte[] buff;
         int pos, next, end;
-        
+
         public Token(int size) {
             buff = new byte[size];
             pos = next = end = 0;
         }
-        
+
         public boolean pos(int to) {
             pos = next = to;
             return (end=load(this))>0;
         }
-        
+
         public boolean nextLine() {
             end = load(this);
             pos = next;
@@ -100,7 +100,7 @@ public class DataFile {
             }
             return false;
         }
-        
+
         public IntBuffer getIntBuffer() {
             return ByteBuffer.wrap(buff).asIntBuffer();
         }
@@ -108,7 +108,7 @@ public class DataFile {
         public String toString() {
             return new String(buff,0,end);
         }
-        
+
         public class Field {
             char delim;
             int idx;
@@ -119,12 +119,12 @@ public class DataFile {
                 idx = 0;
                 bb = null;
             }
-            
+
             public Field reset() {
                 idx = 0;
                 return this;
             }
-            
+
             public String next() {
                 if (idx>=end)return null;
                 int start = idx;
@@ -134,7 +134,7 @@ public class DataFile {
                     if (c=='\r')endStr=idx;
                     ++idx;
                 }
-                
+
                 if (endStr<0) {
                     endStr=idx-start;
                 } else {
@@ -157,7 +157,7 @@ public class DataFile {
                 }
                 return new String(buff,start,(idx-start-(c=='\r'?1:0)));
             }
-            
+
             public String atToEnd(int fieldOffset) {
                 int start;
                 byte c=0;
@@ -169,7 +169,7 @@ public class DataFile {
                         start = idx+1;
                     }
                 }
-                
+
                 for (; idx<end && idx<buff.length && (c=buff[idx])!='\n'; ++idx) {
                     ++idx;
                 }
@@ -186,5 +186,5 @@ public class DataFile {
     public File file() {
         return file;
     }
-    
+
 }
index 73ad07c..d35ac4a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,19 +40,19 @@ import org.onap.aaf.misc.env.Trans;
 
 public class TextIndex {
     private static final int REC_SIZE=8;
-    
+
     private File file;
     private DataFile dataFile=null;
-    
+
     public TextIndex(File theFile) {
         file = theFile;
     }
-    
+
     public void open() throws IOException {
         dataFile = new DataFile(file,"r");
         dataFile.open();
     }
-    
+
     public void close() throws IOException {
         if (dataFile!=null) {
             dataFile.close();
@@ -63,7 +63,7 @@ public class TextIndex {
     public int find(Object key, AbsData.Reuse reuse, int offset) throws IOException {
         return find(key,reuse.tokenData,reuse.getFieldData(),offset);
     }
-    
+
     public int find(Object key, DataFile.Token dtok, Field df, int offset) throws IOException {
         if (dataFile==null) {
             throw new IOException("File not opened");
@@ -75,7 +75,8 @@ public class TextIndex {
         long lhash;
         int curr;
         while ((max-min)>100) {
-            ttok.pos((curr=(min+(max-min)/2))*REC_SIZE);
+            curr=(min+(max-min)/2);
+            ttok.pos(curr*REC_SIZE);
             tib.rewind();
             lhash = hashToLong(tib.get());
             if (lhash<hash) {
@@ -88,7 +89,7 @@ public class TextIndex {
                 break;
             }
         }
-        
+
         List<Integer> entries = new ArrayList<>();
         for (int i=min;i<=max;++i) {
             ttok.pos(i*REC_SIZE);
@@ -100,7 +101,7 @@ public class TextIndex {
                 break;
             }
         }
-        
+
         for (Integer i : entries) {
             dtok.pos(i);
             if (df.at(offset).equals(key)) {
@@ -109,7 +110,7 @@ public class TextIndex {
         }
         return -1;
     }
-    
+
 
     /*
      * Have to change Bytes into a Long, to avoid the inevitable signs in the Hash
@@ -123,10 +124,10 @@ public class TextIndex {
         }
         return rv;
     }
-    
+
     public void create(final Trans trans,final DataFile data, int maxLine, char delim, int fieldOffset, int skipLines) throws IOException {
         FileChannel fos;
-        
+
         List<Idx> list = new LinkedList<>(); // Some hashcodes will double... DO NOT make a set
         TimeTaken tt2 = trans.start("Open Files", Env.SUB);
         RandomAccessFile raf=null;
@@ -138,12 +139,12 @@ public class TextIndex {
             } finally {
                 tt2.done();
             }
-            
+
             try {
-                
-                Token t = data.new Token(maxLine);  
+
+                Token t = data.new Token(maxLine);
                 Field f = t.new Field(delim);
-                
+
                 int count = 0;
                 if (skipLines>0) {
                     trans.info().log("Skipping",skipLines,"line"+(skipLines==1?" in":"s in"),data.file().getName());
@@ -184,14 +185,14 @@ public class TextIndex {
                 }
             } finally {
                 fos.close();
-            } 
+            }
         } finally {
             if (raf!=null) {
                 raf.close(); // closed by fos
             }
         }
     }
-    
+
     public class Iter {
         private int idx;
         private Token t;
@@ -210,7 +211,7 @@ public class TextIndex {
                 end = -1L;
             }
         }
-        
+
         public int next() {
             t.pos(idx);
             ib.clear();
@@ -224,14 +225,14 @@ public class TextIndex {
             return idx<end;
         }
     }
-    
+
     private static class Idx implements Comparable<Idx> {
         public int hash, pos;
         public Idx(Object obj, int pos) {
             hash = obj.hashCode();
             this.pos = pos;
         }
-        
+
         @Override
         public int compareTo(Idx ib) {
             long a = hashToLong(hash);
index 165295d..7cb25c7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 7084fbd..be5d6e0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 48ac9dc..bfe588f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,9 +26,9 @@ public interface Executor {
     // remove user from Admins
     // if # of Owners > 1, remove User from Owner
     // if # of Owners = 1, changeOwner to X  Remove Owner????
-    boolean hasPermission(String user, String ns, String type, String instance, String action); 
+    boolean hasPermission(String user, String ns, String type, String instance, String action);
     boolean inRole(String name);
-    
+
     public String namespace() throws Exception;
     public String id();
 }
index 9478832..8896ca8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,7 +41,7 @@ public class FileMailer implements Mailer {
 
     public FileMailer(Access access) throws APIException {
         count = 0;
-        
+
         mail_from = access.getProperty("MAIL_FROM", null);
         if(mail_from==null) {
             throw new APIException("MAIL_FROM property is required for Email Notifications");
@@ -59,7 +59,7 @@ public class FileMailer implements Mailer {
                 throw new APIException("Cannot create directory: " + dir.toString(),e);
             }
         }
-        
+
         boolean dryrun = Boolean.parseBoolean(access.getProperty("DRY_RUN","false"));
         String str = access.getProperty("MAX_EMAIL", null);
         int maxEmail = str==null || str.isEmpty()?Integer.MAX_VALUE:Integer.parseInt(str);
@@ -94,7 +94,7 @@ public class FileMailer implements Mailer {
                     bw.write(to);
                 }
                 bw.newLine();
-                
+
                 bw.write("CC: ");
                 first = true;
                 for(String cc : ccList) {
@@ -106,17 +106,17 @@ public class FileMailer implements Mailer {
                     bw.write(cc);
                 }
                 bw.newLine();
-                
+
                 bw.write("FROM: ");
                 bw.write(mail_from);
                 bw.newLine();
-                
+
                 bw.write("SUBJECT: ");
                 bw.write(subject);
                 bw.newLine();
-                
+
                 if(urgent) {
-                    bw.write("Importance: High");  
+                    bw.write("Importance: High");
                     bw.newLine();
                 }
 
index 64a2e8d..ad1d5a2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,9 +28,9 @@ public interface Mailer {
     public boolean sendEmail(
             AuthzTrans trans,
             String test,
-            List<String> toList, 
-            List<String> ccList, 
-            String subject, 
+            List<String> toList,
+            List<String> ccList,
+            String subject,
             String body,
             Boolean urgent) throws OrganizationException;
 
index 7566963..288d79d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,13 +32,13 @@ import org.onap.aaf.auth.env.AuthzTrans;
 
 /**
  * Organization
- * 
+ *
  * There is Organizational specific information required which we have extracted to a plugin
- * 
+ *
  * It supports using Company Specific User Directory lookups, as well as supporting an
  * Approval/Validation Process to simplify control of Roles and Permissions for large organizations
- * in lieu of direct manipulation by a set of Admins. 
- *  
+ * in lieu of direct manipulation by a set of Admins.
+ *
  * @author Jonathan
  *
  */
@@ -55,7 +55,7 @@ public interface Organization {
         public String fullName();
         public String firstName();
         /**
-         * If Responsible entity, then String returned is "null"  meaning "no Objection".  
+         * If Responsible entity, then String returned is "null"  meaning "no Objection".
          * If String exists, it is the Policy objection text setup by the entity.
          * @return
          */
@@ -90,7 +90,7 @@ public interface Organization {
      * @return
      */
     public String getRealm();
-    
+
     public boolean supportsRealm(String user);
 
     public void addSupportedRealm(String r);
@@ -99,44 +99,44 @@ public interface Organization {
 
     /**
      * Get Identity information based on userID
-     * 
+     *
      * @param id
      * @return
      */
     public Identity getIdentity(AuthzTrans trans, String id) throws OrganizationException;
-    
+
     /**
      * Is Revoked
-     * 
-     * Deletion of an Identity that has been removed from an Organization can be dangerous.  Mistakes may have been made 
-     * in the Organization side, a Feed might be corrupted, an API might not be quite right.  
-     * 
+     *
+     * Deletion of an Identity that has been removed from an Organization can be dangerous.  Mistakes may have been made
+     * in the Organization side, a Feed might be corrupted, an API might not be quite right.
+     *
      * The implementation of this method can use a double check of some sort, such as comparison of missing ID in Organization
-     * feed with a "Deleted ID" feed.  
-     * 
+     * feed with a "Deleted ID" feed.
+     *
      */
     public boolean isRevoked(AuthzTrans trans, String id);
 
 
     /**
      * Does the ID pass Organization Standards
-     * 
-     * Return a Blank (empty) String if empty, otherwise, return a "\n" separated list of 
+     *
+     * Return a Blank (empty) String if empty, otherwise, return a "\n" separated list of
      * reasons why it fails
-     * 
+     *
      * @param id
      * @return
      */
     public String isValidID(AuthzTrans trans, String id);
 
     /**
-     * Return a Blank (empty) String if empty, otherwise, return a "\n" separated list of 
+     * Return a Blank (empty) String if empty, otherwise, return a "\n" separated list of
      * reasons why it fails
-     *  
+     *
      *  Identity is passed in to allow policies regarding passwords that are the same as user ID
-     *  
+     *
      *  any entries for "prev" imply a reset
-     *  
+     *
      * @param id
      * @param password
      * @return
@@ -149,7 +149,7 @@ public interface Organization {
     public String[] getPasswordRules();
 
     /**
-     * 
+     *
      * @param id
      * @return
      */
@@ -157,7 +157,7 @@ public interface Organization {
 
     /**
      * If response is Null, then it is valid.  Otherwise, the Organization specific reason is returned.
-     *  
+     *
      * @param trans
      * @param policy
      * @param executor
@@ -169,7 +169,7 @@ public interface Organization {
 
     /**
      * Does your Company distinguish essential permission structures by kind of Identity?
-     * i.e. Employee, Contractor, Vendor 
+     * i.e. Employee, Contractor, Vendor
      * @return
      */
     public Set<String> getIdentityTypes();
@@ -198,30 +198,30 @@ public interface Organization {
         ERR_UserNotExist,
         ERR_NotificationFailure,
         };
-        
+
     public enum Expiration {
         Password,
-        TempPassword, 
+        TempPassword,
         Future,
         UserInRole,
-        UserDelegate, 
+        UserDelegate,
         ExtendPassword
     }
-    
+
     public enum Policy {
-        CHANGE_JOB, 
-        LEFT_COMPANY, 
-        CREATE_MECHID, 
+        CHANGE_JOB,
+        LEFT_COMPANY,
+        CREATE_MECHID,
         CREATE_MECHID_BY_PERM_ONLY,
         OWNS_MECHID,
-        AS_RESPONSIBLE, 
+        AS_RESPONSIBLE,
         MAY_EXTEND_CRED_EXPIRES,
         MAY_APPLY_DEFAULT_REALM
     }
-    
+
     /**
      * Notify a User of Action or Info
-     * 
+     *
      * @param type
      * @param url
      * @param users (separated by commas)
@@ -233,7 +233,7 @@ public interface Organization {
 
     /**
      * (more) generic way to send an email
-     * 
+     *
      * @param toList
      * @param ccList
      * @param subject
@@ -245,36 +245,36 @@ public interface Organization {
 
     /**
      * whenToValidate
-     * 
+     *
      * Authz support services will ask the Organization Object at startup when it should
-     * kickoff Validation processes given particular types. 
-     * 
+     * kickoff Validation processes given particular types.
+     *
      * This allows the Organization to express Policy
-     * 
+     *
      * Turn off Validation behavior by returning "null"
-     * 
+     *
      */
     public Date whenToValidate(Notify type, Date lastValidated);
 
-    
+
     /**
      * Expiration
-     * 
+     *
      * Given a Calendar item of Start (or now), set the Expiration Date based on the Policy
      * based on type.
-     * 
+     *
      * For instance, "Passwords expire in 3 months"
-     * 
+     *
      * The Extra Parameter is used by certain Orgs.
-     * 
+     *
      * For Password, the extra is UserID, so it can check the User Type
-     * 
+     *
      * @param gc
      * @param exp
      * @return
      */
     public GregorianCalendar expiration(GregorianCalendar gc, Expiration exp, String ... extra);
-    
+
     /**
      * Get Email Warning timing policies
      * @return
@@ -282,7 +282,7 @@ public interface Organization {
     public EmailWarnings emailWarningPolicy();
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
@@ -295,23 +295,23 @@ public interface Organization {
      * 2 = expects both self and immediate responsible party
      * 3 = expects self, immediate report and any higher that the Organization wants to escalate to in the
      *     hierarchy.
-     *     
+     *
      * Note: this is used to notify of imminent danger of Application's Cred or Role expirations.
      */
     public List<Identity> getIDs(AuthzTrans trans, String user, int escalate) throws OrganizationException ;
-    
+
 
     /*
-     * 
+     *
      * @param user
      * @param type
      * @param users
      * @return
     public Response notifyRequest(AuthzTrans trans, String user, Approval type, List<User> approvers);
     */
-    
+
     /**
-     * 
+     *
      * @return
      */
     public String getApproverType();
@@ -319,7 +319,7 @@ public interface Organization {
     /*
      * startOfDay - define for company what hour of day business starts (specifically for password and other expiration which
      *   were set by Date only.)
-     *    
+     *
      * @return
      */
     public int startOfDay();
@@ -333,12 +333,12 @@ public interface Organization {
      * @return
      */
     public boolean canHaveMultipleCreds(String id);
-    
+
     boolean isTestEnv();
 
     public void setTestMode(boolean dryRun);
 
-    public static final Organization NULL = new Organization() 
+    public static final Organization NULL = new Organization()
     {
         private final GregorianCalendar gc = new GregorianCalendar(1900, 1, 1);
         private final List<Identity> nullList = new ArrayList<>();
@@ -355,27 +355,27 @@ public interface Organization {
             public String mayOwn() {
                 return N_A; // negative case
             }
-            
+
             @Override
             public boolean isFound() {
                 return false;
             }
-            
+
             @Override
             public String id() {
                 return N_A;
             }
-            
+
             @Override
             public String fullID() {
                 return N_A;
             }
-            
+
             @Override
             public String email() {
                 return N_A;
             }
-            
+
             @Override
             public List<String> delegate() {
                 return nullUser;
@@ -406,12 +406,12 @@ public interface Organization {
         public String getName() {
             return N_A;
         }
-    
+
         @Override
         public String getRealm() {
             return N_A;
         }
-    
+
         @Override
         public boolean supportsRealm(String r) {
             return false;
@@ -425,87 +425,87 @@ public interface Organization {
         public String getDomain() {
             return N_A;
         }
-    
+
         @Override
         public Identity getIdentity(AuthzTrans trans, String id) {
             return nullIdentity;
         }
-    
+
         @Override
         public String isValidID(final AuthzTrans trans, String id) {
             return N_A;
         }
-    
+
         @Override
         public String isValidPassword(final AuthzTrans trans, final String user, final String password, final String... prev) {
             return N_A;
         }
-    
+
         @Override
         public Set<String> getIdentityTypes() {
             return nullStringSet;
         }
-    
+
         @Override
         public Response notify(AuthzTrans trans, Notify type, String url,
                 String[] users, String[] ccs, String summary, Boolean urgent) {
             return Response.ERR_NotImplemented;
         }
-    
+
         @Override
         public int sendEmail(AuthzTrans trans, List<String> toList, List<String> ccList,
                 String subject, String body, Boolean urgent) throws OrganizationException {
             return 0;
         }
-    
+
         @Override
         public Date whenToValidate(Notify type, Date lastValidated) {
             return gc.getTime();
         }
-    
+
         @Override
         public GregorianCalendar expiration(GregorianCalendar gc,
                 Expiration exp, String... extra) {
             return gc;
         }
-    
+
         @Override
         public List<Identity> getApprovers(AuthzTrans trans, String user)
                 throws OrganizationException {
             return nullList;
         }
-    
+
         @Override
         public String getApproverType() {
             return "";
         }
-    
+
         @Override
         public int startOfDay() {
             return 0;
         }
-    
+
         @Override
         public boolean canHaveMultipleCreds(String id) {
             return false;
         }
-    
+
         @Override
         public boolean isValidCred(final AuthzTrans trans, final String id) {
             return false;
         }
-    
+
         @Override
         public String validate(AuthzTrans trans, Policy policy, Executor executor, String ... vars)
                 throws OrganizationException {
             return "Null Organization rejects all Policies";
         }
-    
+
         @Override
         public boolean isTestEnv() {
             return false;
         }
-    
+
         @Override
         public void setTestMode(boolean dryRun) {
         }
@@ -519,24 +519,24 @@ public interface Organization {
                 {
                     return 604800000L; // 7 days in millis 1000 * 86400 * 7
                 }
-                
+
                 @Override
                 public long roleEmailInterval()
                 {
                     return 604800000L; // 7 days in millis 1000 * 86400 * 7
                 }
-                
+
                 @Override
                 public long apprEmailInterval() {
                     return 259200000L; // 3 days in millis 1000 * 86400 * 3
                 }
-                
+
                 @Override
                 public long  credExpirationWarning()
                 {
                     return( 2592000000L ); // One month, in milliseconds 1000 * 86400 * 30  in milliseconds
                 }
-                
+
                 @Override
                 public long roleExpirationWarning()
                 {
@@ -550,15 +550,15 @@ public interface Organization {
                 }
 
             };
-            
+
 
         }
 
         @Override
         public String[] getPasswordRules() {
-            return nullStringArray; 
+            return nullStringArray;
         }
-        
+
         @Override
         public boolean isRevoked(AuthzTrans trans, String id) {
             // provide a corresponding feed that indicates that an ID has been intentionally removed from identities.dat table.
index 347e2d3..c291c65 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,7 +24,7 @@ package org.onap.aaf.auth.org;
 public class OrganizationException extends Exception {
 
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = 1L;
 
index 4f2ba4f..867d298 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,10 +36,10 @@ import org.onap.aaf.misc.env.impl.BasicEnv;
 
 /**
  * Organization Plugin Mechanism
- * 
- * Define a NameSpace for the company (i.e. com.att), and put in Properties as 
- * "Organization.[your NS" and assign the supporting Class.  
- * 
+ *
+ * Define a NameSpace for the company (i.e. com.att), and put in Properties as
+ * "Organization.[your NS" and assign the supporting Class.
+ *
  * Example:
  * Organization.com.att=org.onap.aaf.auth.org.test.att.ATT
  *
@@ -53,7 +53,7 @@ public class OrganizationFactory {
     public static Organization init(BasicEnv env) throws OrganizationException {
         int idx = ORGANIZATION_DOT.length();
         Organization org,firstOrg = null;
-        
+
         for (Entry<Object, Object> es : env.getProperties().entrySet()) {
             String key = es.getKey().toString();
             if (key.startsWith(ORGANIZATION_DOT)) {
@@ -117,8 +117,8 @@ public class OrganizationFactory {
                                 org.addSupportedRealm(r);
                             }
                         }
-                    } catch (ClassNotFoundException | NoSuchMethodException | SecurityException | 
-                            InstantiationException | IllegalAccessException | IllegalArgumentException | 
+                    } catch (ClassNotFoundException | NoSuchMethodException | SecurityException |
+                            InstantiationException | IllegalAccessException | IllegalArgumentException |
                             InvocationTargetException e) {
                         env.error().log(e, "Error on Organization Construction");
                         throw new OrganizationException(e);
@@ -138,11 +138,11 @@ public class OrganizationFactory {
                 }
             }
         }
-        
+
         return org;
     }
 
-    public static Organization get(AuthzTrans trans) throws OrganizationException {
+    public static Organization get(AuthzTrans trans){
         String domain = FQI.reverseDomain(trans.user());
         Organization org = orgs.get(domain);
         if (org==null) {
index 0e70e25..bd718e4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,7 +29,7 @@ import org.onap.aaf.misc.env.Trans;
 
 /**
  * Find Acceptable Paths and place them where TypeCode can evaluate.
- * 
+ *
  * If there are more than one, TypeCode will choose based on "q" value
  * @author Jonathan
  *
@@ -38,12 +38,12 @@ import org.onap.aaf.misc.env.Trans;
 class Acceptor<TRANS extends Trans>  {
     private List<Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>>> types;
     List<Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>>> acceptable;
-    
+
     public Acceptor(List<Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>>> types) {
         this.types = types;
         acceptable = new ArrayList<>();
     }
-    
+
     private boolean eval(HttpCode<TRANS,?> code, String str, List<String> props) {
 //        int plus = str.indexOf('+');
 //        if (plus<0) {
@@ -67,7 +67,7 @@ class Acceptor<TRANS extends Trans>  {
 //            String nstr;
 //            while (prev!=0) {
 //                nstr = first + (plus<0?str.substring(prev):str.substring(prev,plus));
-//                
+//
 //                for (Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>> type : types) {
 //                    if (type.x.equals(nstr)) {
 //                        acceptable.add(type);
@@ -114,17 +114,17 @@ class Acceptor<TRANS extends Trans>  {
     }
 
     /**
-     * parse 
-     * 
+     * parse
+     *
      * Note: I'm processing by index to avoid lots of memory creation, which speeds things
-     * up for this time critical section of code. 
+     * up for this time critical section of code.
      * @param code
      * @param cntnt
      * @return
      */
     protected boolean parse(HttpCode<TRANS, ?> code, String cntnt) {
         byte bytes[] = cntnt.getBytes();
-        
+
         int cis,cie=-1,cend;
         int sis,sie,send;
         String name;
@@ -133,17 +133,17 @@ class Acceptor<TRANS extends Trans>  {
             // Clear these in case more than one Semi
             props.clear(); // on loop, do not want mixed properties
             name=null;
-            
+
             cis = cie+1; // find comma start
             while (cis<bytes.length && Character.isSpaceChar(bytes[cis]))++cis;
             cie = cntnt.indexOf(',',cis); // find comma end
             cend = cie<0?bytes.length:cie; // If no comma, set comma end to full length, else cie
             while (cend>cis && Character.isSpaceChar(bytes[cend-1]))--cend;
             // Start SEMIS
-            sie=cis-1; 
+            sie=cis-1;
             do {
                 sis = sie+1;  // semi start is one after previous end
-                while (sis<bytes.length && Character.isSpaceChar(bytes[sis]))++sis;    
+                while (sis<bytes.length && Character.isSpaceChar(bytes[sis]))++sis;
                 sie = cntnt.indexOf(';',sis);
                 send = sie>cend || sie<0?cend:sie;  // if the Semicolon is after the comma, or non-existent, use comma end, else keep
                 while (send>sis && Character.isSpaceChar(bytes[send-1]))--send;
@@ -165,5 +165,5 @@ class Acceptor<TRANS extends Trans>  {
         } while (cie>=0); // loop to next comma
         return false; // didn't get even one match
     }
-    
+
 }
\ No newline at end of file
index ac87d80..3c76e92 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,15 +55,15 @@ import org.onap.aaf.misc.env.Store;
 import org.onap.aaf.misc.env.Trans;
 /*
  * CachingFileAccess
- * 
+ *
  * Author: Jonathan Gathman, Gathsys 2010
- *  
+ *
  */
 public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void> {
     public static void setEnv(Store store, String[] args) {
-        for (int i=0;i<args.length-1;i+=2) { // cover two parms required for each 
+        for (int i=0;i<args.length-1;i+=2) { // cover two parms required for each
             if (CFA_WEB_PATH.equals(args[i])) {
-                store.put(store.staticSlot(CFA_WEB_PATH), args[i+1]); 
+                store.put(store.staticSlot(CFA_WEB_PATH), args[i+1]);
             } else if (CFA_CACHE_CHECK_INTERVAL.equals(args[i])) {
                 store.put(store.staticSlot(CFA_CACHE_CHECK_INTERVAL), Long.parseLong(args[i+1]));
             } else if (CFA_MAX_SIZE.equals(args[i])) {
@@ -71,7 +71,7 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
             }
         }
     }
-    
+
     private static String MAX_AGE = "max-age=3600"; // 1 hour Caching
     private final Map<String,String> typeMap;
     private final NavigableMap<String,Content> content;
@@ -79,7 +79,7 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
     public final static String CFA_WEB_PATH = "aaf_cfa_web_path";
     // when to re-validate from file
     // Re validating means comparing the Timestamp on the disk, and seeing it has changed.  Cache is not marked
-    // dirty unless file has changed, but it still makes File IO, which for some kinds of cached data, i.e. 
+    // dirty unless file has changed, but it still makes File IO, which for some kinds of cached data, i.e.
     // deployed GUI elements is unnecessary, and wastes time.
     // This parameter exists to cover the cases where data can be more volatile, so the user can choose how often the
     // File IO will be accessed, based on probability of change.  "0", of course, means, check every time.
@@ -96,10 +96,10 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
     private String web_path;
     // A command key is set in the Properties, preferably changed on deployment.
     // it is compared at the beginning of the path, and if so, it is assumed to issue certain commands
-    // It's purpose is to protect, to some degree the command, even though it is HTTP, allowing 
+    // It's purpose is to protect, to some degree the command, even though it is HTTP, allowing
     // local batch files to, for instance, clear caches on resetting of files.
     private String clear_command;
-    
+
     public CachingFileAccess(EnvJAXB env, String ... args) throws IOException {
         super(null,"Caching File Access");
         setEnv(env,args);
@@ -130,16 +130,16 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
         typeMap.put("class", "application/java");
         typeMap.put("props", "text/plain");
         typeMap.put("jks", "application/octet-stream");
-        
+
         // Fonts
         typeMap.put("ttf","font/ttf");
         typeMap.put("woff","font/woff");
         typeMap.put("woff2","font/woff2");
 
-        
+
         timer = new Timer("Caching Cleanup",true);
         timer.schedule(new Cleanup(content,500),60000,60000);
-        
+
         // Property params
         web_path = env.get(env.staticSlot(CFA_WEB_PATH));
         env.init().log("CachingFileAccess path: " + new File(web_path).getCanonicalPath());
@@ -150,18 +150,18 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
         } else {
           checkInterval=Long.parseLong((String)obj);
         }
-        
+
         obj = env.get(env.staticSlot(CFA_MAX_SIZE), 512000);    // Default is max file 500k
         if (obj instanceof Integer) {
           maxItemSize=(Integer)obj;
         } else {
           maxItemSize =Integer.parseInt((String)obj);
         }
-              
+
          clear_command = env.getProperty(CFA_CLEAR_COMMAND,null);
     }
 
-    
+
 
     @Override
     public void handle(TRANS trans, HttpServletRequest req, HttpServletResponse resp) throws IOException {
@@ -190,12 +190,12 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
     public String webPath() {
         return web_path;
     }
-    
+
     /**
      * Reset the Cleanup size and interval
-     * 
+     *
      * The size and interval when started are 500 items (memory size unknown) checked every minute in a background thread.
-     * 
+     *
      * @param size
      * @param interval
      */
@@ -204,13 +204,13 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
         timer = new Timer();
         timer.schedule(new Cleanup(content,size), interval, interval);
     }
-    
 
-    
+
+
     /**
      * Load a file, first checking cache
-     * 
-     * 
+     *
+     *
      * @param logTarget - logTarget can be null (won't log)
      * @param dataRoot - data root storage directory
      * @param key - relative File Path
@@ -234,7 +234,7 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
             isRoot = false;
         }
         Content c = content.get(key);
-        long systime = System.currentTimeMillis(); 
+        long systime = System.currentTimeMillis();
         File f=null;
         if (c!=null) {
             // Don't check every hit... only after certain time value
@@ -245,11 +245,11 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
                 }
             }
         }
-        if (c==null) {    
+        if (c==null) {
             if (logTarget!=null) {
                 logTarget.log("File Read: ",key);
             }
-            
+
             if (f==null){
                 f = new File(fileName);
             }
@@ -266,7 +266,7 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
                         c = new CachedContent(f);
                         cacheMe = checkInterval>0;
                     }
-                    
+
                     if (mediaType==null) { // determine from file Ending
                         int idx = key.lastIndexOf('.');
                         String subkey = key.substring(++idx);
@@ -279,9 +279,9 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
                         c.contentType=mediaType;
                         c.attachmentOnly = false;
                     }
-                    
+
                     c.date = f.lastModified();
-                    
+
                     if (cacheMe) {
                         content.put(key, c);
                     }
@@ -297,14 +297,14 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
         c.access = systime;
         return c;
     }
-    
+
 
     public void invalidate(String key) {
         content.remove(key);
     }
-    
+
     private static final Content NULL=new Content() {
-        
+
         @Override
         public void setHeader(HttpServletResponse resp) {
             resp.setStatus(404/*NOT_FOUND_404*/);
@@ -318,37 +318,37 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
         @Override
         public void write(OutputStream os) throws IOException {
         }
-        
+
     };
 
     private static abstract class Content {
         private long date;   // date of the actual artifact (i.e. File modified date)
         private long access; // last accessed
-        
+
         protected String  contentType;
         protected boolean attachmentOnly;
-        
+
         public void setHeader(HttpServletResponse resp) {
             resp.setStatus(200/*OK_200*/);
             resp.setHeader("Content-Type",contentType);
             resp.setHeader("Cache-Control", MAX_AGE);
         }
-        
+
         public abstract void write(Writer writer) throws IOException;
         public abstract void write(OutputStream os) throws IOException;
 
     }
 
     private static class DirectFileContent extends Content {
-        private File file; 
+        private File file;
         public DirectFileContent(File f) {
             file = f;
         }
-        
+
         public String toString() {
             return file.getName();
         }
-        
+
         public void write(Writer writer) throws IOException {
             FileReader fr = new FileReader(file);
             char[] buff = new char[1024];
@@ -387,7 +387,7 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
 
         public DirectoryContent(File directory, boolean isRoot) {
             notRoot = !isRoot;
-        
+
             files = directory.listFiles();
             Arrays.sort(files,new Comparator<File>() {
                 @Override
@@ -399,7 +399,7 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
                         // if numbers, are the numbers in the same start position
                         int i1 = m1.start();
                         int i2 = m2.start();
-                        
+
                         // If same start position and the text is the same, then reverse sort
                         if (i1==i2 && f1.getName().startsWith(f2.getName().substring(0,i1))) {
                             // reverse sort files that start similarly, but have numbers in them
@@ -408,14 +408,14 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
                     }
                     return f1.compareTo(f2);
                 }
-                
+
             });
             name = directory.getName();
             attachmentOnly = false;
             contentType = "text/html";
         }
-        
-    
+
+
         @Override
         public void write(Writer w) throws IOException {
             w.append(H1);
@@ -435,19 +435,19 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
             w.append(F);
             w.flush();
         }
-    
+
         @Override
         public void write(OutputStream os) throws IOException {
             write(new OutputStreamWriter(os));
         }
-    
+
     }
 
     private static class CachedContent extends Content {
         private byte[] data;
         private int end;
-        private char[] cdata; 
-        
+        private char[] cdata;
+
         public CachedContent(File f) throws IOException {
             // Read and Cache
             ByteBuffer bb = ByteBuffer.allocate((int)f.length());
@@ -462,11 +462,11 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
             end = bb.position();
             cdata=null;
         }
-        
+
         public String toString() {
             return Arrays.toString(data);
         }
-        
+
         public void write(Writer writer) throws IOException {
             synchronized(this) {
                 // do the String Transformation once, and only if actually used
@@ -495,24 +495,24 @@ public class CachingFileAccess<TRANS extends Trans> extends HttpCode<TRANS, Void
     private static class Cleanup extends TimerTask {
         private int maxSize;
         private NavigableMap<String, Content> content;
-        
+
         public Cleanup(NavigableMap<String, Content> content, int size) {
             maxSize = size;
             this.content = content;
         }
-        
+
         private class Comp implements Comparable<Comp> {
             public Map.Entry<String, Content> entry;
-            
+
             public Comp(Map.Entry<String, Content> en) {
                 entry = en;
             }
-            
+
             @Override
             public int compareTo(Comp o) {
                 return (int)(entry.getValue().access-o.entry.getValue().access);
             }
-            
+
         }
         @SuppressWarnings("unchecked")
         @Override
index 1c171fd..761fd8c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,13 +39,13 @@ class CodeSetter<TRANS extends Trans> {
         this.trans = trans;
         this.req = req;
         this.resp = resp;
-                
+
     }
     public boolean matches(Route<TRANS> route) throws IOException, ServletException {
         // Find best Code in Route based on "Accepts (Get) or Content-Type" (if exists)
         return (code = route.getCode(trans, req, resp))!=null;
     }
-    
+
     public HttpCode<TRANS,?> code() {
         return code;
     }
index 63a2eea..e9c8adb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,14 +29,14 @@ import org.onap.aaf.misc.env.Trans;
 
 /**
  * A Class to hold Service "ContentTypes", and to match incoming "Accept" types from HTTP.
- * 
+ *
  * This is a multi-use class built to use the same Parser for ContentTypes and Accept.
- * 
+ *
  * Thus, you would create and use "Content.Type" within your service, and use it to match
  * Accept Strings.  What is returned is an Integer (for faster processing), which can be
  * used in a switch statement to act on match different Actions.  The server should
  * know which behaviors match.
- * 
+ *
  * "bestMatch" returns an integer for the best match, or -1 if no matches.
  *
  * @author Jonathan
@@ -49,16 +49,16 @@ public abstract class Content<TRANS extends Trans> {
 
     /**
      * Parse a Content-Type/Accept.  As found, call "types" and "props", which do different
-     * things depending on if it's a Content-Type or Accepts. 
-     * 
+     * things depending on if it's a Content-Type or Accepts.
+     *
      * For Content-Type, it builds a tree suitable for Comparison
      * For Accepts, it compares against the tree, and builds an acceptable type list
-     * 
+     *
      * Since this parse code is used for every incoming HTTP transaction, I have removed the implementation
      * that uses String.split, and replaced with integers evaluating the Byte array.  This results
-     * in only the necessary strings created, resulting in 1/3 better speed, and less 
+     * in only the necessary strings created, resulting in 1/3 better speed, and less
      * Garbage collection.
-     * 
+     *
      * @param trans
      * @param code
      * @param cntnt
@@ -111,5 +111,5 @@ public abstract class Content<TRANS extends Trans> {
         } while (cie>=0);
         return contType && contProp; // for use in finds, True if a type found AND all props matched
     }
-    
+
 }
index 0768145..8c533f6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,13 +28,13 @@ import org.onap.aaf.misc.env.Trans;
 
 /**
  * HTTP Code element, which responds to the essential "handle Method".
- * 
+ *
  * Use Native HttpServletRe[quest|sponse] calls for questions like QueryParameters (getParameter, etc)
- * 
+ *
  * Use local "pathParam" method to obtain in an optimized manner the path parameter, which must be interpreted by originating string
- * 
+ *
  * i.e. my/path/:id/:other/*
- * 
+ *
  * @author Jonathan
  *
  * @param <TRANS>
@@ -45,14 +45,14 @@ public abstract class HttpCode<TRANS extends Trans, CONTEXT> {
     private String desc;
     protected String [] roles;
     private boolean all;
-    
+
     // Package by design... Set by Route when linked
     Match match;
-    
+
     public HttpCode(CONTEXT context, String description, String ... roles) {
         this.context = context;
         desc = description;
-        
+
         // Evaluate for "*" once...
         all = false;
         for (String srole : roles) {
@@ -63,16 +63,16 @@ public abstract class HttpCode<TRANS extends Trans, CONTEXT> {
         }
         this.roles = all?null:roles;
     }
-    
+
     public abstract void handle(TRANS trans, HttpServletRequest req, HttpServletResponse resp) throws Exception;
-    
+
     public String desc() {
         return desc;
     }
-    
+
     /**
      * Get the variable element out of the Path Parameter, as set by initial Code
-     * 
+     *
      * @param req
      * @param key
      * @return
@@ -92,12 +92,12 @@ public abstract class HttpCode<TRANS extends Trans, CONTEXT> {
     }
 
     // Note: get Query Params from Request
-    
+
     /**
      * Check for Authorization when set.
-     * 
+     *
      * If no Roles set, then accepts all users
-     * 
+     *
      * @param req
      * @return
      */
@@ -110,11 +110,11 @@ public abstract class HttpCode<TRANS extends Trans, CONTEXT> {
         }
         return false;
     }
-    
+
     public boolean no_cache() {
         return false;
     }
-    
+
     public String toString() {
         return desc;
     }
index 3f7f93c..2ea340e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 599e45b..8f47126 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -27,9 +27,9 @@ import java.util.Set;
 
 /**
  * This path matching algorithm avoids using split strings during the critical transactional run-time.  By pre-analyzing the
- * content at "set Param" time, and storing data in an array-index model which presumably is done once and at the beginning, 
+ * content at "set Param" time, and storing data in an array-index model which presumably is done once and at the beginning,
  * we can match in much less time when it actually counts.
- * 
+ *
  * @author Jonathan
  *
  */
@@ -39,14 +39,14 @@ public class Match {
     private Integer vars[];
     private boolean wildcard;
 
-    
+
     /*
      * These two methods are pairs of searching performance for variables Spark Style.
      * setParams evaluates the target path, and sets a HashMap that will return an Integer.
      * the Keys are both :key and key so that there will be no string operations during
      * a transaction
-     * 
-     * For the Integer, if the High Order is 0, then it is just one value.  If High Order >0, then it is 
+     *
+     * For the Integer, if the High Order is 0, then it is just one value.  If High Order >0, then it is
      * a multi-field option, i.e. ending with a wild-card.
      */
     public Match(String path) {
@@ -56,7 +56,7 @@ public class Match {
             String[] pa = path.split("/");
             values = new byte[pa.length][];
             vars = new Integer[pa.length];
-            
+
             int val = 0;
             String key;
             for (int i=0;i<pa.length && !wildcard;++i) {
@@ -69,7 +69,7 @@ public class Match {
                         val = i;
                         key = pa[i];
                     }
-                    params.put(key,val); //put in :key 
+                    params.put(key,val); //put in :key
                     params.put(key.substring(1,key.length()), val); // put in just key, better than adding a missing one, like Spark
                     // values[i]=null; // null stands for Variable
                     vars[i]=val;
@@ -96,14 +96,14 @@ public class Match {
     /*
      * This is the second of the param evaluation functions.  First, we look up to see if there is
      * any reference by key in the params Map created by the above.
-     * 
+     *
      * The resulting Integer, if not null, is split high/low order into start and end.
      * We evaluate the string for '/', rather than splitting into  String[] to avoid the time/mem needed
-     * We traverse to the proper field number for slash, evaluate the end (whether wild card or no), 
-     * and return the substring.  
-     * 
+     * We traverse to the proper field number for slash, evaluate the end (whether wild card or no),
+     * and return the substring.
+     *
      * The result is something less than .003 milliseconds per evaluation
-     * 
+     *
      */
     public String param(String path,String key) {
         Integer val = params.get(key); // :key or key
@@ -116,7 +116,7 @@ public class Match {
                 idx = path.indexOf('/',idx+1);
                 if (idx<0)break;
             }
-            if (i==start) { 
+            if (i==start) {
                 ++idx;
                 if (end==0) {
                     end = path.indexOf('/',idx);
@@ -131,7 +131,7 @@ public class Match {
         }
         return null;
     }
-    
+
     public boolean match(String path) {
         if (path==null|| path.length()==0 || "/".equals(path) ) {
             if (values==null)return true;
@@ -140,7 +140,7 @@ public class Match {
                 case 1: return values[0].length==0;
                 default: return false;
             }
-        }            
+        }
         boolean rv = true;
         byte[] pabytes = path.getBytes();
         int field=0;
@@ -169,7 +169,7 @@ public class Match {
                         ++j;
                     }
                 }
-                
+
                 if (k==lastByte && pabytes[k-1]!='/')++field;
                 if (k>i)i=k-1; // if we've incremented, have to accommodate the outer for loop incrementing as well
                 fieldMatched = false; // reset
@@ -183,10 +183,10 @@ public class Match {
                     }
                     rv = fieldMatched && ++field<lastField;
                     // reset
-                    fieldMatched = false; 
+                    fieldMatched = false;
                     fieldIdx = 0;
                 } else if (values[field].length==0) {
-                    // double slash in path, but content in field.  We check specially here to avoid 
+                    // double slash in path, but content in field.  We check specially here to avoid
                     // Array out of bounds issues.
                     rv = false;
                 } else {
@@ -204,7 +204,7 @@ public class Match {
         if (field!=lastField || pabytes.length!=lastByte) rv = false; // have we matched all the fields and all the bytes?
         return rv;
     }
-    
+
     public Set<String> getParamNames() {
         return params.keySet();
     }
index f4d1394..54b2e59 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -22,8 +22,8 @@
 package org.onap.aaf.auth.rserv;
 
 /**
- * A pair of generic Objects.  
- * 
+ * A pair of generic Objects.
+ *
  * @author Jonathan
  *
  * @param <X>
@@ -32,12 +32,12 @@ package org.onap.aaf.auth.rserv;
 public class Pair<X,Y> {
     public X x;
     public Y y;
-    
+
     public Pair(X x, Y y) {
         this.x = x;
         this.y = y;
     }
-    
+
     public String toString() {
         return "X: " + x.toString() + "-->" + y.toString();
     }
index 9dec87d..7f94acb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -59,19 +59,19 @@ public abstract class RServlet<TRANS extends Trans> implements Servlet {
         r.add(code,moreTypes);
         env.init().log(r.report(code),code);
     }
-    
+
     @Override
     public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
         HttpServletRequest request = (HttpServletRequest)req;
         HttpServletResponse response = (HttpServletResponse)res;
-        
+
         @SuppressWarnings("unchecked")
         TRANS trans = (TRANS)req.getAttribute(TransFilter.TRANS_TAG);
         if (trans==null) {
             response.setStatus(404); // Not Found, because it didn't go through TransFilter
             return;
         }
-        
+
         Route<TRANS> route;
         HttpCode<TRANS,?> code=null;
         String ct = req.getContentType();
@@ -93,7 +93,7 @@ public abstract class RServlet<TRANS extends Trans> implements Servlet {
         } finally {
             tt.done();
         }
-        
+
         if (route!=null && code!=null) {
             StringBuilder sb = new StringBuilder(72);
             sb.append(route.auditText);
@@ -119,7 +119,7 @@ public abstract class RServlet<TRANS extends Trans> implements Servlet {
             }
         }
     }
-    
+
     @Override
     public String getServletInfo() {
         return "RServlet for Jetty";
@@ -127,9 +127,9 @@ public abstract class RServlet<TRANS extends Trans> implements Servlet {
 
     /**
      * Allow Service to instantiate certain actions after service starts up
-     * @throws LocatorException 
-     * @throws CadiException 
-     * @throws APIException 
+     * @throws LocatorException
+     * @throws CadiException
+     * @throws APIException
      */
     public void postStartup(String hostname, int port) throws APIException {
     }
index 46a3a95..f8c5ae1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,12 +36,12 @@ public class Route<TRANS extends Trans> {
     public final String auditText;
     public final HttpMethods meth;
     public final String path;
-    
+
     private Match match;
     // package on purpose
     private final TypedCode<TRANS> content;
     private final boolean isContentType;
-    
+
     public Route(HttpMethods meth, String path) {
         this.path = path;
         auditText = meth.name() + ' ' + path;
@@ -50,13 +50,13 @@ public class Route<TRANS extends Trans> {
         match = new Match(path);
         content = new TypedCode<TRANS>();
     }
-    
+
     public void add(HttpCode<TRANS,?> code, String ... others) {
         code.match = match;
         content.add(code, others);
     }
-    
-    public HttpCode<TRANS,?> getCode(TRANS trans, HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException {
+
+    public HttpCode<TRANS,?> getCode(TRANS trans, HttpServletRequest req, HttpServletResponse resp) {
         // Type is associated with Accept for GET (since it is what is being returned
         // We associate the rest with ContentType.
         // FYI, thought about this a long time before implementing this way.
@@ -82,11 +82,11 @@ public class Route<TRANS extends Trans> {
         }
         return null;
     }
-    
+
     public Route<TRANS> matches(String method, String path) {
         return meth.name().equalsIgnoreCase(method) && match.match(path)?this:null;
     }
-    
+
     public TimeTaken start(Trans trans, String auditText, HttpCode<TRANS,?> code, String type) {
         StringBuilder sb = new StringBuilder(auditText);
         sb.append(", ");
@@ -100,9 +100,9 @@ public class Route<TRANS extends Trans> {
     boolean resolvesTo(HttpMethods hm, String p) {
         return(path.equals(p) && hm.equals(meth));
     }
-    
+
     public String toString() {
-        return auditText + ' ' + content; 
+        return auditText + ' ' + content;
     }
 
     public String report(HttpCode<TRANS, ?> code) {
index cb7c48b..4e4cdb5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index ed6326a..3afe223 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,14 +35,14 @@ public class Routes<TRANS extends Trans> {
     // Since this must be very, very fast, and only needs one creation, we'll use just an array.
     private Route<TRANS>[] routes;
     private int end;
-    
+
 
     @SuppressWarnings("unchecked")
     public Routes() {
         routes = new Route[10];
         end = 0;
     }
-    
+
     // This method for setup of Routes only...
     // Package on purpose
     synchronized Route<TRANS> findOrCreate(HttpMethods  meth, String path) {
@@ -50,7 +50,7 @@ public class Routes<TRANS extends Trans> {
         for (int i=0;i<end;++i) {
             if (routes[i].resolvesTo(meth,path))rv = routes[i];
         }
-        
+
         if (rv==null) {
             if (end>=routes.length) {
                 @SuppressWarnings("unchecked")
@@ -58,12 +58,12 @@ public class Routes<TRANS extends Trans> {
                 System.arraycopy(routes, 0, temp, 0, routes.length);
                 routes = temp;
             }
-            
+
             routes[end++]=rv=new Route<TRANS>(meth,path);
         }
         return rv;
     }
-    
+
     public Route<TRANS> derive(HttpServletRequest req, CodeSetter<TRANS> codeSetter)  throws IOException, ServletException {
         Route<TRANS> rv = null;
         String path = req.getPathInfo();
@@ -71,13 +71,13 @@ public class Routes<TRANS extends Trans> {
         //TODO a TREE would be better
         for (int i=0;rv==null && i<end; ++i) {
             rv = routes[i].matches(meth,path);
-            if (rv!=null && !codeSetter.matches(rv)) { // potential match, check if has Code 
+            if (rv!=null && !codeSetter.matches(rv)) { // potential match, check if has Code
                 rv = null; // not quite, keep going
             }
         }
         return rv;
     }
-    
+
     public List<RouteReport> routeReport() {
         ArrayList<RouteReport> ltr = new ArrayList<>();
         for (int i=0;i<end;++i) {
index 2acfbe3..5b85693 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,22 +52,22 @@ import org.onap.aaf.misc.env.util.Split;
 
 /**
  * Create a new Transaction Object for each and every incoming Transaction
- * 
+ *
  * Attach to Request.  User "FilterHolder" mechanism to retain single instance.
- * 
+ *
  * TransFilter includes CADIFilter as part of the package, so that it can
  * set User Data, etc, as necessary.
- * 
+ *
  * @author Jonathan
  *
  */
 public abstract class TransFilter<TRANS extends TransStore> implements Filter {
     public static final String TRANS_TAG = "__TRANS__";
-    
+
     private CadiHTTPManip cadi;
 
     private final String[] no_authn;
-    
+
     public TransFilter(Access access, Connector con, TrustChecker tc, Object ... additionalTafLurs) throws CadiException, LocatorException {
         cadi = new CadiHTTPManip(access, con, tc, additionalTafLurs);
         String no = access.getProperty(Config.CADI_NOAUTHN, null);
@@ -81,7 +81,7 @@ public abstract class TransFilter<TRANS extends TransStore> implements Filter {
     @Override
     public void init(FilterConfig filterConfig) throws ServletException {
     }
-    
+
     protected Lur getLur() {
         return cadi.getLur();
     }
@@ -90,19 +90,19 @@ public abstract class TransFilter<TRANS extends TransStore> implements Filter {
     protected abstract TimeTaken start(TRANS trans);
     protected abstract void authenticated(TRANS trans, Principal p);
     protected abstract void tallyHo(TRANS trans, String target);
-    
+
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         HttpServletRequest req = (HttpServletRequest)request;
         HttpServletResponse res = (HttpServletResponse)response;
-        
+
         TRANS trans = newTrans(req,res);
-        
+
         TimeTaken overall = start(trans);
         String target = "n/a";
         try {
             request.setAttribute(TRANS_TAG, trans);
-            
+
             if (no_authn!=null) {
                 for (String prefix : no_authn) {
                     if (req.getPathInfo().startsWith(prefix)) {
@@ -133,7 +133,7 @@ public abstract class TransFilter<TRANS extends TransStore> implements Filter {
             } finally {
                 security.done();
             }
-            
+
             if (r==RESP.IS_AUTHENTICATED) {
                 trans.checkpoint(resp.desc());
                 if (cadi.notCadi(cw, res)) {
@@ -141,7 +141,7 @@ public abstract class TransFilter<TRANS extends TransStore> implements Filter {
                 }
             } else {
                 //TODO this is a good place to check if too many checks recently
-                // Would need Cached Counter objects that are cleaned up on 
+                // Would need Cached Counter objects that are cleaned up on
                 // use
                 trans.checkpoint(resp.desc(),Env.ALWAYS);
                 if (resp.isFailedAttempt()) {
index ef91e48..0cf4b83 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,12 +38,12 @@ import org.onap.aaf.misc.env.TransStore;
 
 /**
  * Create a new Transaction Object for each and every incoming Transaction
- * 
+ *
  * Attach to Request.  User "FilterHolder" mechanism to retain single instance.
- * 
+ *
  * TransFilter includes CADIFilter as part of the package, so that it can
  * set User Data, etc, as necessary.
- * 
+ *
  * @author Jonathan
  *
  */
@@ -51,14 +51,14 @@ public abstract class TransOnlyFilter<TRANS extends TransStore> implements Filte
     @Override
     public void init(FilterConfig filterConfig) throws ServletException {
     }
-    
+
 
 
     protected abstract TRANS newTrans(HttpServletRequest req, HttpServletResponse resp);
     protected abstract TimeTaken start(TRANS trans);
     protected abstract void authenticated(TRANS trans, TaggedPrincipal p);
     protected abstract void tallyHo(TRANS trans);
-    
+
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         TRANS trans = newTrans((HttpServletRequest)request,(HttpServletResponse)response);
index 1a66cf7..6af2835 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
 
 package org.onap.aaf.auth.rserv;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 
-import javax.servlet.ServletException;
+
 
 import org.onap.aaf.misc.env.Env;
 import org.onap.aaf.misc.env.TimeTaken;
@@ -40,17 +39,17 @@ import org.onap.aaf.misc.env.Trans;
  * FYI: For those in the future wondering why I would create a specialized set of "Pair" for the data content:
  *   1) TypeCode is used in Route, and this code is used for every transaction... it needs to be blazingly fast
  *   2) The actual number of objects accessed is quite small and built at startup.  Arrays are best
- *   3) I needed a small, well defined tree where each level is a different Type.  Using a "Pair" Generic definitions, 
+ *   3) I needed a small, well defined tree where each level is a different Type.  Using a "Pair" Generic definitions,
  *      I created type-safety at each level, which you can't get from a TreeSet, etc.
  *   4) Chaining through the Network is simply object dereferencing, which is as fast as Java can go.
  *   5) The drawback is that in your code is that all the variables are named "x" and "y", which can be a bit hard to
- *       read both in code, and in the debugger.  However, TypeSafety allows your IDE (Eclipse) to help you make the 
+ *       read both in code, and in the debugger.  However, TypeSafety allows your IDE (Eclipse) to help you make the
  *      choices.  Also, make sure you have a good "toString()" method on each object so you can see what's happening
  *      in the IDE Debugger.
- *   
+ *
  * Empirically, this method of obtaining routes proved to be much faster than the HashSet implementations available in otherwise
  * competent Open Source.
- *   
+ *
  * @author Jonathan
  *
  * @param <TRANS>
@@ -61,10 +60,10 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
         public TypedCode() {
             types = new ArrayList<>();
         }
-        
+
         /**
          * Construct Typed Code based on ContentType parameters passed in
-         * 
+         *
          * @param code
          * @param others
          * @return
@@ -74,17 +73,17 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
             boolean first = true;
             for (String str : others) {
                 if (first) {
-                    first = false; 
+                    first = false;
                 } else {
                     sb.append(',');
                 }
                 sb.append(str);
             }
             parse(code, sb.toString());
-            
+
             return this;
         }
-        
+
         @Override
         protected Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>> types(HttpCode<TRANS,?> code, String str) {
             Pair<String, Pair<HttpCode<TRANS,?>,List<Pair<String, Object>>>> type = null;
@@ -127,8 +126,8 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
             }
             return type.y.y.add(new Pair<String,Object>(tag,"version".equals(tag)?new Version(value):value));
         }
-        
-        public Pair<String, Pair<HttpCode<TRANS, ?>, List<Pair<String, Object>>>> prep(TRANS trans, String compare) throws IOException, ServletException {
+
+        public Pair<String, Pair<HttpCode<TRANS, ?>, List<Pair<String, Object>>>> prep(TRANS trans, String compare){
             Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>> c,rv=null;
             if (types.size()==1 && "".equals((c=types.get(0)).x)) { // if there are no checks for type, skip
                 rv = c;
@@ -146,11 +145,11 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
                     }
                     if (accepted) {
                         switch(acc.acceptable.size()) {
-                            case 0:    
+                            case 0:
 //                                // TODO best Status Code?
 //                                resp.setStatus(HttpStatus.NOT_ACCEPTABLE_406);
                                 break;
-                            case 1: 
+                            case 1:
                                 rv = acc.acceptable.get(0);
                                 break;
                             default: // compare Q values to get Best Match
@@ -177,14 +176,14 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
             }
             return rv;
         }
-        
+
         /**
          * Print on String Builder content related to specific Code
-         * 
+         *
          * This is for Reporting and Debugging purposes, so the content is not cached.
-         * 
+         *
          * If code is "null", then all content is matched
-         * 
+         *
          * @param code
          * @return
          */
@@ -211,7 +210,7 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
             }
             return sb;
         }
-        
+
         public List<Pair<String, Object>> getContent(HttpCode<TRANS,?> code) {
             for (Pair<String, Pair<HttpCode<TRANS, ?>, List<Pair<String, Object>>>> pair : types) {
                 if (pair.y.x == code) {
@@ -220,17 +219,17 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
             }
             return null;
         }
-    
+
         public String toString() {
             return relatedTo(null,new StringBuilder()).toString();
         }
-        
+
         public void api(RouteReport tr) {
             // Need to build up a map, because Prop entries can be in several places.
             HashMap<HttpCode<?,?>,StringBuilder> psb = new HashMap<>();
             StringBuilder temp;
             tr.desc = null;
-            
+
             // Read through Code/TypeCode trees for all accepted Typecodes
             for (Pair<String, Pair<HttpCode<TRANS, ?>, List<Pair<String, Object>>>> tc : types) {
                 // If new, then it's new Code set, create prefix content
@@ -253,7 +252,7 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
                 }
             }
             // Gather all ContentType possibilities for the same code together
-            
+
             for (StringBuilder sb : psb.values()) {
                 tr.contextTypes.add(sb.toString());
             }
@@ -265,5 +264,5 @@ public class TypedCode<TRANS extends Trans> extends Content<TRANS> {
             }
             return null;
         }
-        
+
     }
\ No newline at end of file
index adf0538..37c26fc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,7 +24,7 @@ package org.onap.aaf.auth.rserv;
 
 /**
  * Analyze and hold Version information for Code
- * 
+ *
  * @author Jonathan
  *
  */
@@ -67,8 +67,8 @@ public class Version {
         }
         return false;
     }
-    
-    
+
+
     /* (non-Javadoc)
      * @see java.lang.Object#hashCode()
      */
index 684976b..ab766a6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,5 +36,5 @@ public @interface ApiDoc {
     String[] text();
     /** Format with name|type|[true|false] */
     String[] params();
-    
+
 }
index 4fb81d7..3113131 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,7 +55,7 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
     public final String app_name;
     public final String app_version;
     public final String ROOT_NS;
-    
+
     public AbsService(final Access access, final ENV env) throws CadiException {
         Define.set(access);
         ROOT_NS = Define.ROOT_NS();
@@ -70,14 +70,14 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
             str = ROOT_NS + '.' + scomp[0];
         }
         app_name = str;
-        
+
         str = access.getProperty(Config.AAF_LOCATOR_VERSION, null);
         if(str==null) {
             str = Defaults.AAF_VERSION;
             env.setProperty(Config.AAF_LOCATOR_VERSION, str);
         }
         app_version = access.getProperty(Config.AAF_DEPLOYED_VERSION, str);
-        
+
         // Print Cipher Suites Available
         if (access.willLog(Level.DEBUG)) {
             SSLContext context;
@@ -99,7 +99,7 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
             access.log(Level.DEBUG,sb);
         }
     }
-    
+
     public void setProtocol(String proto) {
         env.setProperty(Config.AAF_LOCATOR_PROTOCOL, proto);
     }
@@ -107,12 +107,12 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
     public void setSubprotocol(String subproto) {
         env.setProperty(Config.AAF_LOCATOR_SUBPROTOCOL, subproto);
     }
-    
+
     protected abstract Filter[] _filters(Object ... additionalTafLurs) throws CadiException,  LocatorException;
-    
+
     /**
      * Overload this method to add new TAF or LURs
-     * 
+     *
      * @return
      * @throws CadiException
      * @throws LocatorException
@@ -134,11 +134,11 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
             }
             return aafCon;
     }
-    
+
     /**
      * Allow to be over ridden for special cases
      * @return
-     * @throws LocatorException 
+     * @throws LocatorException
      */
         protected synchronized AAFConHttp _newAAFConHttp() throws CadiException, LocatorException {
             if (aafCon==null) {
@@ -147,12 +147,12 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
             return aafCon;
 
         }
-    
+
     // This is a method, so we can overload for AAFAPI
     public String aaf_url() {
             return access.getProperty(Config.AAF_URL, null);
     }
-    
+
     public Rcli<?> client() throws CadiException {
         return aafCon.client();
     }
@@ -165,7 +165,7 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
     public<RET> RET clientAsUser(TaggedPrincipal p,Retryable<RET> retryable) throws APIException, LocatorException, CadiException  {
             return aafCon.hman().best(new HTransferSS(p,app_name, aafCon.securityInfo()), retryable);
     }
-    
+
     protected static final String loadFromArgOrSystem(final Properties props, final String tag, final String args[], final String def) {
         String tagEQ = tag + '=';
         String value;
@@ -177,11 +177,11 @@ public abstract class AbsService<ENV extends BasicEnv, TRANS extends Trans> exte
         }
         // check System.properties
         value = System.getProperty(tag);
-        if (value!=null) { 
+        if (value!=null) {
             props.put(tag, value);
             return value;
         }
-        
+
         if (def!=null) {
             props.put(tag,def);
         }
index 90f4158..f09a4ff 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -68,15 +68,15 @@ public abstract class AbsServiceStarter<ENV extends RosettaEnv, TRANS extends Tr
         }
         _propertyAdjustment();
     }
-    
-    
+
+
     protected abstract void _start(RServlet<TRANS> rserv) throws Exception;
     protected abstract void _propertyAdjustment();
-    
+
     public ENV env() {
         return service.env;
     }
-    
+
     public Access access() {
         return service.access;
     }
@@ -86,8 +86,8 @@ public abstract class AbsServiceStarter<ENV extends RosettaEnv, TRANS extends Tr
         ExecutorService es = Executors.newSingleThreadExecutor();
         Future<?> app = es.submit(this);
         final AbsServiceStarter<?,?> absSS = this;
-        // Docker/K8 may separately create startup Status in this dir for startup 
-        // sequencing.  If so, delete ON EXIT 
+        // Docker/K8 may separately create startup Status in this dir for startup
+        // sequencing.  If so, delete ON EXIT
         Runtime.getRuntime().addShutdownHook(new Thread() {
           @Override
           public void run() {
@@ -109,7 +109,7 @@ public abstract class AbsServiceStarter<ENV extends RosettaEnv, TRANS extends Tr
             }
         }
     }
-    
+
     @SafeVarargs
     public final synchronized void register(final Registrant<ENV> ... registrants) {
         if (do_register) {
@@ -137,7 +137,7 @@ public abstract class AbsServiceStarter<ENV extends RosettaEnv, TRANS extends Tr
         if (registrar!=null) {
             registrar.close(env());
             registrar=null;
-        } 
+        }
         if (service!=null) {
             File status = new File("/opt/app/aaf/status/");
             boolean deleted = false;
@@ -147,7 +147,7 @@ public abstract class AbsServiceStarter<ENV extends RosettaEnv, TRANS extends Tr
                 if(lastdot<0) {
                     fname = service.app_name + '-' + hostname;
                 } else {
-                    fname = service.app_name.substring(lastdot).replace('.', '-') 
+                    fname = service.app_name.substring(lastdot).replace('.', '-')
                             + '-' + hostname;
                 }
                 status = new File(status, fname);
index 78a7702..3f0d2eb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,7 +58,7 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
     public JettyServiceStarter(final AbsService<ENV,TRANS> service, boolean secure) throws OrganizationException {
         super(service, secure);
     }
-    
+
     @Override
     public void _propertyAdjustment() {
 //        System.setProperty("com.sun.management.jmxremote.port", "8081");
@@ -72,7 +72,7 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
                 props.put(Config.CADI_PROTOCOLS, httpproto);
             }
         }
-    
+
         if ("1.7".equals(System.getProperty("java.specification.version")) && (httpproto==null || (httpproto instanceof String && ((String)httpproto).contains("TLSv1.2")))) {
             System.setProperty(Config.HTTPS_CIPHER_SUITES, Config.HTTPS_CIPHER_SUITES_DEFAULT);
         }
@@ -84,7 +84,7 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
         final String keystore = access().getProperty(Config.CADI_KEYSTORE, null);
         final int IDLE_TIMEOUT = Integer.parseInt(access().getProperty(Config.AAF_CONN_IDLE_TIMEOUT, Config.AAF_CONN_IDLE_TIMEOUT_DEF));
         Server server = new Server();
-        
+
         ServerConnector conn;
         String protocol;
         if (!secure || keystore==null) {
@@ -92,7 +92,7 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
             protocol = "http";
         } else {
             protocol = "https";
-            
+
 
             String keystorePassword = access().getProperty(Config.CADI_KEYSTORE_PASSWORD, null);
             if (keystorePassword==null) {
@@ -104,7 +104,7 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
             sslContextFactory.setKeyStorePassword(temp=access().decrypt(keystorePassword, true)); // don't allow unencrypted
             sslContextFactory.setKeyManagerPassword(temp);
             temp=null; // don't leave lying around
-            
+
             String truststore = access().getProperty(Config.CADI_TRUSTSTORE, null);
             if (truststore!=null) {
                 String truststorePassword = access().getProperty(Config.CADI_TRUSTSTORE_PASSWORD, null);
@@ -112,17 +112,17 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
                     throw new CadiException("No Truststore Password configured for " + truststore);
                 }
                 sslContextFactory.setTrustStorePath(truststore);
-                sslContextFactory.setTrustStorePassword(access().decrypt(truststorePassword, false)); 
+                sslContextFactory.setTrustStorePassword(access().decrypt(truststorePassword, false));
             }
             // Be able to accept only certain protocols, i.e. TLSv1.1+
             String subprotocols = access().getProperty(Config.CADI_PROTOCOLS, Config.HTTPS_PROTOCOLS_DEFAULT);
             service.setSubprotocol(subprotocols);
             final String[] protocols = Split.splitTrim(',', subprotocols);
             sslContextFactory.setIncludeProtocols(protocols);
-            
+
             // Want to use Client Certificates, if they exist.
             sslContextFactory.setWantClientAuth(true);
-            
+
             // Optional future checks.
             //   sslContextFactory.setValidateCerts(true);
             //     sslContextFactory.setValidatePeerCerts(true);
@@ -132,13 +132,13 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
             if (certAlias!=null) {
                 sslContextFactory.setCertAlias(certAlias);
             }
-            
+
             HttpConfiguration httpConfig = new HttpConfiguration();
             httpConfig.setSecureScheme(protocol);
             httpConfig.setSecurePort(port);
             httpConfig.addCustomizer(new SecureRequestCustomizer());
             //  httpConfig.setOutputBufferSize(32768);  Not sure why take this setting
-            
+
             conn = new ServerConnector(server,
                 new SslConnectionFactory(sslContextFactory,HttpVersion.HTTP_1_1.asString()),
                     new HttpConnectionFactory(httpConfig)
@@ -146,22 +146,22 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
         }
         service.setProtocol(protocol);
 
-        
-        // Setup JMX 
+
+        // Setup JMX
         // TODO trying to figure out how to set up/log ports
 //        MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
 //        MBeanContainer mbContainer=new MBeanContainer(mbeanServer);
 //        server.addEventListener(mbContainer);
 //        server.addBean(mbContainer);
-        
+
         // Add loggers MBean to server (will be picked up by MBeanContainer above)
 //        server.addBean(Log.getLog());
-    
+
         conn.setHost(hostname);
         conn.setPort(port);
         conn.setIdleTimeout(IDLE_TIMEOUT);
         server.addConnector(conn);
-        
+
         server.setHandler(new AbstractHandler() {
                 private FilterChain fc = buildFilterChain(service,new FilterChain() {
                     @Override
@@ -169,7 +169,7 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
                         rserv.service(req, resp);
                     }
                 });
-                
+
                 @Override
                 public void handle(String target, Request baseRequest, HttpServletRequest hreq, HttpServletResponse hresp) throws IOException, ServletException {
                     try {
@@ -182,7 +182,7 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
                 }
             }
         );
-        
+
         try {
             access().printf(Level.INIT, "Starting service on %s:%d (%s)",hostname,port,InetAddress.getByName(hostname).getHostAddress());
             server.start();
@@ -204,7 +204,7 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
                 access().printf(Level.INIT,"'aaf_no_register' is set.  %s will not be registered with Locator", service.app_name);
             }
             access().printf(Level.INIT, "Starting Jetty Service for %s, version %s, on %s://%s:%d", service.app_name,service.app_version,protocol,hostname,port);
-            
+
             rserv.postStartup(hostname, port);
         } catch (Exception e) {
             access().log(e,"Error registering " + service.app_name);
@@ -225,15 +225,15 @@ public class JettyServiceStarter<ENV extends RosettaEnv, TRANS extends Trans> ex
         }
         return fc;
     }
-    
+
     private class FCImpl implements FilterChain {
         private Filter f;
         private FilterChain next;
-        
+
         public FCImpl(final Filter f, final FilterChain fc) {
             this.f=f;
             next = fc;
-            
+
         }
         @Override
         public void doFilter(ServletRequest req, ServletResponse resp) throws IOException, ServletException {
index 894f571..aa7d14c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,7 +35,7 @@ import org.onap.aaf.misc.env.util.Chrono;
 public class Log4JLogIt implements LogIt {
     protected static final String AAF_LOG4J_PREFIX = "aaf_log4j_prefix";
     // Log4j does it's own date.  Can't apparently turn it off.
-    
+
     private final String service;
     private final String audit;
     private final String init;
@@ -74,13 +74,13 @@ public class Log4JLogIt implements LogIt {
             laudit = Logger.getLogger(audit);
             linit = Logger.getLogger(init);
             ltrace = Logger.getLogger(trace);
-    
+
             lfn.configure(etc_dir,propsFile, log_level);
         } catch (IOException e) {
             throw new APIException(e);
         }
     }
-    
+
     private static final String getArgOrVM(final String tag, final String args[], final String def) {
         String tagEQ = tag + '=';
         String value;
@@ -91,10 +91,10 @@ public class Log4JLogIt implements LogIt {
         }
         // check System.properties
         value = System.getProperty(tag);
-        if (value!=null) { 
+        if (value!=null) {
             return value;
         }
-        
+
         return def;
     }
 
@@ -127,7 +127,7 @@ public class Log4JLogIt implements LogIt {
             default:
                 lservice.info(PropAccess.buildMsg(service, Chrono.utcFmt, level, elements));
                 break;
-        
+
         }
 
     }
index 9004f76..17aeafa 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 052f21b..fcbccb1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -64,7 +64,7 @@ public class Validator {
         actionChars = ACTION_CHARS;
         instChars = INST_CHARS;
     }
-    
+
     public final String errs() {
         return msgs.toString();
     }
@@ -96,7 +96,7 @@ public class Validator {
     }
 
     protected final boolean nob(String str, Pattern p) {
-        return str==null || !p.matcher(str).matches(); 
+        return str==null || !p.matcher(str).matches();
     }
 
     protected final void msg(String ... strs) {
@@ -164,7 +164,7 @@ public class Validator {
         }
         return this;
     }
-    
+
     public final Validator permType(String type, String ns) {
         if (type==null) {
             msg("Perm Type is null");
@@ -227,7 +227,7 @@ public class Validator {
             return this;
         } else if (nob(ns,NAME_CHARS)) {
             msg("NS [" + ns + "] is invalid.");
-        } 
+        }
         for (String s : nsKeywords) {
             if (ns.endsWith(s)) {
                 msg("NS [" + ns + "] may not be named with NS keywords");
index a94d82d..f572af3 100644 (file)
@@ -50,7 +50,7 @@ public class JU_Define {
     public void setUp() throws CadiException{
         acc = mock(Access.class);
     }
-    
+
     @Test
     public void testSet() throws CadiException {
         PropAccess prop = new PropAccess();
@@ -60,7 +60,7 @@ public class JU_Define {
         Define.set(prop);
         Define.ROOT_NS();
         Define.ROOT_COMPANY();
-        
+
         PropAccess prop1 = new PropAccess();
         prop1.setProperty(AAF_NS_DOT, AAF_NS_DOT);
         prop1.setProperty(Config.AAF_ROOT_NS, ".ns_Test");
index 817ec98..80d85fc 100644 (file)
@@ -146,7 +146,7 @@ public class JU_AuthzEnv {
 
     @Test
     public void testLog1() {
-        
+
         Exception e = new Exception();
         Object msgs = null;
         authzEnv.log(e, msgs);
index ddb2d8c..7ed2ba6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -55,7 +55,7 @@ public class JU_AuthzTransFilter {
     @Mock private TrustChecker tcMock;
     @Mock private AuthzTrans authzTransMock;
     @Mock private Object additionalTafLurs;
-    
+
     private PropAccess access;
 
     @Before
@@ -66,7 +66,7 @@ public class JU_AuthzTransFilter {
 
         when(envMock.access()).thenReturn(access);
     }
-    
+
     // TODO: These tests only work on the AT&T network. Fix them - Ian
     @Test
     public void testAuthenticated() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, CadiException {
@@ -80,7 +80,7 @@ public class JU_AuthzTransFilter {
 //        authenticatedMethod.setAccessible(true);
 //        authenticatedMethod.invoke(aTF, authzTransMock, null);
     }
-    
+
     @Test
     public void testTallyHo() throws CadiException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
 //        Slot specialLogSlot = authzEnvMock.slot("SPECIAL_LOG_SLOT");
@@ -107,5 +107,5 @@ public class JU_AuthzTransFilter {
 //        when(authzTransMock.getUserPrincipal()).thenReturn(tPrin);
 //        tallyHoMethod.invoke(aTF, authzTransMock);
     }
-    
+
 }
index af92e37..0c697be 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -55,13 +55,13 @@ public class JU_AuthzTransImpl {
     @Mock
     AuthzEnv authzEnvMock;
     AuthzTransImpl trans1;
-    
+
     private Organization org=null;
     private AuthzTransImpl mockAuthzTransImpl;
     private static HttpServletRequest req;
     private static HttpServletResponse res;
     private Lur lur1 = mock(Lur.class);
-    
+
     @Before
     public void setUp(){
         authzTransImpl = new AuthzTransImpl(authzEnvMock);
@@ -71,9 +71,9 @@ public class JU_AuthzTransImpl {
         when(req.getParameter("request")).thenReturn("NotNull");
         authzTransImpl.set(req,res);
         when(req.getParameter("request")).thenReturn("");
-        authzTransImpl.set(req,res);    
+        authzTransImpl.set(req,res);
     }
-    
+
     @Test
     public void testOrg() {
         Organization result=null;
@@ -82,15 +82,15 @@ public class JU_AuthzTransImpl {
         //result = OrganizationFactory.obtain(authzTransImpl.env(), authzTransImpl.user());
         authzTransImpl.org();
         //when(test).thenReturn(null);
-        //assertTrue(true);    
+        //assertTrue(true);
     }
-    
+
     @Mock
     LogTarget logTargetMock;
-    
+
     @Test
     public void testLogAuditTrail(){
-        
+
         when(logTargetMock.isLoggable()).thenReturn(false);
         authzTransImpl.logAuditTrail(logTargetMock);
         when(logTargetMock.isLoggable()).thenReturn(true);
@@ -98,7 +98,7 @@ public class JU_AuthzTransImpl {
         //when(logTargetMock.isLoggable()).thenReturn(true);//TODO: Figure this out
         //authzTransImpl.logAuditTrail(logTargetMock);
     }
-    
+
 //    @Test                            //TODO:Fix this AAF-111
 //    public void testSetUser() {
 //        Principal user = mock(Principal.class);
@@ -107,7 +107,7 @@ public class JU_AuthzTransImpl {
 //        String username = user1.getName();
 //        Assert.assertNotNull(user1);
 //    }
-    
+
 //    @Test                            //TODO:Fix this AAF-111
 //    public void testUser() {
 //        Assert.assertEquals("n/a", authzTransImpl.user());
@@ -117,7 +117,7 @@ public class JU_AuthzTransImpl {
 //        authzTransImpl.setUser(user);
 //        Assert.assertEquals("name", authzTransImpl.user());
 //    }
-//    
+//
     @Test
     public void testRequested() {
         REQD_TYPE user = REQD_TYPE.move;
@@ -134,10 +134,10 @@ public class JU_AuthzTransImpl {
         when(req.getParameter(user1.name())).thenReturn("test");
         authzTransImpl.requested(user,false);
         */
-        
-        
+
+
     }
-    
+
     @Test
     public void testFish() {
         mockAuthzTransImpl = mock(AuthzTransImpl.class);
@@ -149,7 +149,7 @@ public class JU_AuthzTransImpl {
         authzTransImpl.setLur(lur1);
         authzTransImpl.fish(p);
     }
-    
+
     @Test
     public void testSetVariables() { //TODO: refactor this better
         Assert.assertNull(authzTransImpl.agent());
@@ -160,12 +160,12 @@ public class JU_AuthzTransImpl {
         Assert.assertNull(authzTransImpl.getUserPrincipal());
         Assert.assertNotNull(authzTransImpl.user());
     }
-    
+
     @Test
     public void testNow() {
         Date date = authzTransImpl.now();
         Assert.assertEquals(date,authzTransImpl.now());
         when(authzTransImpl.now()).thenReturn(null);
     }
-    
+
 }
index 9c7212c..142317d 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -48,65 +48,65 @@ import org.onap.aaf.misc.env.TimeTaken;
 @RunWith(MockitoJUnitRunner.class)
 public class JU_NullTrans {
     NullTrans nullTrans;
-    
+
     @Before
     public void setUp(){
         nullTrans = new NullTrans();
     }
-    
+
     @Test
     public void testAuditTrail() {
         Assert.assertNull(nullTrans.auditTrail(0, null, 0));
     }
-    
+
     @Test
     public void testSingleton() {
         AuthzTrans single = nullTrans.singleton();
         Assert.assertTrue(single instanceof AuthzTrans);
     }
-    
+
     @Test
     public void testCheckpoints() {
         nullTrans.checkpoint("Test");
         nullTrans.checkpoint(null, 0);
     }
-    
+
     @Test
     public void testFatal() {
         LogTarget log = nullTrans.fatal();
         Assert.assertEquals(LogTarget.NULL, log);
     }
-    
+
     @Test
     public void testError() {
         LogTarget log = nullTrans.error();
         Assert.assertEquals(LogTarget.NULL, log);
     }
-    
+
     @Test
     public void testAudit() {
         LogTarget log = nullTrans.audit();
         Assert.assertEquals(LogTarget.NULL, log);
     }
-    
+
     @Test
     public void testInit() {
         LogTarget log = nullTrans.init();
         Assert.assertEquals(LogTarget.NULL, log);
     }
-    
+
     @Test
     public void testWarn() {
         LogTarget log = nullTrans.warn();
         Assert.assertEquals(LogTarget.NULL, log);
     }
-    
+
     @Test
     public void testInfo() {
         LogTarget log = nullTrans.info();
         Assert.assertEquals(LogTarget.NULL, log);
     }
-    
+
     @Test
     public void testDebug() {
         LogTarget log = nullTrans.debug();
@@ -118,7 +118,7 @@ public class JU_NullTrans {
         LogTarget log = nullTrans.trace();
         Assert.assertEquals(LogTarget.NULL, log);
     }
-    
+
     @Test
     public void testStart() {
         TimeTaken test = nullTrans.start("test", 1);
@@ -131,7 +131,7 @@ public class JU_NullTrans {
         s1 = s1.trim();
         Assert.assertEquals(s,s1);
     }
-    
+
     @Test
     public void testSetProperty() {
         String tag = "tag";
@@ -142,19 +142,19 @@ public class JU_NullTrans {
         String expectedTag = nullTrans.getProperty(tag);
         Assert.assertEquals(expectedTag, tag);
     }
-    
+
     @Test
     public void testDecryptor() {
         Decryptor decry = nullTrans.decryptor();
         Assert.assertNull(decry);
     }
-    
+
     @Test
     public void testEncryptor() {
         Encryptor encry = nullTrans.encryptor();
         Assert.assertNull(encry);
     }
-    
+
     @Test
     public void testSet() {
         HttpServletRequest req = mock(HttpServletRequest.class);
@@ -162,96 +162,96 @@ public class JU_NullTrans {
         AuthzTrans set = nullTrans.set(req,res);
         Assert.assertNull(set);
     }
-    
+
     @Test
     public void testUser() {
         String user = nullTrans.user();
         Assert.assertNull(user);
     }
-    
+
     @Test
     public void testGetUserPrincipal() {
         Principal principal = nullTrans.getUserPrincipal();
         Assert.assertNull(principal);
     }
-    
+
     @Test
     public void testIp() {
         String ip = nullTrans.ip();
         Assert.assertNull(ip);
     }
-    
+
     @Test
     public void testMeth() {
         String meth = nullTrans.meth();
         Assert.assertNull(meth);
     }
-    
+
     @Test
     public void testPort() {
         int port = nullTrans.port();
         Assert.assertEquals(port,0);
     }
-    
+
     @Test
     public void testPath() {
         String path = nullTrans.path();
         Assert.assertNull(path);
     }
-    
+
     @Test
     public void testPut() {
         nullTrans.put(null, nullTrans);
     }
-    
+
     @Test
     public void testSetUser() {
         Principal principal = mock(Principal.class);
         //nullTrans.setUser(principal);
     }
-    
+
     @Test
     public void testSlot() {
         Slot slot = nullTrans.slot(null);
         Assert.assertNull(slot);
     }
-    
+
     @Test
     public void testEnv() {
         AuthzEnv env = nullTrans.env();
         Assert.assertNull(env);
     }
-    
+
     @Test
     public void testAgent() {
         String agent = nullTrans.agent();
         Assert.assertNull(agent);
     }
-    
+
     @Test
     public void testSetLur() {
         nullTrans.setLur(null);
     }
-    
+
     @Test
     public void testFish() {
         Permission perm = mock(Permission.class);
         Boolean fish = nullTrans.fish(perm);
         Assert.assertFalse(fish);
     }
-    
+
     @Test
     public void testOrg() {
         Organization org = nullTrans.org();
         Assert.assertEquals(Organization.NULL, org);
     }
-    
+
     @Test
     public void testLogAuditTrail() {
         LogTarget lt = mock(LogTarget.class);
         nullTrans.logAuditTrail(lt);
     }
-    
+
     @Test
     public void testRequested() {
         Boolean reqd = nullTrans.requested(null);
@@ -266,7 +266,7 @@ public class JU_NullTrans {
 //        Assert.assertEquals(date,nullTrans.now());
 //        //when(nullTrans.now()).thenReturn(null);
 //    }
-    
-    
-    
+
+
+
 }
index 2bc7dfa..86cb04b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,16 +54,16 @@ public class JU_AbsData {
     String filePath = "test/output_.key";
     File keyfile = new File(filePath);
     AuthzTrans trans = mock(AuthzTrans.class);
-    
+
     private class AbsDataStub extends AbsData {
 
-        
+
         public AbsDataStub(File dataf, char sepChar, int maxLineSize, int fieldOffset) {
             super(dataf, sepChar, maxLineSize, fieldOffset);
             // TODO Auto-generated constructor stub
-            
+
         }
-        
+
     }
 
     @Test
@@ -81,18 +81,18 @@ public class JU_AbsData {
         AbsDataStub ads = new AbsDataStub(keyfile, character, 0, 0);
         ads.skipLines(0);
         ads.name();
-        
+
         long lng = 1823286886660L;
         //ads.open(trans, lng);
         keyfile.delete();
     }
-    
+
     @Test
     public void testClose() throws IOException {
         AbsDataStub ads = new AbsDataStub(keyfile, character, 0, 0);
         ads.close(trans);
     }
-    
+
     @Test
     public void testReuse() throws NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
         char character = 'x';
@@ -105,7 +105,7 @@ public class JU_AbsData {
         //reuse.pos(10);
         keyfile.delete();
     }
-    
+
     @Test
     public void testIter() throws IOException {
         AbsDataStub ads = new AbsDataStub(keyfile, character, 0, 0);
index b0af89c..8f0ff02 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,7 +41,7 @@ public class JU_DataFile {
 //    public void netYetTested() {
 //        fail("Tests not yet implemented");
 //    }
-    
+
 //    @Test
 //    public void test() throws Exception {
 //        File file = new File("../authz-batch/data/v1.dat");
@@ -52,7 +52,7 @@ public class JU_DataFile {
 //            df.open();
 //            Token tok = df.new Token(1024000);
 //            Field fld = tok.new Field('|');
-//    
+//
 //            while (tok.nextLine()) {
 //                ++count;
 //                fld.reset();
index d433029..30149cf 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -63,20 +63,20 @@ public class JU_TextIndex {
     DataFile datafile;
     @Mock
     File file;
-    
+
     private class AbsDataStub extends AbsData {
 
-        
+
         public AbsDataStub(File dataf, char sepChar, int maxLineSize, int fieldOffset) {
             super(dataf, sepChar, maxLineSize, fieldOffset);
             // TODO Auto-generated constructor stub
-            
+
         }
-        
+
     }
-    
+
     @Before
-    public void setUp() throws IOException{    
+    public void setUp() throws IOException{
         char character = 'x';
         String filePath = "test/output_key";
         File keyfile = new File(filePath);
@@ -87,31 +87,31 @@ public class JU_TextIndex {
             w.write("a\nsdfasdfxasdf" + i + "\n");
         }
         w.close();
-        
+
         datafile = new DataFile(keyfile, "r");
         datafile.open();
         datafile = new DataFile(keyfile, "rws");// "S" for synchronized
         datafile.open();
-        
+
         trans = mock(Trans.class);
         TimeTaken ttMock = mock(TimeTaken.class);
         TimeTaken ttMock1 = mock(TimeTaken.class);
         when(trans.start("Open Files", Env.SUB)).thenReturn(ttMock);
         when(trans.start("Read", Env.SUB)).thenReturn(ttMock);
-        textIndex = new TextIndex(keyfile);    
+        textIndex = new TextIndex(keyfile);
         textIndex.close();
         textIndex.open();
         //textIndex.create(trans, datafile, 4, character, 2, 0);    //TODO: AAF-111 once actual input is aquired
         keyfile.delete();
-        
+
         iter = textIndex.new Iter();
     }
-    
+
     @Test
     public void testClose() throws IOException {
         textIndex.close();
     }
-    
+
     @Test
     public void testFind() throws IOException {
         char character = 'x';
@@ -121,13 +121,13 @@ public class JU_TextIndex {
         Reuse reuse = ads.reuse();
         textIndex.find("a", reuse , 0);
     }
-    
+
     @Test
     public void testIterNext() {
         iter.next();
         iter.hasNext();
     }
-    
+
     @Test
     public void testIdx() throws ClassNotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
         TextIndex outerObject = new TextIndex(file);
index 8123a82..551ff0d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,26 +40,26 @@ public class JU_Log4jAccessAppender {
 
     @Mock
     Access access;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
     }
-    
+
     @Test
     public void testRequiresLayout() {
         Log4JAccessAppender log4jObj = new Log4JAccessAppender(access);
         boolean retObj = log4jObj.requiresLayout();
         assertFalse(retObj);
     }
-    
+
     @Test
     public void testClose() {
         Log4JAccessAppender log4jObj = new Log4JAccessAppender(access);
         log4jObj.close();
-        
+
     }
-    
+
     @Test
     public void testAppend() {
         Log4jAccessAppenderImpl log4jObj = new Log4jAccessAppenderImpl(access);
@@ -71,7 +71,7 @@ public class JU_Log4jAccessAppender {
         event=new LoggingEvent("com.chililog.server.engine",Logger.getLogger(Log4JAccessAppender.class),(new Date()).getTime(),Level.ALL,"test",Thread.currentThread().getName(),null,null,null,null);
         log4jObj.append(event);
     }
-    
+
     @Test
     public void testAppendWARN() {
         Log4jAccessAppenderImpl log4jObj = new Log4jAccessAppenderImpl(access);
@@ -79,7 +79,7 @@ public class JU_Log4jAccessAppender {
         LoggingEvent event=new LoggingEvent("com.chililog.server.engine",Logger.getLogger(Log4JAccessAppender.class),(new Date()).getTime(),Level.WARN,"test",Thread.currentThread().getName(),null,null,null,null);
         log4jObj.append(event);
     }
-    
+
     @Test
     public void testAppendINFO() {
         Log4jAccessAppenderImpl log4jObj = new Log4jAccessAppenderImpl(access);
@@ -87,7 +87,7 @@ public class JU_Log4jAccessAppender {
         LoggingEvent event=new LoggingEvent("com.chililog.server.engine",Logger.getLogger(Log4JAccessAppender.class),(new Date()).getTime(),Level.INFO,"test",Thread.currentThread().getName(),null,null,null,null);
         log4jObj.append(event);
     }
-    
+
     @Test
     public void testAppendWTrace() {
         Log4jAccessAppenderImpl log4jObj = new Log4jAccessAppenderImpl(access);
@@ -95,18 +95,18 @@ public class JU_Log4jAccessAppender {
         LoggingEvent event=new LoggingEvent("com.chililog.server.engine",Logger.getLogger(Log4JAccessAppender.class),(new Date()).getTime(),Level.TRACE,"test",Thread.currentThread().getName(),null,null,null,null);
         log4jObj.append(event);
     }
-    
+
     class Log4jAccessAppenderImpl extends Log4JAccessAppender{
 
         public Log4jAccessAppenderImpl(Access access) {
             super(access);
             // TODO Auto-generated constructor stub
         }
-        
+
         @Override
         protected void append(LoggingEvent event) {
             super.append(event);
         }
-        
+
     }
 }
index 3d2153e..8302cad 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -51,9 +51,9 @@ public class JU_Organization {
         gc = new GregorianCalendar(1900, 1, 1);
         trans = mock(AuthzTrans.class);
     }
-    
+
     @Test
-    public void test() throws OrganizationException {        
+    public void test() throws OrganizationException {
         //tests for Org null
         Assert.assertEquals("n/a",Organization.NULL.getName());
         Assert.assertEquals("n/a",Organization.NULL.getDomain());
@@ -74,9 +74,9 @@ public class JU_Organization {
         Assert.assertEquals("Null Organization rejects all Policies",Organization.NULL.validate(trans, Policy.CHANGE_JOB, null, null));
         Assert.assertFalse(Organization.NULL.isTestEnv());
         Organization.NULL.setTestMode(true);
-        
+
         //tests for org emailWarnings
-        Assert.assertTrue(Organization.NULL.emailWarningPolicy() instanceof EmailWarnings);    
+        Assert.assertTrue(Organization.NULL.emailWarningPolicy() instanceof EmailWarnings);
         Assert.assertEquals(604800000L, Organization.NULL.emailWarningPolicy().credEmailInterval());
         Assert.assertEquals(604800000L, Organization.NULL.emailWarningPolicy().roleEmailInterval());
         Assert.assertEquals(259200000L, Organization.NULL.emailWarningPolicy().apprEmailInterval());
index 87a86d7..ad11ae6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public class CredCompare extends RosettaCompare<CredRequest>  {
     public CredCompare() {
         super(CredRequest.class);
     }
-    
+
     public static CredRequest create() {
         CredRequest rr = new CredRequest();
         String in = instance();
@@ -46,7 +46,7 @@ public class CredCompare extends RosettaCompare<CredRequest>  {
         rr.setEnd(Chrono.timeStamp(gc));
         return rr;
     }
-    
+
     @Override
     public void compare(CredRequest t1, CredRequest t2) {
         assertEquals(t1.getId(),t2.getId());
index 832f518..02263a9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,7 +26,7 @@ import org.onap.aaf.misc.env.APIException;
 import org.onap.aaf.misc.rosetta.env.RosettaEnv;
 
 public class JU_RequestCheck {
-    
+
     @Test
     public void testNSRequest() throws APIException {
         RosettaEnv env = new RosettaEnv();
index 024a523..803fff4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public class MultiCompare extends RosettaCompare<MultiRequest>  {
     public MultiCompare() {
         super(MultiRequest.class);
     }
-    
+
     @Override
     public MultiRequest newOne() {
         MultiRequest multi = new MultiRequest();
@@ -50,19 +50,19 @@ public class MultiCompare extends RosettaCompare<MultiRequest>  {
         multi.getUserRoleRequest().add(UserRoleCompare.create());
         multi.getRolePermRequest().add(RolePermCompare.create());
         multi.getRolePermRequest().add(RolePermCompare.create());
-        
-        
+
+
         GregorianCalendar gc = new GregorianCalendar();
         multi.setStart(Chrono.timeStamp(gc));
         gc.add(GregorianCalendar.MONTH, 1);
         multi.setEnd(Chrono.timeStamp(gc));
         return multi;
     }
-    
+
     public void compare(MultiRequest t1, MultiRequest t2) {
         new NSCompare().compare(t1.getNsRequest(), t2.getNsRequest());
         // Will have to find by key for others.
-        
+
         assertEquals(t1.getStart(),t2.getStart());
         assertEquals(t1.getEnd(),t2.getEnd());
     }
index 0786c13..7f7b09c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,11 +35,11 @@ public class NSAttribCompare extends RosettaCompare<NsAttribRequest>  {
     public NSAttribCompare() {
         super(NsAttribRequest.class);
     }
-    
+
     public static NsAttribRequest create() {
         NsAttribRequest nar = new NsAttribRequest();
         String in = instance();
-        
+
         nar.setNs("org.osaaf.ns"+in);
         Attrib attrib = new Attrib();
         attrib.setKey("swm");
@@ -55,7 +55,7 @@ public class NSAttribCompare extends RosettaCompare<NsAttribRequest>  {
         nar.setEnd(Chrono.timeStamp(gc));
         return nar;
     }
-    
+
     @Override
     public void compare(NsAttribRequest t1, NsAttribRequest t2) {
         assertEquals(t1.getNs(),t2.getNs());
index c350421..a6a3e42 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,7 +34,7 @@ public class NSCompare extends RosettaCompare<NsRequest>  {
     public NSCompare() {
         super(NsRequest.class);
     }
-    
+
     public static NsRequest create() {
         NsRequest nsr = new NsRequest();
         String in = instance();
@@ -51,7 +51,7 @@ public class NSCompare extends RosettaCompare<NsRequest>  {
         nsr.setEnd(Chrono.timeStamp(gc));
         return nsr;
     }
-    
+
     @Override
     public void compare(NsRequest t1, NsRequest t2) {
         assertEquals(t1.getName(),t2.getName());
index 92e0765..f10c901 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public class PermCompare extends RosettaCompare<PermRequest>  {
     public PermCompare() {
         super(PermRequest.class);
     }
-    
+
     public static PermRequest create() {
         PermRequest pr = new PermRequest();
         String in = instance();
@@ -47,7 +47,7 @@ public class PermCompare extends RosettaCompare<PermRequest>  {
         pr.setEnd(Chrono.timeStamp(gc));
         return pr;
     }
-    
+
     @Override
     public void compare(PermRequest t1, PermRequest t2) {
         assertEquals(t1.getType(),t2.getType());
index 0a3a164..b0c30e1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public class RoleCompare extends RosettaCompare<RoleRequest>  {
     public RoleCompare() {
         super(RoleRequest.class);
     }
-    
+
     public static RoleRequest create() {
         RoleRequest rr = new RoleRequest();
         String in = instance();
@@ -45,7 +45,7 @@ public class RoleCompare extends RosettaCompare<RoleRequest>  {
         rr.setEnd(Chrono.timeStamp(gc));
         return rr;
     }
-    
+
     @Override
     public void compare(RoleRequest t1, RoleRequest t2) {
         assertEquals(t1.getName(),t2.getName());
index 24a84b5..73348d1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,7 +34,7 @@ public class RolePermCompare extends RosettaCompare<RolePermRequest>  {
     public RolePermCompare() {
         super(RolePermRequest.class);
     }
-    
+
     public static RolePermRequest create() {
         RolePermRequest urr = new RolePermRequest();
         String in = instance();
@@ -50,7 +50,7 @@ public class RolePermCompare extends RosettaCompare<RolePermRequest>  {
         urr.setEnd(Chrono.timeStamp(gc));
         return urr;
     }
-    
+
     @Override
     public void compare(RolePermRequest t1, RolePermRequest t2) {
         assertEquals(t1.getRole(),t2.getRole());
index 43703d2..c09ded2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,36 +31,36 @@ import org.onap.aaf.misc.rosetta.env.RosettaEnv;
 public abstract class RosettaCompare<T> {
     protected Class<T> cls;
     private static int count = 0;
-    
+
     public RosettaCompare(Class<T> cls) {
         this.cls = cls;
     }
-    
+
     public void run(RosettaEnv env) throws APIException {
         RosettaDF<T> nsrDF = env.newDataFactory(cls);
         compare(nsrDF.newData().option(Data.PRETTY),newOne(),this);
     }
-    
+
     private void compare(RosettaData<T> rdt, T t, RosettaCompare<T> comp) throws APIException {
         //System.out.println("########### Testing " + cls.getName() + " ##############");
         String s = rdt.load(t).out(TYPE.JSON).asString();
         //System.out.println(s);
         T t2 = rdt.in(TYPE.JSON).load(s).asObject();
         comp.compare(t, t2);
-        
+
         //System.out.println();
-        
+
         s = rdt.load(t).out(TYPE.XML).asString();
         //System.out.println(s);
         t2 = rdt.in(TYPE.XML).load(s).asObject();
         comp.compare(t, t2);
     }
-    
+
     public synchronized static String instance() {
         return "_"+ ++count;
     }
-    
+
     public abstract void compare(T t1, T t2);
     public abstract T newOne();
-    
+
 }
\ No newline at end of file
index af61e63..258c656 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public class UserRoleCompare extends RosettaCompare<UserRoleRequest>  {
     public UserRoleCompare() {
         super(UserRoleRequest.class);
     }
-    
+
     public static UserRoleRequest create() {
         UserRoleRequest urr = new UserRoleRequest();
         String in = instance();
@@ -45,7 +45,7 @@ public class UserRoleCompare extends RosettaCompare<UserRoleRequest>  {
         urr.setEnd(Chrono.timeStamp(gc));
         return urr;
     }
-    
+
     @Override
     public void compare(UserRoleRequest t1, UserRoleRequest t2) {
         assertEquals(t1.getUser(),t2.getUser());
index 031da2f..98a213d 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -51,7 +51,7 @@ public class JU_BetterMatch {
         assertFalse(bm.match("/req/1.0.0/wilma/bambam"));
         assertFalse(bm.match("/not/valid/234"));
         assertFalse(bm.match(""));
-        
+
         TimeTaken tt = trans.start("A", Env.SUB);
         TimeTaken tt2;
         int i = 0;
@@ -66,8 +66,8 @@ public class JU_BetterMatch {
         } finally {
             tt.done();
         }
-        
-    
+
+
         tt = trans.start("B", Env.SUB);
         i = 0;
         try {
@@ -88,9 +88,9 @@ public class JU_BetterMatch {
             assertFalse(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/0x12345/xyx"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
-        
+
         tt = trans.start("C", Env.SUB);
         i = 0;
         try {
@@ -98,12 +98,12 @@ public class JU_BetterMatch {
             bm = new Match(url+":urn*");
             tt2 = trans.start(Integer.toString(++i), Env.SUB);
             String value = "urn:fsdb,1.0,req,newreq/0x12345";
-            
+
             assertTrue(bm.match(url+value));
             assertEquals("urn:fsdb,1.0,req,newreq/0x12345",bm.param(url+value, ":urn"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
 
         tt = trans.start("D", Env.SUB);
@@ -117,7 +117,7 @@ public class JU_BetterMatch {
             assertFalse(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
 
         tt = trans.start("E", Env.SUB);
@@ -134,7 +134,7 @@ public class JU_BetterMatch {
             assertTrue(bm.match("this/1.0.0/urn:fsdb,1.0,req,newreq/0x12345/"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
 
         tt = trans.start("F", Env.SUB);
@@ -145,20 +145,20 @@ public class JU_BetterMatch {
             assertTrue(bm.match("<pass>/this"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
-        
+
         StringBuilder sb = new StringBuilder();
         trans.auditTrail(0, sb);
         //System.out.println(sb);
-        
+
     }
-    
+
     @Test
     public void specialTest() {
         Match match = new Match("/sample");
         assertTrue(match.match("/sample"));
-        
+
         match = new Match("/lpeer//lpeer/:key/:item*");
         assertTrue(match.match("/lpeer//lpeer/x/y"));
         assertFalse(match.match("/lpeer/x/lpeer/x/y"));
index 2287889..e95d626 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,7 +47,7 @@ public class JU_BetterMatch1 {
         assertFalse(bm.match("/req/1.0.0/wilma/bambam"));
         assertFalse(bm.match("/not/valid/234"));
         assertFalse(bm.match(""));
-        
+
         TimeTaken tt = trans.start("A", Env.SUB);
         TimeTaken tt2;
         int i = 0;
@@ -62,8 +62,8 @@ public class JU_BetterMatch1 {
         } finally {
             tt.done();
         }
-        
-    
+
+
         tt = trans.start("B", Env.SUB);
         i = 0;
         try {
@@ -84,9 +84,9 @@ public class JU_BetterMatch1 {
             assertFalse(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/0x12345/xyx"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
-        
+
         tt = trans.start("C", Env.SUB);
         i = 0;
         try {
@@ -94,12 +94,12 @@ public class JU_BetterMatch1 {
             bm = new Match(url+":urn*");
             tt2 = trans.start(Integer.toString(++i), Env.SUB);
             String value = "urn:fsdb,1.0,req,newreq/0x12345";
-            
+
             assertTrue(bm.match(url+value));
             assertEquals("urn:fsdb,1.0,req,newreq/0x12345",bm.param(url+value, ":urn"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
 
         tt = trans.start("D", Env.SUB);
@@ -113,7 +113,7 @@ public class JU_BetterMatch1 {
             assertFalse(bm.match("/req/1.0.0/urn:fsdb,1.0,req,newreq/"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
 
         tt = trans.start("E", Env.SUB);
@@ -130,7 +130,7 @@ public class JU_BetterMatch1 {
             assertTrue(bm.match("this/1.0.0/urn:fsdb,1.0,req,newreq/0x12345/"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
 
         tt = trans.start("F", Env.SUB);
@@ -141,20 +141,20 @@ public class JU_BetterMatch1 {
             assertTrue(bm.match("whatever/this"));
         } finally {
             tt2.done();
-            tt.done();    
+            tt.done();
         }
-        
+
         StringBuilder sb = new StringBuilder();
         trans.auditTrail(0, sb);
         //System.out.println(sb);
-        
+
     }
-    
+
     @Test
     public void specialTest() {
         Match match = new Match("/sample");
         assertTrue(match.match("/sample"));
-        
+
         match = new Match("/lpeer//lpeer/:key/:item*");
         assertTrue(match.match("/lpeer//lpeer/x/y"));
         assertFalse(match.match("/lpeer/x/lpeer/x/y"));
index 2fa6b5f..04ddca2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -27,7 +27,7 @@ public class JU_BetterRoute {
 
     @Test
     public void test() {
-        
+
     }
 
 }
index 65cf9bc..23c0ae8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,7 +41,7 @@ import org.onap.aaf.misc.env.impl.EnvFactory;
  * Test the functioning of the "Content" class, which holds, and routes to the right code based on Accept values
  */
 public class JU_Content {
-    
+
 
     @Test
     public void test() throws Exception {
@@ -78,7 +78,7 @@ public class JU_Content {
         //BogusReq req = new BogusReq();
         //expected = (expected);
         //HttpServletResponse resp = new BogusResp();
-        
+
         assertNotNull("Same Content String and Accept String",ct.prep(trans,expected));
 
         //expects Null (not run)
@@ -103,35 +103,35 @@ public class JU_Content {
         expected = "application/java.lang.Boolean+xml;charset=UTF8;version=1.0";
         assertNotNull("Minor Charset in Caps acceptable",ct.prep(trans,expected));
 
-        // expects no run 
+        // expects no run
         expected="application/java.lang.Boolean+xml;charset=MyType;version=1.0";
         assertNull("Unknown Minor Charset",ct.prep(trans,expected));
 
         expected="";
         assertNotNull("Blank Acceptance",ct.prep(trans,expected));
-        
+
         expected=null;
-        assertNotNull("Null Acceptance",ct.prep(trans,expected));    
+        assertNotNull("Null Acceptance",ct.prep(trans,expected));
 
         expected = ("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
         assertNotNull("Matches application/xml, and other content not known",ct.prep(trans,expected));
-        
+
         // No SemiColon
         expected = ("i/am/bogus,application/xml");
         assertNotNull("Match second entry, with no Semis",ct.prep(trans,expected));
 
-         } finally {    
+         } finally {
             StringBuilder sb = new StringBuilder();
             trans.auditTrail(0, sb);
             //System.out.println(sb);
         }
     }
-//    
+//
 //    Original API used HTTPServletRequest and HTTPServletResponse.  Due to the fact that sometimes we use Accept, and others Content-TYpe
 //    I changed it to simply accept a string
-//    
+//
 //    Jonathan 3/8/2013
-//    
+//
 //    @SuppressWarnings("rawtypes")
 //    class BogusReq implements HttpServletRequest {
 //        private String accept;
@@ -159,175 +159,175 @@ public class JU_Content {
 //        @Override
 //        public void setCharacterEncoding(String env)
 //                throws UnsupportedEncodingException {
-//            
+//
 //
 //        }
 //
 //        @Override
 //        public int getContentLength() {
-//            
+//
 //            return 0;
 //        }
 //
 //        @Override
 //        public String getContentType() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public ServletInputStream getInputStream() throws IOException {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getParameter(String name) {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public Enumeration getParameterNames() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String[] getParameterValues(String name) {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public Map getParameterMap() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getProtocol() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getScheme() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getServerName() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public int getServerPort() {
-//            
+//
 //            return 0;
 //        }
 //
 //        @Override
 //        public BufferedReader getReader() throws IOException {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getRemoteAddr() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getRemoteHost() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public void setAttribute(String name, Object o) {
-//            
+//
 //
 //        }
 //
 //        @Override
 //        public void removeAttribute(String name) {
-//            
+//
 //
 //        }
 //
 //        @Override
 //        public Locale getLocale() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public Enumeration getLocales() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public boolean isSecure() {
-//            
+//
 //            return false;
 //        }
 //
 //        @Override
 //        public RequestDispatcher getRequestDispatcher(String path) {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getRealPath(String path) {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public int getRemotePort() {
-//            
+//
 //            return 0;
 //        }
 //
 //        @Override
 //        public String getLocalName() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getLocalAddr() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public int getLocalPort() {
-//            
+//
 //            return 0;
 //        }
 //
 //        @Override
 //        public String getAuthType() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public Cookie[] getCookies() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public long getDateHeader(String name) {
-//            
+//
 //            return 0;
 //        }
 //
@@ -338,137 +338,137 @@ public class JU_Content {
 //
 //        @Override
 //        public Enumeration getHeaders(String name) {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public Enumeration getHeaderNames() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public int getIntHeader(String name) {
-//            
+//
 //            return 0;
 //        }
 //
 //        @Override
 //        public String getMethod() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getPathInfo() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getPathTranslated() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getContextPath() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getQueryString() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getRemoteUser() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public boolean isUserInRole(String role) {
-//            
+//
 //            return false;
 //        }
 //
 //        @Override
 //        public Principal getUserPrincipal() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getRequestedSessionId() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getRequestURI() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public StringBuffer getRequestURL() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String getServletPath() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public HttpSession getSession(boolean create) {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public HttpSession getSession() {
-//            
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public boolean isRequestedSessionIdValid() {
-//            
+//
 //            return false;
 //        }
 //
 //        @Override
 //        public boolean isRequestedSessionIdFromCookie() {
-//            
+//
 //            return false;
 //        }
 //
 //        @Override
 //        public boolean isRequestedSessionIdFromURL() {
-//            
+//
 //            return false;
 //        }
 //
 //        @Override
 //        public boolean isRequestedSessionIdFromUrl() {
-//            
+//
 //            return false;
 //        }
 //    }
-//    
+//
 //    public class BogusResp implements HttpServletResponse {
 //        public String contentType;
 //
 //        @Override
 //        public String getCharacterEncoding() {
-//        
+//
 //            return null;
 //        }
 //
@@ -479,26 +479,26 @@ public class JU_Content {
 //
 //        @Override
 //        public ServletOutputStream getOutputStream() throws IOException {
-//        
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public PrintWriter getWriter() throws IOException {
-//        
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public void setCharacterEncoding(String charset) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void setContentLength(int len) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
@@ -508,154 +508,154 @@ public class JU_Content {
 //
 //        @Override
 //        public void setBufferSize(int size) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public int getBufferSize() {
-//        
+//
 //            return 0;
 //        }
 //
 //        @Override
 //        public void flushBuffer() throws IOException {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void resetBuffer() {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public boolean isCommitted() {
-//        
+//
 //            return false;
 //        }
 //
 //        @Override
 //        public void reset() {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void setLocale(Locale loc) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public Locale getLocale() {
-//        
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public void addCookie(Cookie cookie) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public boolean containsHeader(String name) {
-//        
+//
 //            return false;
 //        }
 //
 //        @Override
 //        public String encodeURL(String url) {
-//        
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String encodeRedirectURL(String url) {
-//        
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String encodeUrl(String url) {
-//        
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public String encodeRedirectUrl(String url) {
-//        
+//
 //            return null;
 //        }
 //
 //        @Override
 //        public void sendError(int sc, String msg) throws IOException {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void sendError(int sc) throws IOException {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void sendRedirect(String location) throws IOException {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void setDateHeader(String name, long date) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void addDateHeader(String name, long date) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void setHeader(String name, String value) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void addHeader(String name, String value) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void setIntHeader(String name, int value) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void addIntHeader(String name, int value) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void setStatus(int sc) {
-//        
-//            
+//
+//
 //        }
 //
 //        @Override
 //        public void setStatus(int sc, String sm) {
-//        
-//            
+//
+//
 //        }
-//        
+//
 //    }
 //
 }
index eb2fe35..b6f220c 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -42,7 +42,7 @@ import org.onap.aaf.misc.env.impl.EnvFactory;
  * Test the functioning of the "Content" class, which holds, and routes to the right code based on Accept values
  */
 public class JU_Content1 {
-    
+
 
     @Test
     public void test() throws Exception {
@@ -79,7 +79,7 @@ public class JU_Content1 {
         //BogusReq req = new BogusReq();
         //expected = (expected);
         //HttpServletResponse resp = new BogusResp();
-        
+
         assertNotNull("Same Content String and Accept String",ct.prep(trans,expected));
 
         //expects Null (not run)
@@ -104,24 +104,24 @@ public class JU_Content1 {
         expected = "application/java.lang.Boolean+xml;charset=UTF8;version=1.0";
         assertNotNull("Minor Charset in Caps acceptable",ct.prep(trans,expected));
 
-        // expects no run 
+        // expects no run
         expected="application/java.lang.Boolean+xml;charset=MyType;version=1.0";
         assertNull("Unknown Minor Charset",ct.prep(trans,expected));
 
         expected="";
         assertNotNull("Blank Acceptance",ct.prep(trans,expected));
-        
+
         expected=null;
-        assertNotNull("Null Acceptance",ct.prep(trans,expected));    
+        assertNotNull("Null Acceptance",ct.prep(trans,expected));
 
         expected = ("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
         assertNotNull("Matches application/xml, and other content not known",ct.prep(trans,expected));
-        
+
         // No SemiColon
         expected = ("i/am/bogus,application/xml");
         assertNotNull("Match second entry, with no Semis",ct.prep(trans,expected));
 
-         } finally {    
+         } finally {
             StringBuilder sb = new StringBuilder();
             trans.auditTrail(0, sb);
             //System.out.println(sb);
index b81966d..84383ce 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -34,7 +34,7 @@ public class JU_Pair {
     Pair<Integer, Integer> pair;
     Integer x;
     Integer y;
-    
+
     @Before
     public void setUp(){
         pair = new Pair<Integer, Integer>(1, 2);
index 26ec6ab..b8fd01c 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -37,20 +37,20 @@ public class JU_Route {
     HttpCode httpCode;
     HttpMethods httpMethod;
     Trans trans;
-    
+
     @Before
     public void setUp() {        //TODO: AAF-111 complete when actual input is provided
         //httpMethod = Matchers.any(HttpMethods.class);
         //when(httpMethod.name()).thenReturn("test");
     //    route = new Route(null,"path/to/place");
     }
-    
-    
+
+
     @Test
     public void testAdd() {
     //    route.add(httpCode, "path/to/place");
     }
-    
+
     @Test
     public void testStart() {
     //    trans = mock(Trans.class);
index fffd394..12b0085 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 9606d47..b5538b9 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -49,25 +49,25 @@ public class JU_Routes {
     //TODO: Gabe [JUnit] Not visible to junit
     //CodeSetter<Trans> codeSetterMock;
     Route<Trans> routeObj;
-    
+
     @Before
     public void setUp(){
         routes = new Routes();
     }
-    
+
     @Test
     public void testRouteReport(){
-        List listVal = routes.routeReport(); 
+        List listVal = routes.routeReport();
         assertNotNull(listVal);
     }
-    
+
     @Test
     public void testDerive() throws IOException, ServletException{
         routeObj = routes.derive(reqMock, null);
-        
+
     }
-    
-    
-    
+
+
+
 
 }
index 76948ac..60727b6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -50,31 +50,31 @@ public class JU_TypedCode {
     TypedCode typedCode;
     @Mock
     RouteReport routeReportMock;
-    
+
     @Before
     public void setUp(){
         typedCode = new TypedCode();
     }
-    
+
     @Test
     public void testFirst(){
         String returnVal = typedCode.first();
         assertNull(returnVal);
     }
-    
+
     @Test
     public void testAdd() {
         HttpCode<?, ?> code = mock(HttpCode.class);
         typedCode.add(code , "test", "test1", "test2");
     }
-    
+
     @Test
     public void testPrep() throws IOException, ServletException, ClassNotFoundException {
         Trans trans = mock(Trans.class);
         TimeTaken time = new TimeTaken("yell", 2) {
             @Override
             public void output(StringBuilder sb) {
-                // TODO Auto-generated method stub    
+                // TODO Auto-generated method stub
             }
         };
         when(trans.start(";na=me;,prop", 8)).thenReturn(time);
@@ -83,20 +83,20 @@ public class JU_TypedCode {
         code.isAuthorized(null); //Testing httpcode, currently not working
         code.no_cache();
         code.toString();
-        
+
         typedCode.add(code , "");
         typedCode.prep(null , "q");
-        
+
         typedCode.add(code , "t");
         typedCode.prep(trans , null);
-        
+
         typedCode.add(code , "t");
         typedCode.prep(trans , "");
-        
+
         typedCode.add(code, "POST /authn/validate application/CredRequest+json;charset=utf-8;version=2.0,application/json;version=2.0,*/*");
-        //typedCode.prep(trans , "POST /authn/validate application/CredRequest+json;charset=utf-8;version=2.0,application/json;version=2.0,*/*");        
+        //typedCode.prep(trans , "POST /authn/validate application/CredRequest+json;charset=utf-8;version=2.0,application/json;version=2.0,*/*");
     }
-    
+
     @Test
     public void testRelatedTo() {
         HttpCode<?, ?> code = mock(HttpCode.class);
index 47be1ac..a1bbef5 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -38,7 +38,7 @@ public class JU_Version {
     Version version;
     Version versionTest;
 
-    
+
     @Before
     public void setUp(){
         version = new Version("first\\.123");
@@ -46,7 +46,7 @@ public class JU_Version {
     }
 
     @Test
-    public void testEquals(){        
+    public void testEquals(){
         version.equals(versionTest);
         versionTest.equals(version);
         versionTest = new Version("fail\\.124");
@@ -54,16 +54,16 @@ public class JU_Version {
         version.equals("This is not an object of version");
         versionTest = new Version("NoVersion\\.number");
         version.equals(versionTest);
-        
-        
+
+
     }
-    
+
     @Test
     public void testToString(){
         String strVal = version.toString();
         assertNotNull(strVal);
     }
-    
+
     @Test
     public void testHashCode() {
         Assert.assertNotNull(version.hashCode());
index b89e2e5..c80c818 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -63,9 +63,9 @@ import java.security.Principal;
 import javax.servlet.Filter;
 
 public class JU_AbsService {
-    
+
     ByteArrayOutputStream outStream;
-    
+
     private class AbsServiceStub extends AbsService {
 
         public AbsServiceStub(Access access, BasicEnv env) throws CadiException {
@@ -84,31 +84,31 @@ public class JU_AbsService {
             // TODO Auto-generated method stub
             return null;
         }
-    
+
     }
-    
+
     @Before
     public void setUp() {
         outStream = new ByteArrayOutputStream();
         System.setOut(new PrintStream(outStream));
     }
-    
+
     @After
     public void tearDown() {
         System.setOut(System.out);
     }
-    
+
     @Test
     public void testStub() throws CadiException {
         BasicEnv bEnv = new BasicEnv();
         PropAccess prop = new PropAccess();
-        
+
         prop.setProperty(Config.AAF_LOCATOR_ENTRIES, "te.st");
         prop.setProperty(Config.AAF_LOCATOR_VERSION, "te.st");
         prop.setLogLevel(Level.DEBUG);
         AbsServiceStub absServiceStub = new AbsServiceStub(prop, bEnv);    //Testing other branches requires "fails" due to exception handling, will leave that off for now.
     }
-    
+
 }
 
 
index 4972b57..9e0cd9a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,11 +42,11 @@ import org.onap.aaf.cadi.register.Registrant;
 import org.onap.aaf.misc.env.impl.BasicEnv;
 
 public class JU_AbsServiceStarter {
-    
+
     ByteArrayOutputStream outStream;
     AbsServiceStub absServiceStub;
     AbsServiceStarterStub absServiceStarterStub;
-    
+
     private class AbsServiceStarterStub extends AbsServiceStarter {
 
         public AbsServiceStarterStub(AbsService service, boolean secure) {
@@ -57,16 +57,16 @@ public class JU_AbsServiceStarter {
         @Override
         public void _start(RServlet rserv) throws Exception {
             // TODO Auto-generated method stub
-            
+
         }
 
         @Override
         public void _propertyAdjustment() {
             // TODO Auto-generated method stub
-            
+
         }
     }
-    
+
     private class AbsServiceStub extends AbsService {
 
         public AbsServiceStub(Access access, BasicEnv env) throws CadiException {
@@ -85,40 +85,40 @@ public class JU_AbsServiceStarter {
             // TODO Auto-generated method stub
             return null;
         }
-    
+
     }
-    
+
     @Before
     public void setUp() {
         outStream = new ByteArrayOutputStream();
         System.setOut(new PrintStream(outStream));
     }
-    
+
     @After
     public void tearDown() {
         System.setOut(System.out);
     }
-    
-    
+
+
     @Test
     public void testStub() throws CadiException {
         BasicEnv bEnv = new BasicEnv();
         PropAccess prop = new PropAccess();
-        
+
         prop.setProperty(Config.AAF_LOCATOR_ENTRIES, "te.st");
         prop.setProperty(Config.AAF_LOCATOR_VERSION, "te.st");
         prop.setLogLevel(Level.DEBUG);
         absServiceStub = new AbsServiceStub(prop, bEnv);
-        
+
         absServiceStarterStub = new AbsServiceStarterStub(absServiceStub,true);
     }
-    
+
 //    @Test
 //    public void testStart() throws Exception {
 //        absServiceStarterStub.env();
 //        absServiceStarterStub.start();
 //    }
-    
+
 }
 
 
index ae76de0..68077c7 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -76,18 +76,18 @@ public class JU_JettyServiceStarter {
     @Before
     public void setUp() throws OrganizationException, CadiException {
         Access access = mock(Access.class);
-        
+
         BasicEnv bEnv = mock(BasicEnv.class);
         Trans trans = mock(Trans.class);  //TODO: Fix this once Gabe has services running to see correct output without mock
         //TestService testService = new TestService(access, bEnv);
         //jss = new JettyServiceStarter<AuthzEnv,AuthzTrans>(testService);
     }
-    
+
 //    @Test
 //    public void netYetTested() {
 //        fail("Tests not yet implemented");
 //    }
-    
+
     @Test
     public void testPropertyAdjustment() {
         //jss._propertyAdjustment();
index 5bc1b68..f887ca4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,12 +40,12 @@ public class JU_Mask {
         InetAddress ia = InetAddress.getByName("192.168.0.0");
         NetMask mask = new NetMask(ia.getAddress());
         assertTrue(mask.isInNet(ia.getAddress()));
-        
+
         mask = new NetMask("192.168.1/24");
         assertTrue(mask.isInNet("192.168.1.20"));
         assertTrue(mask.isInNet("192.168.1.255"));
         assertFalse(mask.isInNet("192.168.2.20"));
-        
+
         mask = new NetMask("192.168.1/31");
         assertFalse(mask.isInNet("192.168.2.20"));
         assertFalse(mask.isInNet("192.168.1.20"));
@@ -56,10 +56,10 @@ public class JU_Mask {
         assertTrue(mask.isInNet("192.168.1.1"));
         assertTrue(mask.isInNet("192.1.1.1"));
         assertFalse(mask.isInNet("193.168.1.1"));
-        
+
         mask = new NetMask("/0");
         assertTrue(mask.isInNet("193.168.1.1"));
-        
+
         String msg = "Should throw " + MaskFormatException.class.getSimpleName();
         try {
             mask = new NetMask("256.256.256.256");
index 40e1886..754d476 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,7 +52,7 @@ public class TestKill implements Runnable {
     @Override
     public void run() {
     }
-    
+
     private void longProcess() {
         System.out.println("Starting long cleanup process");
         try {
index fa9b521..46d3db9 100644 (file)
@@ -48,7 +48,7 @@ public class DefaultOrg implements Organization {
     final String domain;
     final String atDomain;
     final String realm;
-    
+
     private final String root_ns;
 
     private final String NAME;
@@ -65,7 +65,7 @@ public class DefaultOrg implements Organization {
         atDomain = '@'+domain;
         NAME=env.getProperty(realm + ".name","Default Organization");
         root_ns = env.getProperty(Config.AAF_ROOT_NS,Config.AAF_ROOT_NS_DEF);
-        
+
         try {
             String defFile;
             String temp=env.getProperty(defFile = (getClass().getName()+".file"));
@@ -84,7 +84,7 @@ public class DefaultOrg implements Organization {
                         }
                         fIdentities.createNewFile();
                     }
-                    
+
                 }
             } else {
                 fIdentities = new File(temp);
@@ -122,7 +122,7 @@ public class DefaultOrg implements Organization {
             } else {
                 revoked = null;
             }
-            
+
         } catch (IOException e) {
             throw new OrganizationException(e);
         }
@@ -262,11 +262,11 @@ public class DefaultOrg implements Organization {
     /**
      *  (                # Start of group
      *  (?=.*[a-z,A-Z])    #   must contain one character
-     *  
-     *  (?=.*\d)        #   must contain one digit from 0-9 
+     *
+     *  (?=.*\d)        #   must contain one digit from 0-9
      *        OR
      *  (?=.*[@#$%])    #   must contain one special symbols in the list SPEC_CHARS
-     *  
+     *
      *            .        #     match anything with previous condition checking
      *          {6,20}    #        length at least 6 characters and maximum of 20
      *  )                # End of group
index f2b9d8c..f1576c4 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -33,10 +33,10 @@ import org.onap.aaf.cadi.config.Config;
 import org.onap.aaf.org.Identities.Data;
 
 /**
- * Org Users are essential representations of Identities within the Org.  Since this is a highly individual 
+ * Org Users are essential representations of Identities within the Org.  Since this is a highly individual
  * thing for most Orgs, i.e. some use LDAP, some need feed, some use something else, this object will allow
  * the Organization to connect to their own Identity systems...
- * 
+ *
  *
  */
 public class DefaultOrgIdentity implements Identity {
index d544b70..a0b408a 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 9f65b41..f5a1149 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -29,29 +29,29 @@ import org.onap.aaf.auth.local.DataFile.Token.Field;
 
 /*
  * Example User Data file, which can be modified for many different kinds of Data Feeds.
- * 
- * Note: This has shown to be extremely effective in AT&T, an acknowledged very large organizations, 
+ *
+ * Note: This has shown to be extremely effective in AT&T, an acknowledged very large organizations,
  *          because there is no need to synchronize records.  AAF simply receives a Data Feed in Organization
  *          defined intervals.  (You might want to check for validity, such as size, etc), then is copied into
  *          Data Directory.  You will want to do so first creating a "lock" file.  Assuming the File name is "users.dat",
- *          the Lock File is "users.lock".  
- * 
+ *          the Lock File is "users.lock".
+ *
  *          After the movement of the Datafile into place, it is best to remove the Index File, then remove the lock file.
- * 
+ *
  *          Note, Any AAF Programs needing this data WILL wait on the Lock file, so you should get fresh Data files
  *       in a "stage" directory, from WEB, or wherever, and then, after it is correct, do the following as fast as feasible.
- *       
+ *
  *           a) lock
  *          b) copy from stage
  *          c) remove idx
  *          d) unlock
- * 
+ *
  *          If the Index File is either non-existent or out of date from the Data File, it will be reindexed, which
  *          has proven to be a very quick function, even with large numbers of entries.
- * 
+ *
  * This Sample Feed is set for a file with delimiter of "|".  512 is maximum expected line length. The "0" is the
  *       field offset for the "key" to the record,  which, for user, should be the unique Organization Identity.
- *       
+ *
  */
 public class Identities extends AbsData {
     public final static Data NO_DATA = new Data();
index f2d2927..9ab83be 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -150,7 +150,7 @@ public class JU_DefaultOrg {
         assertEquals(response.name(), "OK");
 
     }
-    
+
     @Test
     public void testDefOrgPasswords() {
         assertEquals(defaultOrg.isValidPassword(authzTransMock, null, "new2You!", "Pilgrim"),"");
@@ -255,15 +255,15 @@ public class JU_DefaultOrg {
     //     System.out.println("value of res " +Result);
     //     assertNotNull(Result);
     // }
-    
+
     @Test
     public void testResponsible() throws OrganizationException {
         Identity id = defaultOrg.getIdentity(authzTransMock, "osaaf");
         Identity rt = id.responsibleTo();
         assertTrue(rt.id().equals("bdevl"));
-        
+
     }
-    
+
     //@Test
     public void notYetImplemented() {
         fail("Tests in this file should not be trusted");
index 32b3291..5281aa3 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 375cdfb..712d47a 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index ce34e2a..fc9e424 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -60,8 +60,8 @@ public class JU_Identities {
 //            ids = new Identities(fids);
 //            ids.open(trans, 5000);
 //        } else {
-//            
-//            throw new Exception("Data File for Tests, \"" + DATA_IDENTITIES 
+//
+//            throw new Exception("Data File for Tests, \"" + DATA_IDENTITIES
 //                    + "\" must exist before test can run. (Current dir is " + System.getProperty("user.dir") + ")");
 //        }
 //    }
@@ -90,7 +90,7 @@ public class JU_Identities {
 //    @After
 //    public void tearDown() throws Exception {
 //    }
-// 
+//
 //    @Test
 //    public void test() throws IOException {
 //        Reuse reuse = ids.reuse(); // this object can be reused within the same thread.
index 7b0130b..d627081 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -97,7 +97,7 @@ public class JU_Passwords {
         assertEquals(defaultOrg.isValidPassword(authzTransMock, null, "newyou2", "Pilgrim"),"");
         assertEquals(defaultOrg.isValidPassword(authzTransMock, null, "newyou!", "Pilgrim"),"");
         assertEquals(defaultOrg.isValidPassword(authzTransMock, null, "newyou!", "Pilgrim"),"");
-        
+
         // Don't accept just letters, Numbers or Special Chars, or without ANY letters
         assertNotSame(defaultOrg.isValidPassword(authzTransMock, null, "newyouA", "Pilgrim"),"");
         assertNotSame(defaultOrg.isValidPassword(authzTransMock, null, "NEWYOU", "Pilgrim"),"");
@@ -120,7 +120,7 @@ public class JU_Passwords {
         // Solid
         assertEquals(defaultOrg.isValidPassword(authzTransMock, null, "new2You!", "Pilgrim"),"");
 
-        
+
     }
 
 }
index df05da9..19a150d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,11 +49,11 @@ import org.onap.aaf.misc.env.APIException;
 
 public class AAF_FS extends AbsService<AuthzEnv, AuthzTrans>  {
 
-    public AAF_FS(final AuthzEnv env) throws APIException, IOException, CadiException {
+    public AAF_FS(final AuthzEnv env) throws IOException, CadiException {
         super(env.access(),env);
         try {
-            ///////////////////////  
-            // File Server 
+            ///////////////////////
+            // File Server
             ///////////////////////
             // creates StaticSlot, needed for CachingFileAccess, and sets to public Dir
             env.staticSlot(CachingFileAccess.CFA_WEB_PATH,"aaf_public_dir");
@@ -70,7 +70,7 @@ public class AAF_FS extends AbsService<AuthzEnv, AuthzTrans>  {
             e.printStackTrace();
         }
     }
-    
+
     private static class Redirect extends HttpCode<AuthzTrans, AAF_FS> {
         private final String url;
 
@@ -85,7 +85,7 @@ public class AAF_FS extends AbsService<AuthzEnv, AuthzTrans>  {
             resp.sendRedirect(url);
         }
     };
-    
+
     @Override
     public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException {
         // Note: No TAFs and Lurs on FileServer
@@ -101,7 +101,7 @@ public class AAF_FS extends AbsService<AuthzEnv, AuthzTrans>  {
             new RemoteRegistrant<AuthzEnv>(aafCon(),port)
         };
     }
-    
+
     public static void main(final String[] args) {
         try {
             Log4JLogIt logIt = new Log4JLogIt(args, "fs");
index 9de694b..f41f6ca 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index e1870e9..5d243e9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -104,9 +104,9 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
     public static final String HTTP_SERVLET_REQUEST = "HTTP_SERVLET_REQUEST";
     public static final int TIMEOUT = 60000;
     public static final String app = "AAF GUI";
-    
+
     // AAF API
-    
+
     // Certificate manager API
     public RosettaDF<Artifacts> artifactsDF;
     public RosettaDF<CertInfo>  certInfoDF;
@@ -114,7 +114,7 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
     private final AAFConHttp cmCon;
     public final AAFConHttp aafCon;
     public final AAFLurPerm lur;
-    
+
     public final Slot slot_httpServletRequest;
     protected final String deployedVersion;
     private StaticSlot sThemeWebPath;
@@ -126,12 +126,12 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
         sDefaultTheme = env.staticSlot(AAF_GUI_THEME);
         String defTheme = env.getProperty(AAF_GUI_THEME,"onap");
         env.put(sDefaultTheme, defTheme);
-        
+
         sThemeWebPath = env.staticSlot(CachingFileAccess.CFA_WEB_PATH);
         if(env.get(sThemeWebPath)==null) {
             env.put(sThemeWebPath,"theme");
         }
-        
+
         slot_httpServletRequest = env.slot(HTTP_SERVLET_REQUEST);
         deployedVersion = app_version;
 
@@ -140,7 +140,7 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
         cmCon =  new AAFConHttp(env.access(),aaf_url_cm);
         artifactsDF = env.newDataFactory(Artifacts.class);
         certInfoDF  = env.newDataFactory(CertInfo.class);
-        
+
 
         /////////////////////////
         // Screens
@@ -158,7 +158,7 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
         Page roleDetail = new Display(this, GET, new RoleDetail(this, start, myRoles)).page();
                           new Display(this, POST, new RoleDetailAction(this,start,myRoles,roleDetail));
                           new Display(this, GET, new RoleHistory(this,start,myRoles,roleDetail));
-                            
+
         // MyNameSpace
         final Page myNamespaces = new Display(this, GET, new NssShow(this, start)).page();
         Page nsDetail  = new Display(this, GET, new NsDetail(this, start, myNamespaces)).page();
@@ -168,48 +168,48 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
         Page artiShow  = new Display(this, GET, new CMArtifactShow(this, start, myNamespaces, nsDetail, crdDetail)).page();
         Page artiCForm = new Display(this, GET, new CMArtiChangeForm(this, start, myNamespaces, nsDetail, crdDetail,artiShow)).page();
                          new Display(this, POST, new CMArtiChangeAction(this, start,artiShow,artiCForm));
-                             
+
         // Password Change Screens
         final Page pwc = new Display(this, GET, new PassChangeForm(this, start,crdDetail)).page();
                          new Display(this, POST, new PassChangeAction(this, start, pwc));
-                         
+
         // Password Delete Screen
                          new Display(this, GET, new PassDeleteAction(this, start,crdDetail));
 
         // Validation Change Screens
         final Page validate = new Display(this, GET, new ApprovalForm(this, start)).page();
                               new Display(this, POST, new ApprovalAction(this, start, validate));
-                            
+
         // Onboard, Detailed Edit Screens
         final Page onb = new Display(this, GET, new NsInfoForm(this, start)).page();
                          new Display(this, POST, new NsInfoAction(this, start, onb));
 
         // Web Command Screens
         /* final Page webCommand =*/ new Display(this, GET, new WebCommand(this, start)).page();
-        
+
         // API Docs
         final Page apidocs = new Display(this, GET, new ApiDocs(this, start)).page();
                              new Display(this, GET, new ApiExample(this,start, apidocs)).page();
-        
+
         // Permission Grant Page
         final Page permGrant =     new Display(this, GET, new PermGrantForm(this, start)).page();
                                  new Display(this, POST, new PermGrantAction(this, start, permGrant)).page();
-                                 
+
         // Login Landing if no credentials detected
         final Page loginLanding = new Display(this, GET, new LoginLanding(this, start)).page();
                                   new Display(this, POST, new LoginLandingAction(this, start, loginLanding));
-                                  
+
         // User Role Request Extend and Remove
         new Display(this, GET, new UserRoleExtend(this, start,myRoles)).page();
         new Display(this, GET, new UserRoleRemove(this, start,myRoles)).page();
-        
+
         // See my Pending Requests
         final Page requestsShow = new Display(this, GET, new PendingRequestsShow(this, start)).page();
                                   new Display(this, GET, new RequestDetail(this, start, requestsShow));
-                                  
+
         // Command line Mechanism
         route(env, PUT, "/gui/cui", new CUI(this),"text/plain;charset=utf-8","*/*");
-        
+
         route(env, GET, "/gui/clear", new HttpCode<AuthzTrans, Void>(null, "Clear"){
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
@@ -226,8 +226,8 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
                 resp.sendRedirect("/gui/home");
             }
         }, "text/plain;charset=utf-8","*/*");
-        
-        ///////////////////////  
+
+        ///////////////////////
         // WebContent Handler
         ///////////////////////
         CachingFileAccess<AuthzTrans> cfa = new CachingFileAccess<AuthzTrans>(env);
@@ -237,11 +237,11 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
         aafCon = aafCon();
         lur = aafCon.newLur();
     }
-    
+
     public<T> RosettaDF<T> getDF(Class<T> cls) throws APIException {
         return Cmd.getDF(env,cls);
     }
-    
+
     public void writeError(AuthzTrans trans, Future<?> fp, HTMLGen hgen, int indent) {
         if (hgen!=null) {
             String msg = aafCon.readableErrMsg(fp);
@@ -256,7 +256,7 @@ public class AAF_GUI extends AbsService<AuthzEnv, AuthzTrans> implements State<E
     public<RET> RET cmClientAsUser(TaggedPrincipal p,Retryable<RET> retryable) throws APIException, LocatorException, CadiException  {
             return cmCon.hman().best(new HTransferSS(p,app, aafCon.securityInfo()), retryable);
     }
-    
+
     @Override
     public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException {
         try {
index 621257b..f056f4a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,7 +43,7 @@ public class BreadCrumbs extends NamedCode {
         super(false,"breadcrumbs");
         breadcrumbs = pages;
     }
-    
+
     @Override
     public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
         // BreadCrumbs
index 175236d..3619e43 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 76cb18a..3bec540 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,7 +31,7 @@ public class Controls extends NamedCode {
     public Controls() {
         super(false,"controls");
     }
-    
+
     @Override
     public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
         hgen.incr("form","method=post")
index 24262e8..74b5acc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,14 +45,14 @@ public class Display {
 
         /*
          * We handle all the "Form POST" calls here with a naming convention that allows us to create arrays from strings.
-         * 
-         * On the HTTP side, elements concatenate their name with their Index number (if multiple).  In this code, 
-         * we turn such names into arrays with same index number.  Then, we place them in the Transaction "Properties" so that 
+         *
+         * On the HTTP side, elements concatenate their name with their Index number (if multiple).  In this code,
+         * we turn such names into arrays with same index number.  Then, we place them in the Transaction "Properties" so that
          * it can be transferred to subclasses easily.
-         */ 
+         */
         if (meth.equals(HttpMethods.POST)) {
             // Here, we'll expect FORM URL Encoded Data, which we need to get from the body
-            gui.route(gui.env, meth, page.url(), 
+            gui.route(gui.env, meth, page.url(),
                 new HttpCode<AuthzTrans,AAF_GUI>(gui,page.name()) {
                     @Override
                     public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
@@ -90,8 +90,8 @@ public class Display {
         } else {
             // Transfer whether Page shouldn't be cached to local Final var.
             final boolean no_cache = page.no_cache;
-            
-            gui.route(gui.env, meth, page.url(), 
+
+            gui.route(gui.env, meth, page.url(),
                 new HttpCode<AuthzTrans,AAF_GUI>(gui,page.name()) {
                     @Override
                     public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
@@ -105,7 +105,7 @@ public class Display {
                             } else { // multi value
                                 String[] array = new String[30];
                                 String field=fields[i].substring(0, idx);
-                                
+
                                 for (Enumeration<String> mm = req.getParameterNames();mm.hasMoreElements();) {
                                     String key = mm.nextElement();
                                     if (key.startsWith(field)) {
@@ -127,7 +127,7 @@ public class Display {
                         }
                         page.replay(context,trans,resp.getOutputStream(),"general");
                     }
-                    
+
                     /**
                      * When the field is "as_user", make sure permission is granted
                      */
@@ -146,8 +146,8 @@ public class Display {
         }
 
     }
-    
-    public Page page() { 
+
+    public Page page() {
         return get;
     }
 }
\ No newline at end of file
index 40aef8f..caa5860 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,18 +30,18 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 public class Form extends NamedCode {
     private String preamble;
     private NamedCode content;
-    
+
     public Form(boolean no_cache, NamedCode content) {
         super(no_cache,content);
         this.content = content;
         preamble=null;
     }
-    
+
     public Form preamble(String preamble) {
         this.preamble = preamble;
         return this;
     }
-    
+
 
     @Override
     public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
@@ -49,9 +49,9 @@ public class Form extends NamedCode {
             hgen.incr("p","class=preamble").text(preamble).end();
         }
         hgen.incr("form","method=post");
-    
+
         content.code(cache, hgen);
-        
+
         hgen.tagOnly("input", "type=submit", "value=Submit")
             .tagOnly("input", "type=reset", "value=Reset")
         .end();
index 435197c..22069c5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,16 +25,16 @@ public abstract class NamedCode implements ContentCode {
     private final boolean no_cache;
     private String name;
     private String[] idattrs;
-    
+
     /*
-     *  Mark whether this code should not be cached, and any attributes 
+     *  Mark whether this code should not be cached, and any attributes
      */
     public NamedCode(final boolean no_cache, final String name) {
         this.name = name;
         idattrs = new String[] {name};
         this.no_cache = no_cache;
     }
-    
+
     public NamedCode(boolean no_cache, NamedCode content) {
         this.no_cache = no_cache;
         name=content.name;
@@ -48,7 +48,7 @@ public abstract class NamedCode implements ContentCode {
     public String[] idattrs() {
         return idattrs;
     }
-    
+
     public void addAttr(boolean first, String attr) {
         String[] temp = new String[idattrs.length+1];
         if (first) {
index deed77c..9240ce4 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -40,7 +40,7 @@ import org.onap.aaf.cadi.CadiException;
 import org.onap.aaf.cadi.principal.TaggedPrincipal;
 
 public class OrgLookupFilter implements Filter {
-    
+
     @Override
     public void init(FilterConfig arg0) throws ServletException {
     }
@@ -69,7 +69,7 @@ public class OrgLookupFilter implements Filter {
             }
             fc.doFilter(req, resp);
         }
-        
+
     }
 
 
index 0265469..1d797aa 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -63,8 +63,8 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 import org.onap.aaf.misc.xgen.html.Imports;
 
 /**
- * A Base "Mobile First" Page 
- * 
+ * A Base "Mobile First" Page
+ *
  * @author Jonathan
  *
  */
@@ -92,7 +92,7 @@ public class Page extends HTMLCacheGen {
 
     // Note: Only access is synchronized in "getPerm"
     private final static Map<String,Map<String,Permission>> perms = new HashMap<>();
-    
+
     /*
      *      Relative path, Menu Name, Full Path
      */
@@ -113,15 +113,15 @@ public class Page extends HTMLCacheGen {
     public String name() {
         return bcName;
     }
-    
+
     public String url() {
         return bcUrl;
     }
-    
+
     public String[] fields() {
         return fields;
     }
-    
+
     public Page(AuthzEnv env, String name, String url, Enum<?>[] en, final NamedCode ...content) throws APIException, IOException {
         super(CacheGen.PRETTY, new PageCode(env, 1, content));
         fields = new String[en.length];
@@ -135,7 +135,7 @@ public class Page extends HTMLCacheGen {
         // Mark which fields must be "no_cache"
         boolean no_cacheTemp=false;
         for (NamedCode nc : content) {
-            if (nc.no_cache()) { 
+            if (nc.no_cache()) {
                 no_cacheTemp=true;
                 break;
             }
@@ -145,7 +145,7 @@ public class Page extends HTMLCacheGen {
     public Page(AuthzEnv env, String name, String url, String [] fields, final NamedCode ... content) throws APIException,IOException {
         this(env,name,url,1,fields,content);
     }
-    
+
     public Page(AuthzEnv env, String name, String url, int backdots, String [] fields, final NamedCode ... content) throws APIException,IOException {
         super(CacheGen.PRETTY, new PageCode(env, backdots, content));
         if (fields==null) {
@@ -158,19 +158,19 @@ public class Page extends HTMLCacheGen {
         // Mark which fields must be "no_cache"
         boolean no_cacheTemp=false;
         for (NamedCode nc : content) {
-            if (nc.no_cache()) { 
+            if (nc.no_cache()) {
                 no_cacheTemp=true;
                 break;
             }
         }
         no_cache=no_cacheTemp;
     }
-    
-    
+
+
     private static class PageCode implements Code<HTMLGen> {
             private static final String AAF_GUI_THEME = "aaf.gui.theme";
             private static final String AAF_GUI_TITLE = "aaf_gui_title";
-            
+
             private final ContentCode[] content;
             private final Slot browserSlot;
             private final int backdots;
@@ -210,7 +210,7 @@ public class Page extends HTMLCacheGen {
                                                 props = new Properties();
                                                 themeProps.put(t.getName(), props);
                                             }
-                                            
+
                                             try {
                                                 FileInputStream fis = new FileInputStream(f);
                                                 try {
@@ -233,7 +233,7 @@ public class Page extends HTMLCacheGen {
                 }
                 return themes.get(theme);
             }
-            
+
             protected Imports getImports(Env env, String theme, int backdots, BROWSER browser) {
                 List<String> ls = getThemeFiles(env,theme);
                 Imports imp = new Imports(backdots);
@@ -258,10 +258,10 @@ public class Page extends HTMLCacheGen {
                 }
                 return imp;
             }
-            
+
             @Override
             public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
-                // Note: I found that App Storage saves everything about the page, or not.  Thus, if you declare the page uncacheable, none of the 
+                // Note: I found that App Storage saves everything about the page, or not.  Thus, if you declare the page uncacheable, none of the
                 // Artifacts, like JPGs are stored, which makes this feature useless for Server driven elements
                 cache.dynamic(hgen,  new DynamicCode<HTMLGen,AAF_GUI,AuthzTrans>() {
                     @Override
@@ -277,14 +277,14 @@ public class Page extends HTMLCacheGen {
                 });
                 hgen.html();
                 final String title = env.getProperty(AAF_GUI_TITLE,"Authentication/Authorization Framework");
-                final String defaultTheme = env.get(sTheme,"onap"); 
-              
+                final String defaultTheme = env.get(sTheme,"onap");
+
                 Mark head = hgen.head();
                     hgen.leaf(TITLE).text(title).end();
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI,AuthzTrans>() {
                         @Override
                         public void code(AAF_GUI state, AuthzTrans trans, final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
-                            BROWSER browser = browser(trans,browserSlot);  
+                            BROWSER browser = browser(trans,browserSlot);
                             String theme = null;
                             Cookie[] cookies = trans.hreq().getCookies();
                             if(cookies!=null) {
@@ -298,7 +298,7 @@ public class Page extends HTMLCacheGen {
                                     }
                                 }
                             }
-                            
+
                             if(theme==null) {
                                 for(String t : themes.keySet()) {
                                     if(!t.equals(defaultTheme) && trans.fish(new AAFPermission(null,trans.user()+":id", AAF_GUI_THEME, t))) {
@@ -311,7 +311,7 @@ public class Page extends HTMLCacheGen {
                                 }
                                 List<String> ls = getThemeFiles(trans, theme);
                                 if(ls==null) {
-                                       throw new APIException("Theme " + theme + " does not exist.");
+                                    throw new APIException("Theme " + theme + " does not exist.");
                                 }
                                 Cookie cookie = new Cookie(AAF_GUI_THEME,theme);
                                 cookie.setMaxAge(604_800); // one week
@@ -329,11 +329,11 @@ public class Page extends HTMLCacheGen {
                                     break;
                                 default:
                             }
-                            
+
                         }
                     });
                     hgen.end(head);
-                    
+
                 Mark body = hgen.body();
                     Mark header = hgen.header();
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI,AuthzTrans>() {
@@ -345,7 +345,7 @@ public class Page extends HTMLCacheGen {
                             String env = trans.getProperty(Config.AAF_ENV,"N/A");
                             xgen.leaf(H1).text(title + " on " + env).end();
                             xgen.leaf("p","id=version").text("AAF Version: " + state.deployedVersion).end();
-                            
+
                             // Obtain User Info, and print
                             TaggedPrincipal p = trans.getUserPrincipal();
                             String user,secured;
@@ -361,11 +361,11 @@ public class Page extends HTMLCacheGen {
                                 .text("<sup>")
                                 .text(secured)
                                 .text("</sup>").end();
-                            
+
                             switch(browser(trans,browserSlot)) {
                                 case ieOld:
                                 case ie:
-                                    xgen.incr("h5").text("This app is Mobile First HTML5.  Internet Explorer " 
+                                    xgen.incr("h5").text("This app is Mobile First HTML5.  Internet Explorer "
                                             + " does not support all HTML5 standards. Old, non TSS-Standard versions may not function correctly.").br()
                                             .text("  For best results, use a highly compliant HTML5 browser like Firefox.")
                                         .end();
@@ -374,9 +374,9 @@ public class Page extends HTMLCacheGen {
                             }
                         }
                     });
-                    
+
                     hgen.hr();
-                    
+
                     int cIdx;
                     ContentCode nc;
                     // If BreadCrumbs, put here
@@ -389,7 +389,7 @@ public class Page extends HTMLCacheGen {
                     } else {
                         cIdx = 0;
                     }
-                    
+
                     hgen.end(header);
 
                     hgen.divID("pageContent");
@@ -402,9 +402,9 @@ public class Page extends HTMLCacheGen {
                             hgen.end(ctnt);
                         }
 
-                    hgen.end(inner);    
+                    hgen.end(inner);
+
 
-                    
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI,AuthzTrans>() {
                         @Override
                         public void code(AAF_GUI state, AuthzTrans trans,Cache<HTMLGen> cache, HTMLGen xgen) throws APIException, IOException {
@@ -415,7 +415,7 @@ public class Page extends HTMLCacheGen {
                             } else {
                                 props = themeProps==null?null:themeProps.get(theme);
                             }
-                            
+
                             if(props!=null && "TRUE".equalsIgnoreCase(props.getProperty("enable_nav_btn"))) {
                                     xgen.leaf("button", "id=navBtn").end();
                             }
@@ -434,7 +434,7 @@ public class Page extends HTMLCacheGen {
                             } else {
                                 props = themeProps==null?null:themeProps.get(theme);
                             }
-                            
+
                             if(props!=null) {
                                 if("TRUE".equalsIgnoreCase(props.getProperty("main_menu_in_nav"))) {
                                     xgen.incr("h2").text("Navigation").end();
@@ -516,15 +516,15 @@ public class Page extends HTMLCacheGen {
                         hgen.end();
                     }
                     hgen.end();
-                    
+
                     hgen.hr();
-                    
+
                     hgen.end(nav);
                     // Footer - Using older Footer to work with decrepit IE versions
                     Mark footer = hgen.divID("footer");
                         hgen.textCR(1, env.getProperty(AAF_GUI.AAF_GUI_COPYRIGHT))
                         .end(footer);
-                        
+
                     hgen.end(body);
                 hgen.endAll();
         }
@@ -533,27 +533,27 @@ public class Page extends HTMLCacheGen {
     public static String getBrowserType() {
         return BROWSER_TYPE;
     }
-    
+
     /**
      * It's IE if int >=0
-     * 
+     *
      * Use int found in "ieVersion"
-     * 
+     *
      * Official IE 7
-     *         Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; 
+     *         Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322;
      *         .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
      * Official IE 8
-     *         Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; 
+     *         Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2;
      *         .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; ATT)
-     * 
+     *
      * IE 11 Compatibility
-     *         Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727; 
+     *         Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; SLCC2; .NET CLR 2.0.50727;
      *         .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E; InfoPath.3; HVD; ATT)
-     * 
+     *
      * IE 11 (not Compatiblity)
-     *         Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; 
+     *         Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727;
      *         .NET CLR 3.5.30729; .NET CLR 3.0.30729;    Media Center PC 6.0; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E; InfoPath.3; HVD; ATT)
-     * 
+     *
      * @param trans
      * @return
      */
@@ -561,7 +561,7 @@ public class Page extends HTMLCacheGen {
         BROWSER br = trans.get(slot, null);
         if (br==null) {
             String agent = trans.agent();
-            int msie; 
+            int msie;
             if (agent.contains("iPhone") /* other phones? */) {
                 br=BROWSER.iPhone;
             } else if ((msie = agent.indexOf("MSIE"))>=0) {
@@ -581,7 +581,7 @@ public class Page extends HTMLCacheGen {
         }
         return br;
     }
-    
+
     /*
      * Get, rather than create each time, permissions for validations
      */
index 7462de8..ba1e1e3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,7 +39,7 @@ public abstract class SlotCode<TRANS extends TransStore> extends NamedCode {
     public<T> T get(TRANS trans,Enum<?> en, T dflt) {
         return get(trans,en.ordinal(),dflt);
     }
-    
+
     public<T> T get(TRANS trans,int idx, T dflt) {
         if (idx>slots.length) {
             return dflt;
index 6451c4e..899850d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,16 +47,15 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
     private final String[] columns;
     private final Rows rows;
     private Code<HTMLGen> other;
-//    private DynamicCode<HTMLGen, AuthGUI, AuthzTrans> prefix,postfix;
+
 
     public Table(String title, TRANS trans, Data<S,TRANS> data, Code<HTMLGen> other, String name, String ... attrs)  {
         this(title,trans,data,name, attrs);
         this.other = other;
     }
-    
+
     public Table(String title, TRANS trans, Data<S,TRANS> data, String name, String ... attrs)  {
         super(true,name);
-//        prefix=postfix=null;
         for (String a : attrs) {
             addAttr(false, a);
         }
@@ -73,7 +72,7 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
         this.title = title;
         // Derive an ID from title (from no spaces, etc), and prepend to IDAttributes (Protected from NamedCode)
         addAttr(true,title(trans).replaceAll("\\s",""));
-        
+
         other = null;
     }
 
@@ -87,12 +86,12 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
         });
         Mark table = new Mark();
         Mark tr = new Mark();
-        
+
         hgen.incr(table,TABLE);
         if (title==null) {
             cache.dynamic(hgen, new DynamicCode<HTMLGen,S,TRANS>() {
                 @Override
-                public void code(S state, TRANS trans, final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {            
+                public void code(S state, TRANS trans, final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     hgen.leaf("caption", "class=title").text(title(trans)).end();
                 }
             });
@@ -104,16 +103,16 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
                     hgen.leaf("th").text(column).end();
                 }
             hgen.end(tr);
-                
+
         // Load Rows Dynamically
         cache.dynamic(hgen, rows);
         // End Table
-        hgen.end(table); 
-        
+        hgen.end(table);
+
         if (other!=null) {
             other.code(cache,hgen);
         }
-            
+
         // Print Message from Row Gathering, if available
         cache.dynamic(hgen, new DynamicCode<HTMLGen,S,TRANS>() {
             @Override
@@ -122,7 +121,7 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
                 if ((msg = trans.get(EMPTY_TABLE_SLOT, null))!=null) {
                     hgen.incr("style").text("#inner tr,caption,input,p.preamble {display: none;}#inner p.notfound {margin: 0px 0px 0px 20px}").end();
                     hgen.incr(HTMLGen.P,"class=notfound").text(msg).end().br();
-                } else if ((msg=trans.get(ROW_MSG_SLOT,null))!=null) { 
+                } else if ((msg=trans.get(ROW_MSG_SLOT,null))!=null) {
                     hgen.p(msg).br();
                 }
             }
@@ -146,7 +145,7 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
             cells = new AbsCell[0][0];
             msg = "No Data Found";
         }
-        
+
         public Cells(ArrayList<AbsCell[]> arrayCells, String msg) {
             cells = new AbsCell[arrayCells.size()][];
             arrayCells.toArray(cells);
@@ -154,9 +153,9 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
         }
         public AbsCell[][] cells;
         public String msg;
-        
+
     }
-    
+
     public interface Data<S extends State<Env>, TRANS extends Trans> {
         // Note: Trans is not first to avoid Method Name Collision
         public void prefix(S state, TRANS trans, final Cache<HTMLGen> cache, final HTMLGen hgen);
@@ -168,17 +167,17 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
     private class Rows extends DynamicCode<HTMLGen,S,TRANS> {
         private Data<S,TRANS> data;
         private int alt;
-        
+
         public Rows(Data<S,TRANS> data, int alt) {
             this.data = data;
             this.alt = alt;
         }
-        
+
         @Override
         public void code(final S state, final TRANS trans, final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
             Mark tr = new Mark();
             Mark td = new Mark();
-            
+
             int alt = this.alt;
             Cells cells = data.get(trans,state);
             if (cells.cells.length>0) {
@@ -220,7 +219,7 @@ public class Table<S extends State<Env>, TRANS extends TransStore> extends Named
 //        prefix = dynamicCode;
 //        return this;
 //    }
-//    
+//
 //    public Table<S,TRANS> setPostfix(DynamicCode<HTMLGen, AuthGUI, AuthzTrans> dynamicCode) {
 //        postfix = dynamicCode;
 //        return this;
index cf3a671..bec41ac 100644 (file)
@@ -34,7 +34,7 @@ public class XFrameFilter implements Filter {
     enum TYPE {none,self};
     // Note: Content-Security Params need to be worked out for GUI before activating.
     private final String xframe;//,csp;
-    
+
     public XFrameFilter(TYPE type) {
         switch(type) {
         case self:
@@ -46,10 +46,10 @@ public class XFrameFilter implements Filter {
             xframe="DENY";
 //            csp="default-src 'none'";
             break;
-        
+
         }
     }
-    
+
     @Override
     public void doFilter(ServletRequest req, ServletResponse resp, FilterChain fc) throws IOException, ServletException {
         if (resp instanceof HttpServletResponse) {
index 39e4d0b..b171695 100644 (file)
@@ -59,11 +59,11 @@ public class ApiDocs extends Page {
     private static final String fields[] = {};
     private static final String ERROR_LINK = "<a href=\"./example/"
             + "YXBwbGljYXRpb24vRXJyb3IranNvbg=="
-//            + Symm.base64noSplit().encode("application/Error+json") 
+//            + Symm.base64noSplit().encode("application/Error+json")
             + "\">JSON</a> "
             + "<a href=\"./example/"
             + "YXBwbGljYXRpb24vRXJyb3IreG1s"
-//            + Symm.base64noSplit().encode("application/Error+xml") 
+//            + Symm.base64noSplit().encode("application/Error+xml")
             + "\">XML</a> ";
 
 
index 7da7760..9d28d1d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,7 +40,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 
 /**
  * Detail Page for Permissions
- * 
+ *
  * @author Jonathan
  *
  */
@@ -54,7 +54,7 @@ public class ApiExample extends Page {
                 new Model(NAME)
                 );
     }
-    
+
     private static class Model extends NamedCode {
         private static final String WITH_OPTIONAL_PARAMETERS = "\n\n////////////\n  Data with Optional Parameters \n////////////\n\n";
 
@@ -86,8 +86,8 @@ public class ApiExample extends Page {
                         } else {
                             fs2=null;
                         }
-                        
-                        
+
+
                         if (fp.get(5000)) {
                                 xgen.incr(HTMLGen.H1).text("Sample Code").end()
                                 .incr(HTMLGen.H5).text(typecode).end();
@@ -123,11 +123,11 @@ public class ApiExample extends Page {
                         tt.done();
                     }
                 }
-                    
+
             });
             xgen.end(inner);
         }
     }
 
-}        
+}
         
\ No newline at end of file
index 8c90b49..18499ac 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,9 +50,9 @@ public class ApprovalAction extends Page {
             new NamedCode(true,"content") {
                 final Slot sAppr = gui.env.slot(ApprovalForm.NAME+'.'+ApprovalForm.FIELDS[0]);
                 final Slot sUser = gui.env.slot(ApprovalForm.NAME+'.'+ApprovalForm.FIELDS[1]);
-                
+
                 @Override
-                public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {                
+                public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI, AuthzTrans>() {
                         @Override
                         public void code(final AAF_GUI gui, final AuthzTrans trans,final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
@@ -62,7 +62,7 @@ public class ApprovalAction extends Page {
                             if (user != null) {
                                 lastPage += "?user="+user;
                             }
-                            
+
                             if (appr==null) {
                                 hgen.p("No Approvals have been selected.");
                             } else {
index cb868b1..a533736 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -67,8 +67,8 @@ public class ApprovalForm extends Page {
     static final String NAME="Approvals";
     static final String HREF = "/gui/approve";
     static final String[] FIELDS = new String[] {"line[]","user","delegate_of","as_user"};
-    
-    
+
+
     public ApprovalForm(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, FIELDS,
 
@@ -106,38 +106,38 @@ public class ApprovalForm extends Page {
                 }
             });
     }
-    
+
     /**
      * Implement the Table Content for Approvals
-     * 
+     *
      * @author Jonathan
      *
      */
     private static class Model extends TableData<AAF_GUI,AuthzTrans> {
         //TODO come up with a generic way to do ILM Info (people page)
 //        private static final String TODO_ILM_INFO = "TODO: ILM Info";
-        
-        
+
+
         private static final String[] headers = new String[] {"Identity","Request","Approve","Deny"};
         private Slot sUser;
         private Slot sAsDelegate;
         private Slot sAsUser;
-        
+
         public Model(AuthzEnv env) {
             sUser = env.slot(NAME+".user");
             sAsDelegate = env.slot(NAME+".delegate_of");
             sAsUser = env.slot(NAME + ".as_user");
         }
-        
+
         @Override
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             final String userParam = trans.get(sUser, null);
-            
+
             final String asDelegate = trans.get(sAsDelegate, null);
             final String approver;
             if(asDelegate==null) {
@@ -145,7 +145,7 @@ public class ApprovalForm extends Page {
             } else {
                 approver = asDelegate;
             }
-             
+
             ArrayList<AbsCell[]> rv = new ArrayList<>();
             String msg = null;
             TimeTaken tt = trans.start("AAF Get Approvals for Approver",Env.REMOTE);
@@ -158,7 +158,7 @@ public class ApprovalForm extends Page {
                         Future<Approvals> fa = client.read("/authz/approval/approver/"+approver,gui.getDF(Approvals.class));
                         int numLeft = 0;
                         if (fa.get(AAF_GUI.TIMEOUT)) {
-                            
+
                             if (fa.value!=null) {
                                 for (Approval appr : fa.value.getApprovals()) {
                                     if ("pending".equals(appr.getStatus())) {
@@ -170,10 +170,10 @@ public class ApprovalForm extends Page {
                                     }
                                 }
                             }
-                            
+
                             String prevApprover = null;
                             int overallIndex = 0;
-                                
+
                             for (Approval appr : pendingApprovals) {
                                 String currApprover = appr.getApprover();
                                 if (!currApprover.equals(prevApprover)) {
@@ -186,7 +186,7 @@ public class ApprovalForm extends Page {
                         return numLeft;
                     }
                 });
-                
+
                 if (!pendingApprovals.isEmpty()) {
                     // Only add select all links if we have approvals
                     AbsCell[] selectAllRow = new AbsCell[] {
@@ -197,14 +197,14 @@ public class ApprovalForm extends Page {
                         };
                     rv.add(selectAllRow);
                 }
-                        
+
                 int line=-1;
-                
+
                 while (!beginIndicesPerApprover.isEmpty()) {
                     int beginIndex = beginIndicesPerApprover.remove(0);
                     int endIndex = (beginIndicesPerApprover.isEmpty()?pendingApprovals.size():beginIndicesPerApprover.get(0));
                     List<Approval> currApproverList = pendingApprovals.subList(beginIndex, endIndex);
-                    
+
                     Identity iapprover = trans.org().getIdentity(trans,currApproverList.get(0).getApprover());
                     if(iapprover==null) {
                         rv.add(new AbsCell[] {
@@ -213,25 +213,25 @@ public class ApprovalForm extends Page {
                         });
                     } else {
                         if (!iapprover.fullID().equals(trans.user())) {
-                        
+
                             AbsCell[] approverHeader;
     //                        if (domainOfUser.equals(domainOfApprover)) {
-    //                            approverHeader = new AbsCell[] { 
+    //                            approverHeader = new AbsCell[] {
     //                                    new TextAndRefCell("Approvals Delegated to Me by ", currApproverFull,
-    //                                            TODO_ILM_INFO + currApproverShort, 
+    //                                            TODO_ILM_INFO + currApproverShort,
     //                                            true,
     //                                            new String[] {"colspan=4", "class=head"})
     //                            };
     //                        } else {
-                                approverHeader = new AbsCell[] { 
-                                        new TextCell("Approvals Delegated to Me by " + iapprover.fullName() 
+                                approverHeader = new AbsCell[] {
+                                        new TextCell("Approvals Delegated to Me by " + iapprover.fullName()
                                             + '(' + iapprover.id() + ')',
                                                 new String[] {"colspan=4", "class=head"})
                                 };
     //                        }
                             rv.add(approverHeader);
                         }
-                        
+
                         // Sort by User Requesting
                         Collections.sort(currApproverList, new Comparator<Approval>() {
                             @Override
@@ -239,16 +239,16 @@ public class ApprovalForm extends Page {
                                 return a1.getUser().compareTo(a2.getUser());
                             }
                         });
-                        
+
                         String prevUser = null;
                         boolean userOK=true;
                         for (Approval appr : currApproverList) {
                             if (++line<MAX_LINE) { // limit number displayed at one time.
                                 AbsCell userCell;
                                 String user = appr.getUser();
-                                
+
                                 if (user.equals(prevUser)) {
-                                    userCell = AbsCell.Null; 
+                                    userCell = AbsCell.Null;
                                 } else if (user.endsWith(trans.org().getRealm())){
                                     userOK=true;
                                     String title;
@@ -266,7 +266,7 @@ public class ApprovalForm extends Page {
                                                 if (managedBy==null) {
                                                     title ="Identity: " + au.type();
                                                 } else {
-                                                    title="Sponsor: " + managedBy.fullName();                                                
+                                                    title="Sponsor: " + managedBy.fullName();
                                                 }
                                                 userCell = new TextToolTipCell(au.fullID(),title);
                                             }
@@ -280,7 +280,7 @@ public class ApprovalForm extends Page {
     //                                    TODO_ILM_INFO+user.substring(0, user.length()-domainOfApprover.length()),
     //                                    true,
     //                                    title);
-                                    
+
                                 } else {
                                     userCell = new TextCell(user);
                                 }
@@ -302,7 +302,7 @@ public class ApprovalForm extends Page {
                     }
                     if (rv.isEmpty()) {
                         if (numLeft>0) {
-                            msg = "No Approvals to process at this time for user " + userParam +". You have " 
+                            msg = "No Approvals to process at this time for user " + userParam +". You have "
                                 + numLeft + " other approvals to process.";
                         } else {
                             msg = "No Approvals to process at this time";
index c682119..c19820d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -67,7 +67,7 @@ public class CMArtiChangeAction extends Page {
                 final Slot sOther = gui.env.slot(CMArtiChangeForm.NAME+'.'+CMArtiChangeForm.fields[9]);
                 final Slot sType = gui.env.slot(CMArtiChangeForm.NAME+'.'+CMArtiChangeForm.fields[10]);
                 final Slot sSans = gui.env.slot(CMArtiChangeForm.NAME+'.'+CMArtiChangeForm.fields[11]);
-                
+
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI, AuthzTrans>() {
@@ -83,7 +83,7 @@ public class CMArtiChangeAction extends Page {
                                     arti.getSans().add(s);
                                 }
                             }
-                            
+
                             // These checks to not apply to deletions
                             if(!CMArtiChangeForm.DELETE.equals(trans.get(sCmd, ""))) {
                                 // Disallow IP entries, except by special Permission
@@ -105,9 +105,9 @@ public class CMArtiChangeAction extends Page {
                                         return;
                                     }
                                 }
-                                
+
                             }
-                            
+
                             arti.setMechid((String)trans.get(sID,null));
                             arti.setMachine(machine);
                             arti.setNs((String)trans.get(sNS,null));
@@ -128,11 +128,11 @@ public class CMArtiChangeAction extends Page {
                                 hgen.p("Data Entry Failure: Please enter a valid ID, including domain.");
                             // VALIDATE OTHERS?
                             } else { // everything else is checked by Server
-                                
+
                                 try {
                                     final Artifacts artifacts = new Artifacts();
                                     artifacts.getArtifact().add(arti);
-                                    final Holder<Boolean> ok = new Holder<Boolean>(false); 
+                                    final Holder<Boolean> ok = new Holder<Boolean>(false);
                                     final Holder<Boolean> deleted = new Holder<Boolean>(false);
                                     Future<?> f = gui.cmClientAsUser(trans.getUserPrincipal(), new Retryable<Future<?>>() {
                                         @Override
@@ -149,7 +149,8 @@ public class CMArtiChangeAction extends Page {
                                                     break;
                                                 case CMArtiChangeForm.UPDATE:
                                                     Future<Artifacts> fu = client.update("/cert/artifacts", gui.artifactsDF, artifacts);
-                                                    if ((rv=fu).get(AAFcli.timeout())) {
+                                                    rv=fu;
+                                                    if(rv.get(AAFcli.timeout())) {
                                                         hgen.p("Artifact " + arti.getMechid() + " on " + arti.getMachine() + " is updated");
                                                         ok.set(true);
                                                     }
@@ -221,7 +222,7 @@ public class CMArtiChangeAction extends Page {
                                 hgen.p("Unknown Error");
                                 e.printStackTrace();
                             }
-                                
+
                         }
                         hgen.br();
                     }
index ee55fdb..9df5410 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,18 +55,18 @@ import certman.v1_0.Artifacts.Artifact;
 public class CMArtiChangeForm extends Page {
     private static final String COPY_ARTIFACT = "copyArtifact";
     private static final String DELETE_ARTIFACT = "deleteArtifact";
-    
+
     // Package on purpose
     static final String HREF = "/gui/artichange";
     static final String NAME = "ArtifactChange";
     static final String fields[] = {"id","machine","ns","directory","ca","osuser","renewal","notify","cmd","others","types[]","sans"};
-    
+
     static final String types[] = {"pkcs12","jks","file","script"};
     static final String UPDATE = "Update";
     static final String CREATE = "Create";
     static final String COPY = "Copy";
     static final String DELETE = "Delete";
-    
+
     public CMArtiChangeForm(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, fields,
             new BreadCrumbs(breadcrumbs),
@@ -74,7 +74,7 @@ public class CMArtiChangeForm extends Page {
             private final Slot sID = gui.env.slot(CMArtiChangeForm.NAME+'.'+CMArtiChangeForm.fields[0]);
             private final Slot sMach = gui.env.slot(CMArtiChangeForm.NAME+'.'+CMArtiChangeForm.fields[1]);
             private final Slot sNS = gui.env.slot(CMArtiChangeForm.NAME+'.'+CMArtiChangeForm.fields[2]);
-            
+
             @Override
             public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                 Mark js = new Mark();
@@ -121,7 +121,7 @@ public class CMArtiChangeForm extends Page {
                 hgen.leaf(HTMLGen.TITLE).text("Certificate Artifact Form").end();
                 Mark form = new Mark();
                 hgen.incr(form, "form","action="+HREF,"method=post");
-                
+
                 cache.dynamic(hgen, new DynamicCode<HTMLGen, AAF_GUI, AuthzTrans>() {
                     @Override
                     public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {
@@ -199,7 +199,7 @@ public class CMArtiChangeForm extends Page {
                                     }
                                     sb.append(s);
                                 }
-                                
+
                                 hgen.text("IPs allowed, separated by commas.").end()
                                     .input(fields[11], "SANs", false, "value="+(sb==null?"":sb.toString()),"style=width:130%;");
 //                            }
@@ -215,7 +215,7 @@ public class CMArtiChangeForm extends Page {
                             for (int i=0;i<types.length;++i) {
                                 hgen.leaf("input","type=checkbox","name=types."+i,arti.getType().contains(types[i])?"checked":"").text(types[i]).end().br();
                             }
-                            
+
                             Mark tr = new Mark();
                             hgen.incr(tr,HTMLGen.TR).incr(HTMLGen.TD,"id=trcopy")
                                     .leaf("input","id=cbcopy","type=checkbox","onclick="+COPY_ARTIFACT+"()").text("Copy Artifact").end(2)
@@ -228,10 +228,10 @@ public class CMArtiChangeForm extends Page {
                                 .leaf("input","id=cbdelete","type=checkbox","onclick="+DELETE_ARTIFACT+"()",delete?"style:display:none;":"").text("Delete Artifact").end(2)
                                 .end(tr);
                             hgen.end(table);
-                            
+
                             hgen.tagOnly("input","id="+fields[8],"name="+fields[8],"value="+submitText,"style=display:none;");
                             hgen.tagOnly("input","id=theButton","type=submit", "orig="+submitText,"value="+submitText);
-                            
+
                         } catch (CadiException | LocatorException | OrganizationException e) {
                             throw new APIException(e);
                         }
@@ -241,6 +241,6 @@ public class CMArtiChangeForm extends Page {
                 hgen.end(form);
                 }
             });
-        
+
     }
 }
index 85797cb..2362951 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -63,7 +63,7 @@ import certman.v1_0.Artifacts.Artifact;
 import certman.v1_0.CertInfo;
 
 public class CMArtifactShow extends Page {
-    
+
     public static final String HREF = "/gui/cmarti";
     public static final String NAME = "ArtifactsShow";
     private static ArtiTable arti;
@@ -72,14 +72,14 @@ public class CMArtifactShow extends Page {
 
 
     public CMArtifactShow(final AAF_GUI gui, Page ... breadcrumbs) throws APIException, IOException {
-        super(gui.env, NAME, HREF, Params.values() , 
+        super(gui.env, NAME, HREF, Params.values() ,
                 new BreadCrumbs(breadcrumbs),
                 arti = new ArtiTable(gui.env)
                 );
         // Setting so we can get access to HTMLGen clone and Slots
         arti.set(this,slotCode);
     }
-    
+
     private static class ArtiTable extends Table<AAF_GUI, AuthzTrans> {
         private static Model model;
         private SlotCode<AuthzTrans> sc;
@@ -108,13 +108,13 @@ public class CMArtifactShow extends Page {
                         }
                     },"class=std");
         }
-        
+
 
         public void set(CMArtifactShow cmArtifactShow, SlotCode<AuthzTrans> sc) {
             this.sc = sc;
             model.set(cmArtifactShow,sc);
         }
-        
+
         @Override
         protected String title(AuthzTrans trans) {
             StringBuilder sb = new StringBuilder("X509 Certificates");
@@ -132,7 +132,7 @@ public class CMArtifactShow extends Page {
     }
     /**
      * Implement the table content for Cred Detail
-     * 
+     *
      * @author Jeremiah
      *
      */
@@ -151,7 +151,7 @@ public class CMArtifactShow extends Page {
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             String str = sc.get(trans,Params.id, null);
@@ -167,7 +167,7 @@ public class CMArtifactShow extends Page {
                     public Void code(Rcli<?> client) throws CadiException, ConnectException, APIException {
                         Future<CertInfo>  fuCI = client.read("/cert/id/"+id,gui.certInfoDF);
                         Future<Artifacts> fuArt = client.read("/cert/artifacts?mechid="+id, gui.artifactsDF);
-                        
+
                         X509Certificate[] lc;
                         if (fuCI.get(AAFcli.timeout())) {
                             TimeTaken tt1 = trans.start("x509Certificate", Env.SUB);
@@ -214,7 +214,7 @@ public class CMArtifactShow extends Page {
                                 }
 
                                 rv.add(new AbsCell[] {
-                                    new TextCell(arti.getMachine(),"style=width:20%;"), 
+                                    new TextCell(arti.getMachine(),"style=width:20%;"),
                                     new TextCell(arti.getDir(),"style=width:25%;"),
                                     new TextCell(arti.getCa(),"style=width:2%;text-align:center;"),
                                     new TextCell(renew==null?
@@ -247,5 +247,5 @@ public class CMArtifactShow extends Page {
         }
 
     }
-    
+
 }
index 70d8693..4ad7893 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -67,7 +67,7 @@ import certman.v1_0.Artifacts;
 import certman.v1_0.Artifacts.Artifact;
 
 public class CredDetail extends Page {
-    
+
     public static final String HREF = "/gui/creddetail";
     public static final String NAME = "CredDetail";
     private static Model model;
@@ -76,7 +76,7 @@ public class CredDetail extends Page {
 
 
     public CredDetail(final AAF_GUI gui, Page ... breadcrumbs) throws APIException, IOException {
-        super(gui.env, NAME, HREF, Params.values(), 
+        super(gui.env, NAME, HREF, Params.values(),
                 new BreadCrumbs(breadcrumbs),
                 new Table<AAF_GUI,AuthzTrans>("Cred Details",gui.env.newTransNoAvg(),model = new Model(),
                 slotCode = new SlotCode<AuthzTrans>(false,gui.env,NAME,Params.values()) {
@@ -109,7 +109,7 @@ public class CredDetail extends Page {
                     });
                     }
                 },"class=std")
-                
+
                 );
         // Setting so we can get access to HTMLGen clone
         model.set(this,slotCode);
@@ -119,7 +119,7 @@ public class CredDetail extends Page {
 
     /**
      * Implement the table content for Cred Detail
-     * 
+     *
      * @author Jeremiah
      *
      */
@@ -136,7 +136,7 @@ public class CredDetail extends Page {
             cd = credDetail;
             sc = slotCode;
         }
-        
+
         @Override
         public void prefix(AAF_GUI state, AuthzTrans trans, final Cache<HTMLGen> cache, final HTMLGen hgen) {
         }
@@ -150,7 +150,7 @@ public class CredDetail extends Page {
             }
             final ArrayList<AbsCell[]> rv = new ArrayList<>();
             final TimeTaken tt = trans.start("AAF Cred Details",Env.REMOTE);
-            List<Artifact> la; 
+            List<Artifact> la;
             try {
                     la = gui.cmClientAsUser(trans.getUserPrincipal(), new Retryable<List<Artifact>>() {
                     @Override
@@ -177,18 +177,19 @@ public class CredDetail extends Page {
                         if (fu.get(AAFcli.timeout())) {
                             // Organize User entries
                             Map<String,List<Map<Integer,List<User>>>> users = new HashMap<>();
-        
+
                             List<Map<Integer,List<User>>> lmu=null;
                             Map<Integer, List<User>> mu = null;
                             List<User> lu = null;
-                            
+
                             for (User u : fu.value.getUser()) {
                                 if (u.getType() == 200) {
                                     lns.remove(u.getId());
                                 }
                                 lmu = users.get(u.getId());
                                 if (lmu==null) {
-                                    users.put(u.getId(),lmu=new ArrayList<>());
+                                    lmu=new ArrayList<>();
+                                    users.put(u.getId(),lmu);
                                 }
                                 mu=null;
                                 for (Map<Integer,List<User>> xmu : lmu) {
@@ -196,14 +197,16 @@ public class CredDetail extends Page {
                                         mu = xmu;
                                     }
                                 }
-                                
+
                                 if (mu==null) {
-                                    lmu.add(mu=new HashMap<>());
+                                    mu=new HashMap<>();
+                                    lmu.add(mu);
                                 }
-                                
+
                                 lu = mu.get(u.getType());
                                 if (lu==null) {
-                                    mu.put(u.getType(),lu = new ArrayList<>());
+                                    lu = new ArrayList<>();
+                                    mu.put(u.getType(),lu);
                                 }
                                 lu.add(u);
                             }
@@ -215,7 +218,7 @@ public class CredDetail extends Page {
                                 HTMLGen hgen = cd.clone(buttons);
                                 hgen.leaf("button","onclick=divVisibility('"+key+"');","class=button").text("Expand").end();
                                 hgen.leaf(HTMLGen.A,"class=button","class=greenbutton","href="+CredHistory.HREF+"?user="+ulm.getKey()).text("History").end();
-                                
+
                                 StringWriter creds = new StringWriter();
                                 hgen = cd.clone(creds);
                                 Mark div = hgen.divID(key,ulm.getKey().equals(id)?"":"style=display:none;");
@@ -226,7 +229,7 @@ public class CredDetail extends Page {
                                         Mark uRow = new Mark();
                                         String cls;
                                         boolean first = true;
-                                        
+
                                         for ( Entry<Integer, List<User>> es : miu.entrySet()) {
                                             Collections.sort(es.getValue(),new Comparator<User>() {
                                                 @Override
@@ -256,8 +259,8 @@ public class CredDetail extends Page {
                                                     if (first) {
                                                         hgen.leaf(HTMLGen.TD,cls="class=detailFirst",STYLE_WIDTH_10);
                                                         switch(es.getKey()) {
-                                                            case 1:   
-                                                            case 2:      hgen.text("Password"); 
+                                                            case 1:
+                                                            case 2:      hgen.text("Password");
                                                                     break;
                                                             case 10:  hgen.text("Certificate"); break;
                                                         }
@@ -266,7 +269,7 @@ public class CredDetail extends Page {
                                                     }
                                                     hgen.end();
                                                     hgen.incr(HTMLGen.TD,cls,STYLE_WIDTH_20);
-                                                    
+
                                                     hgen.leaf(HTMLGen.A,
                                                             "class=button",
                                                             "href="+PassDeleteAction.HREF+
@@ -284,7 +287,7 @@ public class CredDetail extends Page {
                                                     hgen.end().leaf(HTMLGen.TD,cls,STYLE_WIDTH_70)
                                                         .text(Chrono.niceDateStamp(u.getExpires()))
                                                         .end();
-                                        
+
                                                     hgen.end(uRow);
                                                 }
                                             }
@@ -305,15 +308,15 @@ public class CredDetail extends Page {
                                                     .end(uRow);
 
                                             }
-                                         
+
                                         }
                                         hgen.end(utable);
                                     }
-                                    
+
                                 hgen.end(div);
 
                                 rv.add(new AbsCell[] {
-                                        new TextCell(ulm.getKey(),STYLE_WIDTH_15), 
+                                        new TextCell(ulm.getKey(),STYLE_WIDTH_15),
                                         new TextCell(buttons.toString(),STYLE_WIDTH_5),
                                         new TextCell(creds.toString(),STYLE_WIDTH_70)
                                     });
index 7e3962e..af26a43 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -61,7 +61,7 @@ public class CredHistory extends Page {
     static final String HREF = "/gui/credHistory";
     static final String FIELDS[] = {"user","dates"};
 
-    
+
     public CredHistory(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, FIELDS,
             new BreadCrumbs(breadcrumbs),
@@ -74,24 +74,24 @@ public class CredHistory extends Page {
                         @Override
                         public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {
                             String obUser = trans.get(user, null);
-                            
+
                             // Use Javascript to make the table title more descriptive
                             hgen.js()
                             .text("var caption = document.querySelector(\".title\");")
-                            .text("caption.innerHTML='History for User [ " + obUser + " ]';")                        
+                            .text("caption.innerHTML='History for User [ " + obUser + " ]';")
                             .done();
-                            
+
                             // Use Javascript to change Link Target to our last visited Detail page
                             String lastPage = CredDetail.HREF + "?role=" + obUser;
                             hgen.js()
-                                .text("alterLink('roledetail', '"+lastPage + "');")                            
+                                .text("alterLink('roledetail', '"+lastPage + "');")
                                 .done();
-                            
+
                             hgen.br();
                             hgen.leaf("a", "href=#advanced_search","onclick=divVisibility('advanced_search');","class=greenbutton").text("Advanced Search").end()
                                 .divID("advanced_search", "style=display:none");
                             hgen.incr("table");
-                                
+
                             addDateRow(hgen,"Start Date");
                             addDateRow(hgen,"End Date");
                             hgen.incr("tr").incr("td");
@@ -106,9 +106,9 @@ public class CredHistory extends Page {
             }
 
             );
-        
+
     }
-    
+
     private static void addDateRow(HTMLGen hgen, String s) {
         hgen
             .incr("tr")
@@ -129,16 +129,16 @@ public class CredHistory extends Page {
             .end()
             .incr("td")
             .tagOnly("input","type=number","id=year"+s.substring(0, s.indexOf(' ')),"required",
-                    "value="+Calendar.getInstance().get(Calendar.YEAR), "min=1900", 
+                    "value="+Calendar.getInstance().get(Calendar.YEAR), "min=1900",
                     "max="+Calendar.getInstance().get(Calendar.YEAR),
                     "placeholder=Year").end()
             .end();
     }
-    
-    
+
+
     /**
      * Implement the Table Content for History
-     * 
+     *
      * @author Jonathan
      *
      */
@@ -146,25 +146,25 @@ public class CredHistory extends Page {
         private static final String[] headers = new String[] {"Date","User","Memo"};
         private Slot user;
         private Slot dates;
-        
+
         public Model(AuthzEnv env) {
             user = env.slot(NAME+".user");
             dates = env.slot(NAME+".dates");
         }
-        
+
         @Override
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             final String oName = trans.get(user,null);
             final String oDates = trans.get(dates,null);
-            
+
             Cells rv = Cells.EMPTY;
             if (oName!=null) {
-                
+
                 try {
                     rv = gui.clientAsUser(trans.getUserPrincipal(), new Retryable<Cells>() {
                         @Override
@@ -181,14 +181,14 @@ public class CredHistory extends Page {
                                     tt.done();
                                     tt = trans.start("Load History Data", Env.SUB);
                                     List<Item> histItems = fh.value.getItem();
-                                    
+
                                     java.util.Collections.sort(histItems, new Comparator<Item>() {
                                         @Override
                                         public int compare(Item o1, Item o2) {
                                             return o2.getTimestamp().compare(o1.getTimestamp());
                                         }
                                     });
-                                    
+
                                     for (Item i : histItems) {
                                         String user = i.getUser();
                                         AbsCell userCell = new TextCell(user);
@@ -209,7 +209,7 @@ public class CredHistory extends Page {
                                 }
                             } finally {
                                 tt.done();
-                            }    
+                            }
                             return new Cells(rv,msg);
                         }
                     });
index 3553da2..7ac17ef 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 
 public class Home extends Page {
     public static final String HREF = "/gui/home";
-    
+
     public Home(final AAF_GUI gui) throws APIException, IOException {
         super(gui.env,"Home",HREF, NO_FIELDS, new NamedCode(false,"content") {
             @Override
@@ -63,5 +63,5 @@ public class Home extends Page {
             }
         });
     }
-    
+
 }
index 3fd69ac..aa10289 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,16 +42,16 @@ public class LoginLanding extends Page {
     static final String NAME = "Login";
     static final String fields[] = {"id","password","environment"};
     static final String envs[] = {"DEV","TEST","PROD"};
-    
+
     public LoginLanding(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env, NAME,HREF, fields, new NamedCode(true, "content") {
             @Override
             public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                 hgen.leaf("p").text("No login credentials are found in your current session. " +
                          "Choose your preferred login option to continue.").end();
-                
+
                 Mark loginPaths = hgen.divID("Pages");
-                
+
                 cache.dynamic(hgen, new DynamicCode<HTMLGen, AAF_GUI, AuthzTrans>() {
                     @Override
                     public void code(AAF_GUI authGUI, AuthzTrans trans, Cache<HTMLGen> cache, HTMLGen xgen) throws APIException, IOException {
@@ -74,13 +74,13 @@ public class LoginLanding extends Page {
 //                    .incr("p", "id=tguard","style=display:none").text("this will redirect to tGuard login").end()
 //                hgen.leaf("a", "href=#","onclick=divVisibility('basicauth');").text("AAF Basic Auth").end();
                 hgen.end(loginPaths);
-                
+
 //                    hgen.incr("form","method=post","style=display:none","id=basicauth","gui/home?Authentication=BasicAuth");
 //                    Mark table = new Mark(TABLE);
 //                    hgen.incr(table);
 //                    cache.dynamic(hgen, new DynamicCode<HTMLGen, AuthGUI, AuthzTrans>() {
 //                        @Override
-//                        public void code(final AuthGUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    
+//                        public void code(final AuthGUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)
 //                                throws APIException, IOException {
 //                            hgen
 //                            .input(fields[0],"Username",true)
@@ -97,9 +97,9 @@ public class LoginLanding extends Page {
 //                        for (String env : envs) {
 //                            hgen.incr("option", "value="+env).text(env).end();
 //                        }
-//                        hgen            
-//                        .end(selectRow) 
-                            
+//                        hgen
+//                        .end(selectRow)
+
 //                        hgen.end();
 //                        }
 //                    });
@@ -107,7 +107,7 @@ public class LoginLanding extends Page {
 //                    hgen.tagOnly("input", "type=submit", "value=Submit")
 //                        .tagOnly("input", "type=reset", "value=Reset")
 //                    .end();
-            
+
 
             }
         });
index f20caeb..88ee139 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,8 +40,7 @@ public class LoginLandingAction extends Page {
             new BreadCrumbs(breadcrumbs),
             new NamedCode(true,"content") {
                 final Slot sID = gui.env.slot(LoginLanding.NAME+'.'+LoginLanding.fields[0]);
-//                final Slot sPassword = gui.env.slot(LoginLanding.NAME+'.'+LoginLanding.fields[1]);
-                
+
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI, AuthzTrans>() {
@@ -52,11 +51,11 @@ public class LoginLandingAction extends Page {
 
                             hgen.p("User: "+username);
                             hgen.p("Pass: ********");
-                            
+
                             // TODO: clarification from JG
                             // put in request header?
                             // then pass through authn/basicAuth call?
-                            
+
                         }
                     });
                 }
index 6b1c612..38e7e2a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,7 +58,7 @@ import aaf.v2_0.Role;
 import aaf.v2_0.Roles;
 
 public class NsDetail extends Page {
-    
+
     public static final String HREF = "/gui/nsdetail";
     public static final String NAME = "NsDetail";
     public static enum NS_FIELD { OWNERS, ADMINS, ROLES, PERMISSIONS, CREDS};
@@ -69,7 +69,7 @@ public class NsDetail extends Page {
 
 
     public NsDetail(final AAF_GUI gui, Page ... breadcrumbs) throws APIException, IOException {
-        super(gui.env, NAME, HREF, new String[] {"ns"}, 
+        super(gui.env, NAME, HREF, new String[] {"ns"},
                 new BreadCrumbs(breadcrumbs),
                 new Table<AAF_GUI,AuthzTrans>("Namespace Details",gui.env.newTransNoAvg(),model=new Model(),"class=detail")
                 );
@@ -85,7 +85,7 @@ public class NsDetail extends Page {
 
     /**
      * Implement the table content for Namespace Detail
-     * 
+     *
      * @author Jeremiah
      *
      */
@@ -123,11 +123,11 @@ public class NsDetail extends Page {
                             tt.done();
                             try {
 //                                TimeTaken tt = trans.start("Load Data", Env.SUB);
-                                
+
                                 for (Ns n : fn.value.getNs()) {
                                     String desc = (n.getDescription()!=null?n.getDescription():BLANK);
                                     rv.add(new AbsCell[]{new TextCell("Description:"),new TextCell(desc)});
-                                    
+
                                     addField(trans, nsName, rv, n.getAdmin(), NS_FIELD.ADMINS);
                                     addField(trans, nsName, rv, n.getResponsible(), NS_FIELD.OWNERS);
 
@@ -138,10 +138,10 @@ public class NsDetail extends Page {
                                             new TextCell("Credentials"),
                                             new TextCell(sw.toString())
                                         });
-                                    
-            
+
+
                                     Future<Roles> fr = client.read(
-                                                    "/authz/roles/ns/"+nsName, 
+                                                    "/authz/roles/ns/"+nsName,
                                                     gui.getDF(Roles.class)
                                                     );
                                     List<String> roles = new ArrayList<>();
@@ -151,14 +151,14 @@ public class NsDetail extends Page {
                                         }
                                     }
                                     addField(trans, nsName, rv, roles, NS_FIELD.ROLES);
-                                    
-                                    
+
+
                                     Future<Perms> fp = client.read(
-                                                    "/authz/perms/ns/"+nsName, 
+                                                    "/authz/perms/ns/"+nsName,
                                                     gui.getDF(Perms.class)
                                                     );
                                     List<String> perms = new ArrayList<>();
-            
+
                                     if (fp.get(AAFcli.timeout())) {
                                         for (Perm p : fp.value.getPerm()) {
                                             perms.add(p.getType() + "|" + p.getInstance() + "|" + p.getAction());
@@ -166,7 +166,7 @@ public class NsDetail extends Page {
                                     }
                                     addField(trans, nsName, rv, perms, NS_FIELD.PERMISSIONS);
                                 }
-                                String historyLink = NsHistory.HREF 
+                                String historyLink = NsHistory.HREF
                                         + "?name=" + nsName;
                                 rv.add(new AbsCell[] {new RefCell("See History",historyLink,false,"class=greenbutton")});
                             } finally {
@@ -197,7 +197,7 @@ public class NsDetail extends Page {
                         String user = values.get(i);
                         AbsCell userCell = (new TextCell(user));
                         rv.add(new AbsCell[] {
-                                label, 
+                                label,
                                 userCell
                         });
                     }
@@ -217,14 +217,14 @@ public class NsDetail extends Page {
                         AbsCell label = (i==0?new TextCell(sentenceCase(field)+":","style=width:20%"):AbsCell.Null);
                         String perm = values.get(i);
                         String[] fields = perm.split("\\|");
-                        String grantLink = locate_url  
+                        String grantLink = locate_url
                                 + PermGrantForm.HREF
                                 + "?type=" + fields[0].trim()
                                 + "&amp;instance=" + fields[1].trim()
                                 + "&amp;action=" + fields[2].trim();
-                        
+
                         rv.add(new AbsCell[] {
-                                label, 
+                                label,
                                 new TextCell(perm,"style=width:60%;"),
                                 new RefCell("Grant", grantLink,false,"class=button","style=width:20%;")
                         });
@@ -239,6 +239,6 @@ public class NsDetail extends Page {
             String sField = field.toString();
             return sField.substring(0, 1).toUpperCase() + sField.substring(1).toLowerCase();
         }
-    
+
     }
 }
index dc9119b..6994a2c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,9 +58,9 @@ public class NsHistory extends Page {
     static final String NAME="NsHistory";
     static final String HREF = "/gui/nsHistory";
     static final String FIELDS[] = {"name","dates"};
-    static enum Month { JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY, 
+    static enum Month { JANUARY, FEBRUARY, MARCH, APRIL, MAY, JUNE, JULY,
                             AUGUST, SEPTEMBER, OCTOBER, NOVEMBER, DECEMBER };
-    
+
     public NsHistory(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, FIELDS,
             new BreadCrumbs(breadcrumbs),
@@ -73,24 +73,24 @@ public class NsHistory extends Page {
                         @Override
                         public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {
                             String obName = trans.get(name, null);
-                            
+
                             // Use Javascript to make the table title more descriptive
                             hgen.js()
                             .text("var caption = document.querySelector(\".title\");")
-                            .text("caption.innerHTML='History for Namespace [ " + obName + " ]';")                        
+                            .text("caption.innerHTML='History for Namespace [ " + obName + " ]';")
                             .done();
-                            
+
                             // Use Javascript to change Link Target to our last visited Detail page
                             String lastPage = NsDetail.HREF + "?name=" + obName;
                             hgen.js()
-                                .text("alterLink('nsdetail', '"+lastPage + "');")                            
+                                .text("alterLink('nsdetail', '"+lastPage + "');")
                                 .done();
-                            
+
                             hgen.br();
                             hgen.leaf("a","href=#advanced_search","onclick=divVisibility('advanced_search');","class=greenbutton").text("Advanced Search").end()
                                 .divID("advanced_search", "style=display:none");
                             hgen.incr("table");
-                                
+
                             addDateRow(hgen,"Start Date");
                             addDateRow(hgen,"End Date");
                             hgen.incr("tr").incr("td");
@@ -99,7 +99,7 @@ public class NsHistory extends Page {
                             hgen.end().end();
                             hgen.end();
                             hgen.end();
-                                
+
                         }
                     });
                 }
@@ -128,18 +128,18 @@ public class NsHistory extends Page {
             .end()
             .incr("td")
             .tagOnly("input","type=number","id=year"+s.substring(0, s.indexOf(' ')),"required",
-                    "value="+Calendar.getInstance().get(Calendar.YEAR), "min=1900", 
+                    "value="+Calendar.getInstance().get(Calendar.YEAR), "min=1900",
                     "max="+Calendar.getInstance().get(Calendar.YEAR),
                     "placeholder=Year").end()
             .end();
     }
-        
 
-    
-    
+
+
+
     /**
      * Implement the Table Content for History
-     * 
+     *
      * @author Jeremiah
      *
      */
@@ -147,26 +147,26 @@ public class NsHistory extends Page {
         private static final String[] headers = new String[] {"Date","User","Memo"};
         private Slot name;
         private Slot dates;
-        
+
         public Model(AuthzEnv env) {
             name = env.slot(NAME+".name");
             dates = env.slot(NAME+".dates");
         }
-        
+
         @Override
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             final String oName = trans.get(name,null);
             final String oDates = trans.get(dates,null);
-            
+
             if (oName==null) {
                 return Cells.EMPTY;
             }
-            
+
             final ArrayList<AbsCell[]> rv = new ArrayList<>();
             String msg = null;
             final TimeTaken tt = trans.start("AAF Get History for Namespace ["+oName+"]",Env.REMOTE);
@@ -183,18 +183,18 @@ public class NsHistory extends Page {
                             TimeTaken tt2 = trans.start("Load History Data", Env.SUB);
                             try {
                                 List<Item> histItems = fh.value.getItem();
-                                
+
                                 java.util.Collections.sort(histItems, new Comparator<Item>() {
                                     @Override
                                     public int compare(Item o1, Item o2) {
                                         return o2.getTimestamp().compare(o1.getTimestamp());
                                     }
                                 });
-                                
+
                                 for (Item i : histItems) {
                                     String user = i.getUser();
                                     AbsCell userCell = new TextCell(user);
-                                    
+
                                     String memo = i.getMemo().replace("<script>", "&lt;script&gt;").replace("</script>", "&lt;/script&gt;");
                                     rv.add(new AbsCell[] {
                                             new TextCell(i.getTimestamp().toGregorianCalendar().getTime().toString()),
index cb942c6..c93d156 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,7 +55,7 @@ public class NsInfoAction extends Page {
                 final Slot sPassword = gui.env.slot(PassChangeForm.NAME+'.'+PassChangeForm.fields[2]);
                 final Slot sPassword2 = gui.env.slot(PassChangeForm.NAME+'.'+PassChangeForm.fields[3]);
                 final Slot startDate = gui.env.slot(PassChangeForm.NAME+'.'+PassChangeForm.fields[4]);
-                
+
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI, AuthzTrans>() {
@@ -65,10 +65,10 @@ public class NsInfoAction extends Page {
                             String currPass = trans.get(sCurrPass,null);
                             final String password = trans.get(sPassword,null);
                             String password2 = trans.get(sPassword2,null);
-                            
+
                             // Run Validations
                             boolean fail = true;
-                            
+
                             if (id==null || id.indexOf('@')<=0) {
                                 hgen.p("Data Entry Failure: Please enter a valid ID, including domain.");
                             } else if (password == null || password2 == null || currPass == null) {
@@ -114,13 +114,13 @@ public class NsInfoAction extends Page {
                                                                 throw new CadiException(e);
                                                             }
                                                         }
-                                                        
+
                                                         fcr = client.create(
                                                                 "/authn/cred",
                                                                 gui.getDF(CredRequest.class),
                                                                 cred
                                                                 );
-                    
+
                                                         if (fcr.get(5000)) {
                                                             // Do Remote Call
                                                             hgen.p("New Password has been added.");
@@ -148,7 +148,7 @@ public class NsInfoAction extends Page {
                         if (fail) {
                             hgen.incr("a",true,"href="+PassChangeForm.HREF+"?id="+id).text("Try again").end();
                         } else {
-                            hgen.incr("a",true,"href="+Home.HREF).text("Home").end(); 
+                            hgen.incr("a",true,"href="+Home.HREF).text("Home").end();
                         }
                     }
                 });
index 2306a1a..cdd9755 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,7 +55,7 @@ public class NsInfoForm extends Page {
     static final String HREF = "/gui/onboard";
     static final String NAME = "Onboarding";
     static final String fields[] = {"ns","description","mots","owners","admins"};
-    
+
     public NsInfoForm(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, fields,
             new BreadCrumbs(breadcrumbs),
@@ -79,7 +79,7 @@ public class NsInfoForm extends Page {
                     public void code(final AAF_GUI gui, final AuthzTrans trans, final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {
                         final String incomingID= trans.get(sID, "");
                         final String[] info = new String[fields.length];
-                        final Object own_adm[] = new Object[2]; 
+                        final Object own_adm[] = new Object[2];
                         for (int i=0;i<info.length;++i) {
                             info[i]="";
                         }
index 6f090a4..3c3c0ed 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,13 +55,13 @@ public class NssShow extends Page {
 
     public NssShow(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env, "MyNamespaces",HREF, NO_FIELDS,
-                new BreadCrumbs(breadcrumbs), 
-                new Table<AAF_GUI,AuthzTrans>("Namespaces I administer",gui.env.newTransNoAvg(),new Model(true,"Administrator",gui.env), 
+                new BreadCrumbs(breadcrumbs),
+                new Table<AAF_GUI,AuthzTrans>("Namespaces I administer",gui.env.newTransNoAvg(),new Model(true,"Administrator",gui.env),
                         "class=std", "style=display: inline-block; width: 45%; margin: 10px;"),
                 new Table<AAF_GUI,AuthzTrans>("Namespaces I own",gui.env.newTransNoAvg(),new Model(false,"Owner",gui.env),
                         "class=std", "style=display: inline-block; width: 45%; margin: 10px;"));
     }
-    
+
     private static class Model extends TableData<AAF_GUI,AuthzTrans> {
         private String[] headers;
         private String privilege = null;
@@ -80,7 +80,7 @@ public class NssShow extends Page {
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             ArrayList<AbsCell[]> rv = new ArrayList<>();
@@ -104,7 +104,7 @@ public class NssShow extends Page {
                                             }
                                         });
                                         trans.put(sNssByUser,nss);
-                                    } 
+                                    }
                                 } finally {
                                     tt.done();
                                 }
@@ -120,7 +120,7 @@ public class NssShow extends Page {
                     tt.done();
                 }
             }
-            
+
             if (nss!=null) {
                 for (Ns n : nss) {
                     if ((isAdmin && !n.getAdmin().isEmpty())
@@ -137,6 +137,6 @@ public class NssShow extends Page {
             return new Cells(rv,null);
         }
     }
-    
+
 
 }
index 10af074..4fbce00 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -65,7 +65,7 @@ public class PassChangeAction extends Page {
                 final Slot sPassword2 = gui.env.slot(PassChangeForm.NAME+'.'+PassChangeForm.fields[3]);
                 final Slot startDate = gui.env.slot(PassChangeForm.NAME+'.'+PassChangeForm.fields[4]);
                 final Slot sNS = gui.env.slot(PassChangeForm.NAME+'.'+PassChangeForm.fields[5]);
-                
+
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI, AuthzTrans>() {
@@ -76,10 +76,10 @@ public class PassChangeAction extends Page {
                             final String password = trans.get(sPassword,null);
                             final String password2 = trans.get(sPassword2,null);
                             final String ns = trans.get(sNS, null);
-                            
+
                             // Run Validations
                             boolean fail = true;
-                            
+
                             if (id==null || id.indexOf('@')<=0) {
                                 hgen.p("Data Entry Failure: Please enter a valid ID, including domain.");
                             } else if (password == null || password2 == null) {
@@ -121,7 +121,7 @@ public class PassChangeAction extends Page {
                                                                     }
                                                                     return true; // no existing, no expired password
                                                                 } else {
-                                                                    if (fc.code()==404) { // not found... 
+                                                                    if (fc.code()==404) { // not found...
                                                                         return true;
                                                                     } else {
                                                                         trans.error().log(gui.aafCon.readableErrMsg(fc));
@@ -169,7 +169,7 @@ public class PassChangeAction extends Page {
                                                             throw new CadiException(e);
                                                         }
                                                     }
-                                                    
+
                                                     Future<CredRequest> fcr = gui.clientAsUser(trans.getUserPrincipal()).create("/authn/cred",gui.getDF(CredRequest.class),cred);
                                                     if (fcr.get(AAFcli.timeout())) {
                                                         // Do Remote Call
@@ -182,16 +182,16 @@ public class PassChangeAction extends Page {
                                                 } finally {
                                                     tt.done();
                                                 }
-                                            } 
+                                            }
                                             return fail;
                                         }
-                                        
+
                                     });
                             } catch (Exception e) {
                                 hgen.p("Unknown Error");
                                 e.printStackTrace();
                             }
-                                
+
                         }
                         hgen.br();
                         if (fail) {
index 499c02d..5b98d01 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,15 +56,15 @@ public class PassChangeForm extends Page {
     static final String HREF = "/gui/passwd";
     static final String NAME = "PassChange";
     static final String fields[] = {"id","current","password","password2","startDate","ns"};
-    
+
     public PassChangeForm(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, fields,
             new BreadCrumbs(breadcrumbs),
-            new NamedCode(true,NAME) {    
+            new NamedCode(true,NAME) {
                 private final Slot sID = gui.env.slot(PassChangeForm.NAME+'.'+PassChangeForm.fields[0]);
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
-                    
+
                     // p tags not closing right using .p() - causes issues in IE8 password form - so using leaf for the moment
                     hgen.incr(HTMLGen.H4,true,"style=margin: 0em 0em .4em 0em")
                         .text("You are <i>adding</i> a New Password in the AAF System.")
@@ -72,7 +72,7 @@ public class PassChangeForm extends Page {
 
                     Mark form = new Mark();
                     hgen.incr(form,"form","method=post");
-                    
+
                     Mark table = new Mark(TABLE);
                     hgen.incr(table);
 
@@ -96,7 +96,7 @@ public class PassChangeForm extends Page {
                                         } else {
                                             // Owners/or the IDs themselves are allowed to reset password without previous one
                                             skipCurrent=skipCurrent(trans, user);
-                                            
+
                                             if (!skipCurrent) {
                                                 final String id = incomingID;
                                                 try {
@@ -113,7 +113,7 @@ public class PassChangeForm extends Page {
                                                                 }
                                                                 return true; // no existing, no expired password
                                                             } else {
-                                                                if (fc.code()==404) { // not found... 
+                                                                if (fc.code()==404) { // not found...
                                                                     return true;
                                                                 } else {
                                                                     trans.error().log(gui.aafCon.readableErrMsg(fc));
@@ -127,13 +127,13 @@ public class PassChangeForm extends Page {
                                                 }
                                             }
                                         }
-                                    }                                    
+                                    }
                                 } catch (OrganizationException e) {
                                     hgen.incr(HTMLGen.H4,"style=color:red;").text("Error: ")
                                         .text(e.getMessage()).end();
                                 }
                             }
-                            
+
                             hgen.input(fields[0],"ID*",true,"value="+incomingID,(incomingID.length()==0?"":"readonly"));
                             if (!skipCurrent) {
                                 hgen.input(fields[1],"Current Password*",true,"type=password");
@@ -159,7 +159,7 @@ public class PassChangeForm extends Page {
                            "This allows you to migrate services to this new password until the old ones expire.").br().br()
                         .p("Note: You must be an Admin of the Namespace where the MechID is defined.").br()
                         ;
-                    
+
                     Mark div = hgen.divID("passwordRules");
                     cache.dynamic(hgen, new DynamicCode<HTMLGen, AAF_GUI, AuthzTrans>() {
                         @Override
index f66e8bc..817f3e8 100644 (file)
@@ -3,13 +3,14 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2019 IBM.
  * ===========================================================================
  * 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.
@@ -43,14 +44,14 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 import aaf.v2_0.CredRequest;
 
 public class PassDeleteAction extends Page {
-    public static final String NAME = "PassDeleteAction";
+    public static final String CLASS = "PassDeleteAction";
     public static final String HREF = "/gui/passdelete";
-    private static enum Params{id,date,ns,type};
-    
+    private enum Params{id,date,ns,type};
+
     public PassDeleteAction(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
-        super(gui.env,NAME,HREF,Params.values(),
+        super(gui.env,CLASS,HREF,Params.values(),
             new BreadCrumbs(breadcrumbs),
-            new SlotCode<AuthzTrans>(true,gui.env,NAME,Params.values()) {
+            new SlotCode<AuthzTrans>(true,gui.env,CLASS,Params.values()) {
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI, AuthzTrans>() {
index 585a75a..694fefd 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -62,10 +62,10 @@ public class PendingRequestsShow extends Page {
     public static final String NAME = "MyRequests";
     private static final String[] FIELDS = new String[] {"as_user"}; // as_user Checked in Display
     private static final String AS_USER=NAME+".as_user";
-    
+
     public PendingRequestsShow(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env, NAME,HREF, FIELDS,
-            new BreadCrumbs(breadcrumbs), 
+            new BreadCrumbs(breadcrumbs),
             new TopOfPage(gui.env,true, "expedite"),
             new Table<AAF_GUI,AuthzTrans>("Pending Requests",gui.env.newTransNoAvg(),new Model(gui.env), "class=std")
         );
@@ -98,7 +98,7 @@ public class PendingRequestsShow extends Page {
                         .leaf("a","href=#expedite_directions","onclick=divVisibility('expedite_directions');")
                             .text("Click Here").end()
                         .divID("expedite_directions", "style=display:none");
-                    
+
                     hgen
                         .incr(HTMLGen.OL)
                         .incr(HTMLGen.LI)
@@ -120,12 +120,12 @@ public class PendingRequestsShow extends Page {
 
     /**
      * Implement the Table Content for Requests by User
-     * 
+     *
      * @author Jeremiah
      *
      */
     private static class Model extends TableData<AAF_GUI,AuthzTrans> {
-        final long NUM_100NS_INTERVALS_SINCE_UUID_EPOCH = 0x01b21dd213814000L;
+        final static long NUM_100NS_INTERVALS_SINCE_UUID_EPOCH = 0x01b21dd213814000L;
         private final Slot sAsUser;
         private static final String[] headers = new String[] {"Request Date","Status","Memo","Approver"};
 
@@ -137,7 +137,7 @@ public class PendingRequestsShow extends Page {
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             final ArrayList<AbsCell[]> rv = new ArrayList<>();
@@ -163,12 +163,11 @@ public class PendingRequestsShow extends Page {
                                             return id1.timestamp()<=id2.timestamp()?1:-1;
                                         }
                                     });
-                                    
+
                                     String prevTicket = null;
                                     for (Approval a : approvals) {
                                         String approver = a.getApprover();
-//                                        String approverShort = approver.substring(0,approver.indexOf('@'));
-                                        
+
                                         AbsCell tsCell = null;
                                         String ticket = a.getTicket();
                                         if (ticket==null || ticket.equals(prevTicket)) {
@@ -180,7 +179,7 @@ public class PendingRequestsShow extends Page {
                                                     RequestDetail.HREF + "?ticket=" + ticket,false);
                                             prevTicket = ticket;
                                         }
-                                        
+
                                         AbsCell approverCell = new TextCell(approver);
                                         AbsCell[] sa = new AbsCell[] {
                                             tsCell,
index 4a5a940..00bec4c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -53,7 +53,7 @@ import aaf.v2_0.Perms;
 
 /**
  * Detail Page for Permissions
- * 
+ *
  * @author Jonathan
  *
  */
@@ -71,7 +71,7 @@ public class PermDetail extends Page {
 
     /**
      * Implement the table content for Permissions Detail
-     * 
+     *
      * @author Jonathan
      *
      */
@@ -91,7 +91,7 @@ public class PermDetail extends Page {
             v.permTypeWithUser(trans.user(),pType)
              .permInstance(pInstance)
              .permAction(pAction);
-            
+
             if (v.err()) {
                 trans.warn().printf("Error in PermDetail Request: %s", v.errs());
                 return Cells.EMPTY;
@@ -107,7 +107,7 @@ public class PermDetail extends Page {
                         TimeTaken tt = trans.start("AAF Perm Details",Env.REMOTE);
                         try {
                             Future<Perms> fp= client.read("/authz/perms/"+pType + '/' + pInstance + '/' + pAction,gui.getDF(Perms.class));
-                    
+
                             if (fp.get(AAF_GUI.TIMEOUT)) {
                                 tt.done();
                                 tt = trans.start("Load Data", Env.SUB);
@@ -132,9 +132,9 @@ public class PermDetail extends Page {
                                         }
                                     }
                                 }
-                                String historyLink = PermHistory.HREF 
+                                String historyLink = PermHistory.HREF
                                         + "?type=" + pType + "&instance=" + pInstance + "&action=" + pAction;
-                                
+
                                 rv.add(new AbsCell[] {new RefCell("See History",historyLink,false,"class=greenbutton")});
                             } else {
                                 rv.add(new AbsCell[] {new TextCell(
@@ -156,5 +156,5 @@ public class PermDetail extends Page {
             return new Cells(rv,null);
         }
     }
-}        
+}
         
\ No newline at end of file
index 9d53c53..4512e47 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,8 +45,8 @@ import aaf.v2_0.Pkey;
 import aaf.v2_0.RolePermRequest;
 
 public class PermGrantAction extends Page {
-    
-    
+
+
     public PermGrantAction(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,PermGrantForm.NAME, PermGrantForm.HREF, PermGrantForm.fields,
             new BreadCrumbs(breadcrumbs),
@@ -55,7 +55,7 @@ public class PermGrantAction extends Page {
                 final Slot sInstance = gui.env.slot(PermGrantForm.NAME+'.'+PermGrantForm.fields[1]);
                 final Slot sAction = gui.env.slot(PermGrantForm.NAME+'.'+PermGrantForm.fields[2]);
                 final Slot sRole = gui.env.slot(PermGrantForm.NAME+'.'+PermGrantForm.fields[3]);
-                
+
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI, AuthzTrans>() {
@@ -66,16 +66,16 @@ public class PermGrantAction extends Page {
                             String instance = trans.get(sInstance,null);
                             String action = trans.get(sAction,null);
                             String role = trans.get(sRole,null);
-                            
-                            String lastPage = PermGrantForm.HREF 
+
+                            String lastPage = PermGrantForm.HREF
                                     + "?type=" + type + "&instance=" + instance + "&action=" + action;
-                            
+
                             // Run Validations
                             boolean fail = true;
-                        
+
                             TimeTaken tt = trans.start("AAF Grant Permission to Role",Env.REMOTE);
                             try {
-                                
+
                                 final RolePermRequest grantReq = new RolePermRequest();
                                 Pkey pkey = new Pkey();
                                 pkey.setType(type);
@@ -83,7 +83,7 @@ public class PermGrantAction extends Page {
                                 pkey.setAction(action);
                                 grantReq.setPerm(pkey);
                                 grantReq.setRole(role);
-                                
+
                                 fail = gui.clientAsUser(trans.getUserPrincipal(), new Retryable<Boolean>() {
                                     @Override
                                     public Boolean code(Rcli<?> client) throws CadiException, ConnectException, APIException {
@@ -114,7 +114,7 @@ public class PermGrantAction extends Page {
                             } finally {
                                 tt.done();
                             }
-                                
+
                             hgen.br();
                             hgen.incr("a",true,"href="+lastPage);
                             if (fail) {
@@ -124,7 +124,7 @@ public class PermGrantAction extends Page {
                             }
                             hgen.end();
                             hgen.js()
-                                .text("alterLink('permgrant', '"+lastPage + "');")                            
+                                .text("alterLink('permgrant', '"+lastPage + "');")
                                 .done();
 
                         }
index 7195806..4a6e1f4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -53,7 +53,7 @@ public class PermGrantForm extends Page {
     static final String HREF = "/gui/permgrant";
     static final String NAME = "Permission Grant";
     static final String fields[] = {"type","instance","action","role"};
-    
+
     public PermGrantForm(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, fields,
             new BreadCrumbs(breadcrumbs),
@@ -72,16 +72,15 @@ public class PermGrantForm extends Page {
                 cache.dynamic(hgen, new DynamicCode<HTMLGen, AAF_GUI, AuthzTrans>() {
                     @Override
                     public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {
-                        
+
                         Mark copyRoleJS = new Mark();
                         hgen.js(copyRoleJS);
                         hgen.text("function copyRole(role) {");
                         hgen.text("var txtRole = document.querySelector(\"#role\");");
-//                        hgen.text("if (role==;");
                         hgen.text("txtRole.value=role;");
                         hgen.text("}");
                         hgen.end(copyRoleJS);
-                        
+
                         String typeValue = trans.get(type, "");
                         String instanceValue = trans.get(instance, "");
                         String actionValue = trans.get(action, "");
@@ -91,7 +90,7 @@ public class PermGrantForm extends Page {
                         .input(fields[0],"Perm Type",true,"value="+typeValue,"disabled")
                         .input(fields[1],"Perm Instance",true,"value="+instanceValue,"disabled")
                         .input(fields[2],"Perm Action",true,"value="+actionValue,"disabled");
-                        
+
                         // select & options are not an input type, so we must create table row & cell tags
                         Mark selectRow = new Mark();
                         hgen
@@ -106,7 +105,7 @@ public class PermGrantForm extends Page {
                             hgen.incr("option", "value="+role).text(role).end();
                         }
                         hgen
-                        .incr("option", "value=").text("Other").end()                    
+                        .incr("option", "value=").text("Other").end()
                         .end(selectRow);
                         if (roleValue==null) {
                             hgen.input(fields[3],"Role", true, "placeholder=or type a role here");
@@ -123,7 +122,7 @@ public class PermGrantForm extends Page {
             }
         });
     }
-        
+
     private static List<String> getMyRoles(final AAF_GUI gui, final AuthzTrans trans) {
         final List<String> myRoles = new ArrayList<>();
         try {
index 4c3bd32..4885827 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -60,7 +60,7 @@ public class PermHistory extends Page {
     static final String NAME="PermHistory";
     static final String HREF = "/gui/permHistory";
     static final String FIELDS[] = {"type","instance","action","dates"};
-    
+
     public PermHistory(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, FIELDS,
             new BreadCrumbs(breadcrumbs),
@@ -77,26 +77,26 @@ public class PermHistory extends Page {
                             String type = trans.get(sType, null);
                             String instance = trans.get(sInstance,null);
                             String action = trans.get(sAction,null);
-                            
+
                             // Use Javascript to make the table title more descriptive
                             hgen.js()
                             .text("var caption = document.querySelector(\".title\");")
-                            .text("caption.innerHTML='History for Permission [ " + type + " ]';")                        
+                            .text("caption.innerHTML='History for Permission [ " + type + " ]';")
                             .done();
-                            
+
                             // Use Javascript to change Link Target to our last visited Detail page
                             String lastPage = PermDetail.HREF + "?type=" + type
                                     + "&instance=" + instance
                                     + "&action=" + action;
                             hgen.js()
-                                .text("alterLink('permdetail', '"+lastPage + "');")                            
+                                .text("alterLink('permdetail', '"+lastPage + "');")
                                 .done();
-                            
+
                             hgen.br();
                             hgen.leaf("a", "href=#advanced_search", "onclick=divVisibility('advanced_search');","class=greenbutton").text("Advanced Search").end()
                                 .divID("advanced_search", "style=display:none");
                             hgen.incr("table");
-                                
+
                             addDateRow(hgen,"Start Date");
                             addDateRow(hgen,"End Date");
                             hgen.incr("tr").incr("td");
@@ -113,9 +113,9 @@ public class PermHistory extends Page {
             }
 
             );
-        
+
     }
-    
+
     private static void addDateRow(HTMLGen hgen, String s) {
         hgen
             .incr("tr")
@@ -136,15 +136,15 @@ public class PermHistory extends Page {
             .end()
             .incr("td")
             .tagOnly("input","type=number","id=year"+s.substring(0, s.indexOf(' ')),"required",
-                    "value="+Calendar.getInstance().get(Calendar.YEAR), "min=1900", 
+                    "value="+Calendar.getInstance().get(Calendar.YEAR), "min=1900",
                     "max="+Calendar.getInstance().get(Calendar.YEAR),
                     "placeholder=Year").end()
             .end();
     }
-    
+
     /**
      * Implement the Table Content for History
-     * 
+     *
      * @author Jeremiah
      *
      */
@@ -152,26 +152,26 @@ public class PermHistory extends Page {
         private static final String[] headers = new String[] {"Date","User","Memo"};
         private Slot sType;
         private Slot sDates;
-        
+
         public Model(AuthzEnv env) {
             sType = env.slot(NAME+".type");
             sDates = env.slot(NAME+".dates");
         }
-        
+
         @Override
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             final String oName = trans.get(sType,null);
             final String oDates = trans.get(sDates,null);
-            
+
             if (oName==null) {
                 return Cells.EMPTY;
             }
-            
+
             final ArrayList<AbsCell[]> rv = new ArrayList<>();
             String msg = null;
             try {
@@ -187,20 +187,20 @@ public class PermHistory extends Page {
                                 "/authz/hist/perm/"+oName,
                                 gui.getDF(History.class)
                                 );
-                            
-                            
+
+
                             if (fh.get(AAF_GUI.TIMEOUT)) {
                                 tt.done();
                                 tt = trans.start("Load History Data", Env.SUB);
                                 List<Item> histItems = fh.value.getItem();
-                                
+
                                 java.util.Collections.sort(histItems, new Comparator<Item>() {
                                     @Override
                                     public int compare(Item o1, Item o2) {
                                         return o2.getTimestamp().compare(o1.getTimestamp());
                                     }
                                 });
-                                
+
                                 for (Item i : histItems) {
                                     String user = i.getUser();
                                     AbsCell userCell = new TextCell(user);
@@ -211,7 +211,7 @@ public class PermHistory extends Page {
                                             new TextCell(memo)
                                     });
                                 }
-                                
+
                             } else {
                                 if (fh.code()==403) {
                                     rv.add(new AbsCell[] {new TextCell("You may not view History of Permission [" + oName + "]", "colspan = 3", "class=center")});
@@ -226,7 +226,7 @@ public class PermHistory extends Page {
                         return null;
                     }
                 });
-                
+
             } catch (Exception e) {
                 trans.error().log(e);
             }
index 7dff081..ad2c5b0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,22 +48,22 @@ import aaf.v2_0.Perms;
 
 /**
  * Page content for My Permissions
- * 
+ *
  * @author Jonathan
  *
  */
 public class PermsShow extends Page {
     public static final String HREF = "/gui/myperms";
-    
+
     public PermsShow(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env, "MyPerms",HREF, NO_FIELDS,
-            new BreadCrumbs(breadcrumbs), 
+            new BreadCrumbs(breadcrumbs),
             new Table<AAF_GUI,AuthzTrans>("Permissions",gui.env.newTransNoAvg(),new Model(), "class=std"));
     }
 
     /**
      * Implement the Table Content for Permissions by User
-     * 
+     *
      * @author Jonathan
      *
      */
@@ -74,7 +74,7 @@ public class PermsShow extends Page {
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             final ArrayList<AbsCell[]> rv = new ArrayList<>();
@@ -87,7 +87,7 @@ public class PermsShow extends Page {
                         if (fp.get(5000)) {
                             TimeTaken ttld = trans.start("Load Data", Env.SUB);
                             try {
-                                if (fp.value!=null) {    
+                                if (fp.value!=null) {
                                     for (Perm p : fp.value.getPerm()) {
                                         AbsCell[] sa = new AbsCell[] {
                                             new RefCell(p.getType(),PermDetail.HREF
index 09b583b..b6a6a01 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -68,7 +68,7 @@ public class RequestDetail extends Page {
 
     /**
      * Implement the table content for Request Detail
-     * 
+     *
      * @author Jeremiah
      *
      */
@@ -92,10 +92,10 @@ public class RequestDetail extends Page {
                             ArrayList<AbsCell[]> rv = new ArrayList<>();
                             try {
                                 Future<Approvals> fa = client.read(
-                                    "/authz/approval/ticket/"+ticket, 
+                                    "/authz/approval/ticket/"+ticket,
                                     gui.getDF(Approvals.class)
                                     );
-                                
+
                                 if (fa.get(AAF_GUI.TIMEOUT)) {
                                     Approval app = fa.value.getApprovals().get(0);
                                     if(app==null) {
@@ -118,39 +118,39 @@ public class RequestDetail extends Page {
                                         if (first) {
                                             DateFormat createdDF = new SimpleDateFormat(DATE_TIME_FORMAT);
                                             UUID id = UUID.fromString(approval.getId());
-                                            
+
                                             rv.add(new AbsCell[]{new TextCell("Ticket ID:"),new TextCell(approval.getTicket(),"colspan=3")});
                                             rv.add(new AbsCell[]{new TextCell("Memo:"),new TextCell(approval.getMemo(),"colspan=3")});
-                                            rv.add(new AbsCell[]{new TextCell("Requested On:"), 
+                                            rv.add(new AbsCell[]{new TextCell("Requested On:"),
                                                     new TextCell(createdDF.format((id.timestamp() - NUM_100NS_INTERVALS_SINCE_UUID_EPOCH)/10000),"colspan=3")
                                             });
                                             rv.add(new AbsCell[]{new TextCell("Operation:"),new TextCell(decodeOp(approval.getOperation()),"colspan=3")});
                                             String user = approval.getUser();
                                             rv.add(new AbsCell[]{new TextCell("User:"),new TextCell(user,"colspan=3")});
-                                            
+
                                             // headers for listing each approver
                                             rv.add(new AbsCell[]{new TextCell(" ","colspan=4","class=blank_line")});
                                             rv.add(new AbsCell[]{AbsCell.Null,
-                                                    new TextCell("Approver","class=bold"), 
-                                                    new TextCell("Type","class=bold"), 
+                                                    new TextCell("Approver","class=bold"),
+                                                    new TextCell("Type","class=bold"),
                                                     new TextCell("Status","class=bold")});
                                             approverLine[0] = new TextCell("Approvals:");
-                                            
+
                                             first = false;
                                         } else {
                                             approverLine[0] = AbsCell.Null;
                                         }
-                                        
+
                                         approverLine[1] = new TextCell(approval.getApprover());
                                         String type = approval.getType();
                                         if ("owner".equalsIgnoreCase(type)) {
                                             type = "resource owner";
                                         }
-                                        
+
                                         approverLine[2] = new TextCell(type);
                                         approverLine[3] = new TextCell(approval.getStatus());
                                         rv.add(approverLine);
-                                    
+
                                     }
                                 } else {
                                     rv.add(new AbsCell[] {new TextCell("*** Data Unavailable ***")});
index dcf0f92..7b01e8f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -63,7 +63,7 @@ import aaf.v2_0.UserRoles;
 
 /**
  * Detail Page for Permissions
- * 
+ *
  * @author Jonathan
  *
  */
@@ -82,7 +82,7 @@ public class RoleDetail extends Page {
 
     /**
      * Implement the table content for Permissions Detail
-     * 
+     *
      * @author Jonathan
      *
      */
@@ -116,8 +116,8 @@ public class RoleDetail extends Page {
                 return;
             }
 
-        
-            try { 
+
+            try {
                 gui.clientAsUser(trans.getUserPrincipal(), new Retryable<Boolean>() {
                     @Override
                     public Boolean code(Rcli<?> client) throws CadiException, ConnectException, APIException {
@@ -134,7 +134,7 @@ public class RoleDetail extends Page {
                                     trans.put(sMayWrite,mayWrite);
                                     Boolean mayApprove = trans.fish(new AAFPermission(role.getNs(),ACCESS,":role:"+role.getName(),"approve"));
                                     trans.put(sMayApprove, mayApprove);
-                                    
+
                                     if (mayWrite || mayApprove) {
                                         Mark js = new Mark();
                                         Mark fn = new Mark();
@@ -153,7 +153,7 @@ public class RoleDetail extends Page {
                                                 "dcb.checked= (d.orig != d.value)"
                                             ).end(fn)
                                             .end(js);
-    
+
                                         Mark mark = new Mark();
                                         hgen.incr(mark,"form","method=post");
                                         trans.put(sMark, mark);
@@ -163,7 +163,7 @@ public class RoleDetail extends Page {
                                 trans.error().printf("Error calling AAF for Roles in GUI, Role Detail %d: %s",fr.code(),fr.body());
                                 return false;
                             }
-                            
+
                             if (fur.get(AAF_GUI.TIMEOUT)) {
                                 trans.put(sUserRole, fur.value.getUserRole());
                             } else {
@@ -187,7 +187,7 @@ public class RoleDetail extends Page {
             final String pRole = trans.get(sRoleName, null);
             final Role role = trans.get(sRole,null);
             ArrayList<AbsCell[]> rv = new ArrayList<>();
-            
+
             if (role!=null) {
                 boolean mayWrite = trans.get(sMayWrite, false);
                 boolean mayApprove = trans.get(sMayApprove, false);
@@ -241,11 +241,11 @@ public class RoleDetail extends Page {
                         }
                     }
                 }
-                        
+
                 if (mayApprove) {
                     rv.add(AbsCell.HLINE);
 
-                    // 
+                    //
                     rv.add(new AbsCell[] {
                             new TextCell("Users in Role:","width=25%"),
                             new TextCell("Delete","width=10%"),
@@ -256,7 +256,7 @@ public class RoleDetail extends Page {
                     if (userroles!=null) {
                         for (UserRole ur : userroles) {
                             String tag = "userrole";
-                            
+
                             rv.add(new AbsCell[] {
                                 AbsCell.Null,
                                 new CheckBoxCell(tag+".delete", ur.getUser()),
@@ -267,8 +267,8 @@ public class RoleDetail extends Page {
                         }
                     }
                 }
-                        
-                // History 
+
+                // History
                 rv.add(new AbsCell[] {
                         new RefCell("See History",RoleHistory.HREF + "?role=" + pRole,false,"class=greenbutton")
                     });
@@ -299,5 +299,5 @@ public class RoleDetail extends Page {
 
         }
     }
-}        
+}
         
\ No newline at end of file
index fb64cd6..7452636 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -59,7 +59,7 @@ public class RoleDetailAction extends Page {
             new BreadCrumbs(breadcrumbs),
             new NamedCode(true,"content") {
                 final Slot sReq = gui.env.slot(AAF_GUI.HTTP_SERVLET_REQUEST);
-                
+
                 @Override
                 public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                     cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI, AuthzTrans>() {
@@ -68,7 +68,7 @@ public class RoleDetailAction extends Page {
                             final HttpServletRequest req = trans.get(sReq, null);
                             final String role = getSingleParam(req,"role");
                             if (role==null) {
-                                hgen.text("Parameter 'role' is required").end(); 
+                                hgen.text("Parameter 'role' is required").end();
                             } else {
                                 // Run Validations
 //                                boolean fail;
@@ -81,7 +81,7 @@ public class RoleDetailAction extends Page {
                                             Map<String, String[]> pm = (Map<String, String[]>)req.getParameterMap();
                                             for (final Entry<String, String[]> es : pm.entrySet()) {
                                                 for (final String v : es.getValue()) {
-                                                    TimeTaken tt = null; 
+                                                    TimeTaken tt = null;
                                                     try {
                                                         switch(es.getKey()) {
                                                             case "desc": // Check box set
@@ -92,7 +92,7 @@ public class RoleDetailAction extends Page {
                                                                     RoleRequest rr = new RoleRequest();
                                                                     rr.setName(role);
                                                                     rr.setDescription(desc);
-                                                                    ltf.add(new TypedFuture(ActionType.desc, text, 
+                                                                    ltf.add(new TypedFuture(ActionType.desc, text,
                                                                             client.update("/authz/role",
                                                                                     gui.getDF(RoleRequest.class),rr
                                                                         )));
@@ -111,7 +111,7 @@ public class RoleDetailAction extends Page {
                                                                     rpr.setPerm(perm);
                                                                     rpr.setRole(role);
                                                                     ltf.add(new TypedFuture(ActionType.ungrant,text,
-                                                                            client.delete("/authz/role/" + role + "/perm", 
+                                                                            client.delete("/authz/role/" + role + "/perm",
                                                                                 gui.getDF(RolePermRequest.class),rpr
                                                                             )));
                                                                 } else {
@@ -142,7 +142,7 @@ public class RoleDetailAction extends Page {
                                                     }
                                                 }
                                             }
-                                            
+
                                             if (ltf.isEmpty()) {
                                                 hgen.p("No Changes");
                                             } else {
@@ -150,7 +150,7 @@ public class RoleDetailAction extends Page {
                                                     if (tf.future.get(5000)) {
                                                         hgen.p("<font color=\"green\"><i>Success</i>:</font> " + tf.text);
                                                     } else {
-                                                        // Note: if handling of special Error codes is required, use 
+                                                        // Note: if handling of special Error codes is required, use
                                                         // switch(tf.type) {
                                                         // }
                                                         hgen.p(tf.text);
@@ -172,13 +172,13 @@ public class RoleDetailAction extends Page {
                 }
             });
     }
-    
+
     enum ActionType {desc, ungrant, deleteUR, extendUR};
     private static class TypedFuture {
 //        public final ActionType type;
         public final Future<?> future;
         public final String text;
-        
+
         public TypedFuture(ActionType type, String text, Future<?> future) {
 //            this.type = type;
             this.future = future;
index a9f0eeb..ce30835 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -61,7 +61,7 @@ public class RoleHistory extends Page {
     static final String HREF = "/gui/roleHistory";
     static final String FIELDS[] = {"role","dates"};
 
-    
+
     public RoleHistory(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env,NAME,HREF, FIELDS,
             new BreadCrumbs(breadcrumbs),
@@ -74,24 +74,24 @@ public class RoleHistory extends Page {
                         @Override
                         public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {
                             String obRole = trans.get(role, null);
-                            
+
                             // Use Javascript to make the table title more descriptive
                             hgen.js()
                             .text("var caption = document.querySelector(\".title\");")
-                            .text("caption.innerHTML='History for Role [ " + obRole + " ]';")                        
+                            .text("caption.innerHTML='History for Role [ " + obRole + " ]';")
                             .done();
-                            
+
                             // Use Javascript to change Link Target to our last visited Detail page
                             String lastPage = RoleDetail.HREF + "?role=" + obRole;
                             hgen.js()
-                                .text("alterLink('roledetail', '"+lastPage + "');")                            
+                                .text("alterLink('roledetail', '"+lastPage + "');")
                                 .done();
-                            
+
                             hgen.br();
                             hgen.leaf("a", "href=#advanced_search","onclick=divVisibility('advanced_search');","class=greenbutton").text("Advanced Search").end()
                                 .divID("advanced_search", "style=display:none");
                             hgen.incr("table");
-                                
+
                             addDateRow(hgen,"Start Date");
                             addDateRow(hgen,"End Date");
                             hgen.incr("tr").incr("td");
@@ -106,9 +106,9 @@ public class RoleHistory extends Page {
             }
 
             );
-        
+
     }
-    
+
     private static void addDateRow(HTMLGen hgen, String s) {
         hgen
             .incr("tr")
@@ -129,16 +129,16 @@ public class RoleHistory extends Page {
             .end()
             .incr("td")
             .tagOnly("input","type=number","id=year"+s.substring(0, s.indexOf(' ')),"required",
-                    "value="+Calendar.getInstance().get(Calendar.YEAR), "min=1900", 
+                    "value="+Calendar.getInstance().get(Calendar.YEAR), "min=1900",
                     "max="+Calendar.getInstance().get(Calendar.YEAR),
                     "placeholder=Year").end()
             .end();
     }
-    
-    
+
+
     /**
      * Implement the Table Content for History
-     * 
+     *
      * @author Jeremiah
      *
      */
@@ -146,25 +146,25 @@ public class RoleHistory extends Page {
         private static final String[] headers = new String[] {"Date","User","Memo"};
         private Slot role;
         private Slot dates;
-        
+
         public Model(AuthzEnv env) {
             role = env.slot(NAME+".role");
             dates = env.slot(NAME+".dates");
         }
-        
+
         @Override
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             final String oName = trans.get(role,null);
             final String oDates = trans.get(dates,null);
-            
+
             Cells rv = Cells.EMPTY;
             if (oName!=null) {
-                
+
                 try {
                     rv = gui.clientAsUser(trans.getUserPrincipal(), new Retryable<Cells>() {
                         @Override
@@ -181,14 +181,14 @@ public class RoleHistory extends Page {
                                     tt.done();
                                     tt = trans.start("Load History Data", Env.SUB);
                                     List<Item> histItems = fh.value.getItem();
-                                    
+
                                     java.util.Collections.sort(histItems, new Comparator<Item>() {
                                         @Override
                                         public int compare(Item o1, Item o2) {
                                             return o2.getTimestamp().compare(o1.getTimestamp());
                                         }
                                     });
-                                    
+
                                     for (Item i : histItems) {
                                         String user = i.getUser();
                                         AbsCell userCell = new TextCell(user);
@@ -209,7 +209,7 @@ public class RoleHistory extends Page {
                                 }
                             } finally {
                                 tt.done();
-                            }    
+                            }
                             return new Cells(rv,msg);
                         }
                     });
index 414c416..ea1cfab 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -51,23 +51,23 @@ import aaf.v2_0.UserRoles;
 
 /**
  * Page content for My Roles
- * 
+ *
  * @author Jonathan
  *
  */
 public class RolesShow extends Page {
     public static final String HREF = "/gui/myroles";
     private static final String DATE_TIME_FORMAT = "yyyy-MM-dd";
-    
+
     public RolesShow(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env, "MyRoles",HREF, NO_FIELDS,
-            new BreadCrumbs(breadcrumbs), 
+            new BreadCrumbs(breadcrumbs),
             new Table<AAF_GUI,AuthzTrans>("Roles",gui.env.newTransNoAvg(),new Model(), "class=std"));
     }
 
     /**
      * Implement the Table Content for Permissions by User
-     * 
+     *
      * @author Jonathan
      *
      */
@@ -81,7 +81,7 @@ public class RolesShow extends Page {
         public String[] headers() {
             return headers;
         }
-        
+
         @Override
         public Cells get(final AuthzTrans trans, final AAF_GUI gui) {
             Cells rv = Cells.EMPTY;
@@ -107,7 +107,7 @@ public class RolesShow extends Page {
                                                     UserRoleRemove.HREF+USER +trans.user()+ROLE+u.getRole(),
                                                     false,
                                                     new String[]{CLASS_EXPIRED})
-                                                        
+
                                             };
                                             rv.add(sa);
                                     } else {
@@ -124,7 +124,7 @@ public class RolesShow extends Page {
                                             rv.add(sa);
                                     }
                             }
-                            
+
                         } finally {
                             tt.done();
                         }
index ed4c19d..10a8226 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,11 +54,11 @@ public class UserRoleExtend extends Page {
             public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                 final Slot sUser = gui.env.slot(NAME+".user");
                 final Slot sRole = gui.env.slot(NAME+".role");
-                
-                
+
+
                 cache.dynamic(hgen, new DynamicCode<HTMLGen, AAF_GUI, AuthzTrans>() {
                     @Override
-                    public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {                        
+                    public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {
                         final String user = trans.get(sUser, "");
                         final String role = trans.get(sRole, "");
 
@@ -87,12 +87,12 @@ public class UserRoleExtend extends Page {
                         } finally {
                             tt.done();
                         }
-                        
-                        
+
+
                     }
                 });
             }
-            
+
         });
     }
 }
index 11126f8..75611b3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,11 +54,11 @@ public class UserRoleRemove extends Page {
             public void code(final Cache<HTMLGen> cache, final HTMLGen hgen) throws APIException, IOException {
                 final Slot sUser = gui.env.slot(NAME+".user");
                 final Slot sRole = gui.env.slot(NAME+".role");
-                
-                
+
+
                 cache.dynamic(hgen, new DynamicCode<HTMLGen, AAF_GUI, AuthzTrans>() {
                     @Override
-                    public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {                        
+                    public void code(final AAF_GUI gui, final AuthzTrans trans,    final Cache<HTMLGen> cache, final HTMLGen hgen)    throws APIException, IOException {
                         final String user = trans.get(sUser, "");
                         final String role = trans.get(sRole, "");
 
@@ -69,7 +69,7 @@ public class UserRoleRemove extends Page {
                                 public Void code(Rcli<?> client) throws CadiException, ConnectException, APIException {
                                     Future<Void> fv = client.delete(
                                                 "/authz/userRole/"+user+"/"+role+"?request=true",Void.class);
-                                    
+
                                     if (fv.get(5000)) {
                                         // not sure if we'll ever hit this
                                         hgen.p("User ["+ user+"] Removed from Role [" +role+"]");
@@ -91,7 +91,7 @@ public class UserRoleRemove extends Page {
                     }
                 });
             }
-            
+
         });
     }
 }
index 73f4981..3c30e80 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,7 +38,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 
 public class WebCommand extends Page {
     public static final String HREF = "/gui/cui";
-    
+
     public WebCommand(final AAF_GUI gui, final Page ... breadcrumbs) throws APIException, IOException {
         super(gui.env, "Web Command Client",HREF, NO_FIELDS,
                 new BreadCrumbs(breadcrumbs),
@@ -54,21 +54,21 @@ public class WebCommand extends Page {
                     .end()
                     .text(". Type 'help' below for a list of AAF commands")
                     .end()
-                    
+
                     .divID("console_and_options");
-                hgen.divID("console_area");                
+                hgen.divID("console_area");
                 hgen.end(); //console_area
-                
+
                 hgen.divID("options_link", "class=closed");
                 cache.dynamic(hgen, new DynamicCode<HTMLGen,AAF_GUI,AuthzTrans>() {
                     @Override
                     public void code(AAF_GUI state, AuthzTrans trans, Cache<HTMLGen> cache, HTMLGen xgen)
                             throws APIException, IOException {
                         String image_root = "src=../../"+state.env.get(sThemeWebPath).toString() + '/' + state.env.get(sTheme) + "/images/icons";
-                        hgen.img(image_root + "/options_down.png", "onclick=handleDivHiding('options',this);", 
-                                "id=options_img", "alt=Options", "title=Options")                    
+                        hgen.img(image_root + "/options_down.png", "onclick=handleDivHiding('options',this);",
+                                "id=options_img", "alt=Options", "title=Options")
                             .end(); //options_link
-                        
+
                         hgen.divID("options");
 
                         switch(browser(trans,trans.env().slot(getBrowserType()))) {
@@ -82,29 +82,29 @@ public class WebCommand extends Page {
                         }
 //                        xgen.img("src=../../"+gui.theme+"/AAF_email.png", "onclick=emailLog();",
 //                                "alt=Email log to me", "title=Email log to me");
-                        xgen.img(image_root+"/AAF_font_size.png", "onclick=handleDivHiding('text_slider',this);", 
+                        xgen.img(image_root+"/AAF_font_size.png", "onclick=handleDivHiding('text_slider',this);",
                                 "id=fontsize_img", "alt=Change text size", "title=Change text size");
-                        xgen.img(image_root+"/AAF_details.png", "onclick=selectOption(this,0);", 
+                        xgen.img(image_root+"/AAF_details.png", "onclick=selectOption(this,0);",
                                 "id=details_img", "alt=Turn on/off details mode", "title=Turn on/off details mode");
                         xgen.img(image_root+"/AAF_maximize.png", "onclick=maximizeConsole(this);",
                                 "id=maximize_img", "alt=Maximize Console Window", "title=Maximize Console Window");
-                    }    
+                    }
                 });
                 hgen.divID("text_slider");
                 hgen.tagOnly("input", "type=button", "class=change_font", "onclick=buttonChangeFontSize('dec')", "value=-")
-                    .tagOnly("input", "id=text_size_slider", "type=range", "min=75", "max=200", "value=100", 
+                    .tagOnly("input", "id=text_size_slider", "type=range", "min=75", "max=200", "value=100",
                         "oninput=changeFontSize(this.value)", "onchange=changeFontSize(this.value)", "title=Change Text Size")
-                    .tagOnly("input", "type=button", "class=change_font", "onclick=buttonChangeFontSize('inc')", "value=+")                
+                    .tagOnly("input", "type=button", "class=change_font", "onclick=buttonChangeFontSize('inc')", "value=+")
                     .end(); //text_slider
 
                 hgen.end(); //options
                 hgen.end(); //console_and_options
-                
+
                 hgen.divID("input_area");
-                hgen.tagOnly("input", "type=text", "id=command_field", 
+                hgen.tagOnly("input", "type=text", "id=command_field",
                         "autocomplete=off", "autocorrect=off", "autocapitalize=off", "spellcheck=false",
                         "onkeypress=keyPressed()", "placeholder=Type your AAFCLI commands here", "autofocus")
-                    .tagOnly("input", "id=submit", "type=button", "value=Submit", 
+                    .tagOnly("input", "id=submit", "type=button", "value=Submit",
                             "onclick=http('put','../../gui/cui',getCommand(),callCUI);")
                     .end();
 
@@ -112,10 +112,10 @@ public class WebCommand extends Page {
                 hgen.js(callCUI);
                 hgen.text("function callCUI(resp) {")
                     .text("moveCommandToDiv();")
-                    .text("printResponse(resp);") 
+                    .text("printResponse(resp);")
                     .text("}");
-                hgen.end(callCUI);    
-            
+                hgen.end(callCUI);
+
             }
         });
 
index e461cf5..102d674 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,13 +35,13 @@ public abstract class AbsCell {
      * @param hgen
      */
     public abstract void write(HTMLGen hgen);
-    
+
     public final static AbsCell Null = new AbsCell() {
         @Override
         public void write(final HTMLGen hgen) {
         }
     };
-    
+
     public String[] attrs() {
         return NONE;
     }
index 2443eb9..79c7483 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,7 +25,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 
 public class ButtonCell extends AbsCell {
     private String[] attrs;
-    
+
     public ButtonCell(String value, String ... attributes) {
         attrs = new String[2+attributes.length];
         attrs[0]="type=button";
@@ -37,7 +37,7 @@ public class ButtonCell extends AbsCell {
         hgen.incr("input",true,attrs).end();
 
     }
-    
+
     @Override
     public String[] attrs() {
         return AbsCell.CENTER;
index 91abfa4..b34efd0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -27,7 +27,7 @@ public class CheckBoxCell extends AbsCell {
     public enum ALIGN{ left, right, center };
     private String[] attrs;
     private ALIGN align;
-    
+
     public CheckBoxCell(String name, ALIGN align, String value, String ... attributes) {
         this.align = align;
         attrs = new String[3 + attributes.length];
index 9f21fac..bccce8f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,7 +25,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 
 public class RadioCell extends AbsCell {
     private String[] attrs;
-    
+
     public RadioCell(String name, String radioClass, String value, String ... attributes) {
         attrs = new String[4 + attributes.length];
         attrs[0]="type=radio";
@@ -35,7 +35,7 @@ public class RadioCell extends AbsCell {
         System.arraycopy(attributes, 0, attrs, 4, attributes.length);
 
     }
-    
+
     @Override
     public void write(HTMLGen hgen) {
         hgen.tagOnly("input",attrs);
index 759d87f..7058a24 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 public class RefCell extends AbsCell {
     public final String name;
     public final String[] str;
-    
+
     public RefCell(String name, String href, boolean newWindow, String... attributes) {
         this.name = name;
         if (newWindow) {
@@ -46,7 +46,7 @@ public class RefCell extends AbsCell {
         System.arraycopy(attributes, 0, str, 1, attributes.length);
 
     }
-    
+
     @Override
     public void write(HTMLGen hgen) {
         hgen.leaf(A,str).text(name);
index d202ffa..df0ad96 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,7 +29,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 import org.onap.aaf.misc.xgen.html.State;
 
 public abstract class TableData<S extends State<Env>, TRANS extends Trans> implements Table.Data<S,TRANS>{
-    public static final String[] headers = new String[0];    
+    public static final String[] headers = new String[0];
 
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.gui.Table.Data#prefix(org.onap.aaf.misc.xgen.html.State, com.att.inno.env.Trans, org.onap.aaf.misc.xgen.Cache, org.onap.aaf.misc.xgen.html.HTMLGen)
index aefb3a4..ac65d74 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,7 +28,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 public class TextAndRefCell extends RefCell {
 
     private String text;
-        
+
     public TextAndRefCell(String text, String name, String href, boolean newWindow, String[] attributes) {
         super(name, href, newWindow, attributes);
         this.text = text;
index 5d2a726..2fdd914 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,17 +31,17 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 public class TextCell extends AbsCell {
     public final String name;
     private String[] attrs;
-    
+
     public TextCell(String name, String... attributes) {
         attrs = attributes;
         this.name = name;
     }
-    
+
     @Override
     public void write(HTMLGen hgen) {
         hgen.text(name);
     }
-    
+
     @Override
     public String[] attrs() {
         return attrs;
index c55759e..655ae8d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,7 +31,7 @@ import org.onap.aaf.misc.xgen.html.HTMLGen;
 public class TextInputCell extends AbsCell {
     private static final String[] NULL_ATTRS=new String[0];
     private String[] attrs;
-    
+
     public TextInputCell(String name, String textClass, String value, String ... attributes) {
         attrs = new String[5 + attributes.length];
         attrs[0]="type=text";
@@ -41,12 +41,12 @@ public class TextInputCell extends AbsCell {
         attrs[4]="style=font-size:100%;";
         System.arraycopy(attributes, 0, attrs, 5, attributes.length);
     }
-    
+
     @Override
     public void write(HTMLGen hgen) {
         hgen.tagOnly("input",attrs);
     }
-    
+
     @Override
     public String[] attrs() {
         return NULL_ATTRS;
index 5eaa69d..8f047d8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,18 +32,18 @@ public class TextToolTipCell extends AbsCell {
     public final String name;
     private final String[] attrs;
     private final String tooltip;
-    
+
     public TextToolTipCell(String name, String tooltip, String... attributes) {
         attrs = attributes;
         this.name = name;
         this.tooltip = "<abbr title=\"" + tooltip + "\">";
     }
-    
+
     @Override
     public void write(HTMLGen hgen) {
         hgen.text(tooltip + name + "</abbr>");
     }
-    
+
     @Override
     public String[] attrs() {
         return attrs;
index fa95bc2..8181d1d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index ec39916..b655d00 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 3cf6b72..067b62d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index cd9965c..49ac8b1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,7 +26,6 @@ import java.util.Map;
 
 import javax.servlet.Filter;
 
-import org.onap.aaf.auth.cache.Cache.Dated;
 import org.onap.aaf.auth.env.AuthzEnv;
 import org.onap.aaf.auth.env.AuthzTrans;
 import org.onap.aaf.auth.env.AuthzTransFilter;
@@ -49,22 +48,18 @@ import org.onap.aaf.misc.env.Env;
 
 public class AAF_Hello extends AbsService<AuthzEnv,AuthzTrans> {
     public enum API{TOKEN_REQ, TOKEN,INTROSPECT, ERROR,VOID};
-    public Map<String, Dated> cacheUser;
     public AAFAuthn<?> aafAuthn;
     public AAFLurPerm aafLurPerm;
-    
+
     /**
      * Construct AuthzAPI with all the Context Supporting Routes that Authz needs
-     * 
+     *
      * @param env
-     * @param si 
-     * @param dm 
-     * @param decryptor 
-     * @throws APIException 
+     * @throws APIException
      */
     public AAF_Hello(final AuthzEnv env) throws Exception {
         super(env.access(), env);
-        
+
         aafLurPerm = aafCon().newLur();
         // Note: If you need both Authn and Authz construct the following:
         aafAuthn = aafCon().newAuthn(aafLurPerm);
@@ -73,29 +68,29 @@ public class AAF_Hello extends AbsService<AuthzEnv,AuthzTrans> {
         if (aaf_env==null) {
             throw new APIException("aaf_env needs to be set");
         }
-        
+
         // Initialize Facade for all uses
         AuthzTrans trans = env.newTrans();
         StringBuilder sb = new StringBuilder();
         trans.auditTrail(2, sb);
         trans.init().log(sb);
-        
+
         API_Hello.init(this);
 }
-    
+
     /**
      * Setup XML and JSON implementations for each supported Version type
-     * 
+     *
      * We do this by taking the Code passed in and creating clones of these with the appropriate Facades and properties
      * to do Versions and Content switches
-     * 
+     *
      */
     public void route(HttpMethods meth, String path, API api, HttpCode<AuthzTrans, AAF_Hello> code){
         String version = "1.0";
         // Get Correct API Class from Mapper
         route(env,meth,path,code,"text/plain;version="+version,"*/*");
     }
-    
+
     @Override
     public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException {
         try {
index 7fef0ba..4ffb178 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,19 +48,19 @@ public class API_Hello {
 
     // Hide Public Constructor
     private API_Hello() {}
-    
+
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param oauthHello
      * @param facade
      * @throws Exception
      */
-    public static void init(final AAF_Hello oauthHello) throws Exception {
+    public static void init(final AAF_Hello oauthHello){
         ////////
         // Simple "GET" API
         ///////
-        
+
         oauthHello.route(HttpMethods.GET,"/hello/:perm*",API.TOKEN,new HttpCode<AuthzTrans, AAF_Hello>(oauthHello,"Hello OAuth"){
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
@@ -86,10 +86,10 @@ public class API_Hello {
                     os.print(')');
                 }
                 os.println();
-                
+
                 trans.info().printf("Said 'Hello' to %s, Authentication type: %s",trans.getUserPrincipal().getName(),trans.getUserPrincipal().getClass().getSimpleName());
             }
-        }); 
+        });
 
 ////////////////
 // REST APIs
@@ -115,7 +115,7 @@ public class API_Hello {
                     resp.setStatus(406);
                 }
             }
-        },APPLICATION_JSON); 
+        },APPLICATION_JSON);
 
 
         ////////////////
@@ -147,8 +147,8 @@ public class API_Hello {
                 os.println(sb.toString());
                 trans.info().printf("Said 'RESTful Hello' to %s, Authentication type: %s",trans.getUserPrincipal().getName(),trans.getUserPrincipal().getClass().getSimpleName());
             }
-        },APPLICATION_JSON); 
-        
+        },APPLICATION_JSON);
+
         ////////////////
         // UPDATE/PUT
         ////////////////
@@ -170,7 +170,7 @@ public class API_Hello {
                     resp.setStatus(406);
                 }
             }
-        },APPLICATION_JSON); 
+        },APPLICATION_JSON);
 
 
         ////////////////
@@ -182,7 +182,7 @@ public class API_Hello {
                 trans.info().printf("Delete requested on %s\n", pathParam(req, ":id"));
                 resp.setStatus(200 /* OK */);
             }
-        },APPLICATION_JSON); 
+        },APPLICATION_JSON);
 
     }
 }
index e85431d..2ed4efb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,7 +52,7 @@ public class HelloTester {
                 SecurityInfoC<HttpURLConnection> si = SecurityInfoC.instance(access, HttpURLConnection.class);
                 AAFLocator loc = new AAFLocator(si,new URI(uriPrefix+"/locate/"+Define.ROOT_NS()+".hello:1.0"));
                 AAFConHttp aafcon = new AAFConHttp(access,loc,si);
-                
+
                 //
                 String pathinfo = "/hello";
                 final int iterations = Integer.parseInt(access.getProperty("iterations","5"));
@@ -68,7 +68,7 @@ public class HelloTester {
                                 System.err.println("Ooops, missed one: " + fs.code() + ": " + fs.body());
                             }
                             return null;
-    
+
                         }
                     });
                     Thread.sleep(500L);
index b481ff9..ff53826 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -81,19 +81,19 @@ public class AAF_Locate extends AbsService<AuthzEnv, AuthzTrans> {
     public final ConfigDAO configDAO;
     private Locator<URI> dal;
 
-    
+
     /**
      * Construct AuthzAPI with all the Context Supporting Routes that Authz needs
-     * 
+     *
      * @param env
-     * @param si 
-     * @param dm 
-     * @param decryptor 
-     * @throws APIException 
+     * @param si
+     * @param dm
+     * @param decryptor
+     * @throws APIException
      */
     public AAF_Locate(final AuthzEnv env) throws Exception {
         super(env.access(), env);
-        
+
         expireIn = Long.parseLong(env.getProperty(Config.AAF_USER_EXPIRES, Config.AAF_USER_EXPIRES_DEF));
 
         // Initialize Facade for all uses
@@ -129,7 +129,7 @@ public class AAF_Locate extends AbsService<AuthzEnv, AuthzTrans> {
         API_AAFAccess.init(this,facade);
         API_Find.init(this, facade);
         API_Proxy.init(this, facade);
-        
+
         ////////////////////////////////////////////////////////////////////////
         // Management APIs
         ////////////////////////////////////////////////////////////////////////
@@ -143,21 +143,21 @@ public class AAF_Locate extends AbsService<AuthzEnv, AuthzTrans> {
         // Default Function
         ////////////////////////////////////////////////////////////////////////
         API_AAFAccess.initDefault(this,facade);
-        
+
     }
 
-    
+
     /**
      * Setup XML and JSON implementations for each supported Version type
-     * 
+     *
      * We do this by taking the Code passed in and creating clones of these with the appropriate Facades and properties
      * to do Versions and Content switches
-     * 
+     *
      */
     public void route(HttpMethods meth, String path, API api, LocateCode code) throws Exception {
         String version = "1.0";
         // Get Correct API Class from Mapper
-        Class<?> respCls = facade.mapper().getClass(api); 
+        Class<?> respCls = facade.mapper().getClass(api);
         if (respCls==null) throw new Exception("Unknown class associated with " + api.getClass().getName() + ' ' + api.name());
         // setup Application API HTML ContentTypes for JSON and Route
         String application = applicationJSON(respCls, version);
@@ -166,11 +166,11 @@ public class AAF_Locate extends AbsService<AuthzEnv, AuthzTrans> {
         // setup Application API HTML ContentTypes for XML and Route
         application = applicationXML(respCls, version);
         route(env,meth,path,code.clone(facade_1_1_XML,false),application,"text/xml;version="+version);
-        
+
         // Add other Supported APIs here as created
     }
-    
-    public void routeAll(HttpMethods meth, String path, API api, LocateCode code) throws Exception {
+
+    public void routeAll(HttpMethods meth, String path, API api, LocateCode code){
         route(env,meth,path,code,""); // this will always match
     }
 
@@ -210,7 +210,7 @@ public class AAF_Locate extends AbsService<AuthzEnv, AuthzTrans> {
     public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException {
         try {
             return new Filter[] {
-                new AuthzTransFilter(env, aafCon(), 
+                new AuthzTransFilter(env, aafCon(),
                     new AAFTrustChecker((Env)env)
                     ,additionalTafLurs
                 )};
index 30258d8..80dffc2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 214c9d8..a2fd5c2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,7 @@ public abstract class LocateCode extends HttpCode<AuthzTrans, LocateFacade> impl
         super(facade, description, roles);
         this.useJSON = useJSON;
     }
-    
+
     public <D extends LocateCode> D clone(LocateFacade facade, boolean useJSON) throws Exception {
         @SuppressWarnings("unchecked")
         D d = (D)clone();
@@ -40,5 +40,5 @@ public abstract class LocateCode extends HttpCode<AuthzTrans, LocateFacade> impl
         d.context = facade;
         return d;
     }
-    
+
 }
\ No newline at end of file
index b5ab435..36a987e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,22 +55,22 @@ import org.onap.aaf.misc.env.Env;
 import org.onap.aaf.misc.env.TimeTaken;
 
 public class API_AAFAccess {
-//    private static String service, version, envContext; 
+//    private static String service, version, envContext;
 
     private static final String GET_PERMS_BY_USER = "Get Perms by User";
     private static final String USER_HAS_PERM ="User Has Perm";
 //    private static final String USER_IN_ROLE ="User Has Role";
-    
+
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param gwAPI
      * @param facade
      * @throws Exception
      */
     public static void init(final AAF_Locate gwAPI, LocateFacade facade) throws Exception {
-        
-        
+
+
         gwAPI.route(HttpMethods.GET,"/authz/perms/user/:user",API.VOID,new LocateCode(facade,GET_PERMS_BY_USER, true) {
             @Override
             public void handle(final AuthzTrans trans, final HttpServletRequest req, final HttpServletResponse resp) throws Exception {
@@ -90,7 +90,7 @@ public class API_AAFAccess {
                     } finally {
                         tt2.done();
                     }
-                    
+
                     if (d==null || d.data.isEmpty()) {
                         tt2 = trans.start("AAF Service Call",Env.REMOTE);
                         try {
@@ -136,7 +136,7 @@ public class API_AAFAccess {
 
         /**
          * Query User Has Perm is DEPRECATED
-         * 
+         *
          * Need to move towards NS declaration... is this even being used?
          * @deprecated
          */
@@ -169,8 +169,8 @@ public class API_AAFAccess {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
                 try {
-                    redirect(trans, req, resp, context, 
-                            gwAPI.getGUILocator(), 
+                    redirect(trans, req, resp, context,
+                            gwAPI.getGUILocator(),
                             "gui/"+pathParam(req,":path"));
                 } catch (LocatorException e) {
                     context.error(trans, resp, Result.ERR_BadData, e.getMessage());
@@ -184,8 +184,8 @@ public class API_AAFAccess {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
                 try {
-                    redirect(trans, req, resp, context, 
-                            gwAPI.getGUILocator(), 
+                    redirect(trans, req, resp, context,
+                            gwAPI.getGUILocator(),
                             pathParam(req,":path"));
                 } catch (LocatorException e) {
                     context.error(trans, resp, Result.ERR_BadData, e.getMessage());
@@ -195,7 +195,7 @@ public class API_AAFAccess {
             }
         });
     }
-    
+
     public static void initDefault(final AAF_Locate gwAPI, LocateFacade facade) throws Exception {
 
         /**
@@ -205,7 +205,7 @@ public class API_AAFAccess {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
                 try {
-                    redirect(trans, req, resp, context, 
+                    redirect(trans, req, resp, context,
                             gwAPI.getGUILocator(),
                             "login");
                 } catch (LocatorException e) {
@@ -216,7 +216,7 @@ public class API_AAFAccess {
             }
         });
 
-        
+
         /**
          * Default URL
          */
@@ -224,17 +224,17 @@ public class API_AAFAccess {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
                 try {
-                    redirect(trans, req, resp, context, 
-                            gwAPI.getGUILocator(), 
+                    redirect(trans, req, resp, context,
+                            gwAPI.getGUILocator(),
                             "gui/home");
                 } catch (Exception e) {
                     context.error(trans, resp, Result.ERR_General, e.getMessage());
                 }
             }
         });
-        
+
         /**
-         * Configuration 
+         * Configuration
          */
         gwAPI.route(HttpMethods.GET,"/configure/:id/:type",API.CONFIG,new LocateCode(facade,"Deliver Configuration Properties to AAF", true) {
             @Override
@@ -261,7 +261,7 @@ public class API_AAFAccess {
             if (loc.hasItems()) {
                 Item item = loc.best();
                 URI uri = loc.get(item);
-                StringBuilder redirectURL = new StringBuilder(uri.toString()); 
+                StringBuilder redirectURL = new StringBuilder(uri.toString());
                 redirectURL.append('/');
                 redirectURL.append(path);
                 String str = req.getQueryString();
@@ -282,7 +282,7 @@ public class API_AAFAccess {
     private static class User {
         public final int code;
         public final String resp;
-        
+
         public User(int code, String resp) {
             this.code = code;
             this.resp = resp;
index 1e60e79..90cfa68 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,7 +44,7 @@ import org.onap.aaf.cadi.Symm;
 public class API_Api {
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param gwAPI
      * @param facade
      * @throws Exception
@@ -76,7 +76,7 @@ public class API_Api {
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
                 String pathInfo = req.getPathInfo();
                 int question = pathInfo.lastIndexOf('?');
-                
+
                 pathInfo = pathInfo.substring(13, question<0?pathInfo.length():question);// IMPORTANT, this is size of "/api/example/"
                 String nameOrContextType=Symm.base64noSplit.decode(pathInfo);
 //                String param = req.getParameter("optional");
index 88fcc07..08236aa 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,14 +39,14 @@ import org.onap.aaf.misc.env.util.Split;
 
 /**
  * API Apis.. using Redirect for mechanism
- * 
+ *
  * @author Jonathan
  *
  */
 public class API_Find {
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param gwAPI
      * @param facade
      * @throws Exception
@@ -55,7 +55,7 @@ public class API_Find {
         ////////
         // Overall APIs
         ///////
-        
+
         final LocateCode locationInfo = new LocateCode(facade,"Location Information", true) {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
@@ -75,7 +75,7 @@ public class API_Find {
                 service=Define.varReplace(service);
                 Result<Void> r = context.getEndpoints(trans,resp,
                     req.getPathInfo(), // use as Key
-                    service,version,other                    
+                    service,version,other
                 );
                 switch(r.status) {
                     case OK:
@@ -90,8 +90,8 @@ public class API_Find {
         gwAPI.route(HttpMethods.GET,"/locate/:service/:version",API.ENDPOINTS,locationInfo);
         gwAPI.route(HttpMethods.GET,"/locate/:service/:version/:other",API.ENDPOINTS,locationInfo);
         gwAPI.route(HttpMethods.GET,"/locate/:service",API.ENDPOINTS,locationInfo);
-        
-        
+
+
         gwAPI.route(HttpMethods.GET,"/download/agent", API.VOID, new LocateCode(facade,"Redirect to latest Agent",false) {
             @Override
             public void handle(AuthzTrans arg0, HttpServletRequest arg1, HttpServletResponse arg2) throws Exception {
index 8586031..962b985 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -46,7 +46,7 @@ import org.onap.aaf.misc.env.TimeTaken;
 
 /**
  * API Apis.. using Redirect for mechanism
- * 
+ *
  * @author Jonathan
  *
  */
@@ -54,13 +54,13 @@ public class API_Proxy {
 
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param gwAPI
      * @param facade
      * @throws Exception
      */
     public static void init(final AAF_Locate gwAPI, LocateFacade facade) throws Exception {
-        
+
         String aafurl = gwAPI.access.getProperty(Config.AAF_URL,null);
         if (aafurl!=null) {
             ////////
@@ -68,7 +68,7 @@ public class API_Proxy {
             // But DO NOT transfer BasicAuth case... wastes resources.
             ///////
             final BasicAuthCode bac = new BasicAuthCode(gwAPI.aafAuthn,facade);
-            
+
             gwAPI.routeAll(HttpMethods.GET,"/proxy/:path*",API.VOID,new LocateCode(facade,"Proxy GET", true) {
                 @Override
                 public void handle(final AuthzTrans trans, final HttpServletRequest req, final HttpServletResponse resp) throws Exception {
@@ -85,7 +85,7 @@ public class API_Proxy {
                                     return null;
                                 }
                             });
-                        
+
                         } catch (CadiException | APIException e) {
                             trans.error().log(e);
                         } finally {
@@ -94,7 +94,7 @@ public class API_Proxy {
                     }
                 }
             });
-            
+
             gwAPI.routeAll(HttpMethods.POST,"/proxy/:path*",API.VOID,new LocateCode(facade,"Proxy POST", true) {
                 @Override
                 public void handle(final AuthzTrans trans, final HttpServletRequest req, final HttpServletResponse resp) throws Exception {
@@ -115,7 +115,7 @@ public class API_Proxy {
                     }
                 }
             });
-            
+
             gwAPI.routeAll(HttpMethods.PUT,"/proxy/:path*",API.VOID,new LocateCode(facade,"Proxy PUT", true) {
                 @Override
                 public void handle(final AuthzTrans trans, final HttpServletRequest req, final HttpServletResponse resp) throws Exception {
@@ -136,7 +136,7 @@ public class API_Proxy {
                     }
                 }
             });
-            
+
             gwAPI.routeAll(HttpMethods.DELETE,"/proxy/:path*",API.VOID,new LocateCode(facade,"Proxy DELETE", true) {
                 @Override
                 public void handle(final AuthzTrans trans, final HttpServletRequest req, final HttpServletResponse resp) throws Exception {
index 4a2afa5..18d4f35 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,14 +30,14 @@ import org.onap.aaf.auth.rserv.RServlet;
 
 
 /**
- *   
+ *
  * @author Jonathan
  *
  */
 public interface LocateFacade {
 
 /////////////////////  STANDARD ELEMENTS //////////////////
-    /** 
+    /**
      * @param trans
      * @param response
      * @param result
@@ -45,7 +45,7 @@ public interface LocateFacade {
     void error(AuthzTrans trans, HttpServletResponse response, Result<?> result);
 
     /**
-     * 
+     *
      * @param trans
      * @param response
      * @param status
@@ -54,7 +54,7 @@ public interface LocateFacade {
 
 
     /**
-     * 
+     *
      * @param trans
      * @param resp
      * @param rservlet
@@ -63,7 +63,7 @@ public interface LocateFacade {
     public Result<Void> getAPI(AuthzTrans trans, HttpServletResponse resp, RServlet<AuthzTrans> rservlet);
 
     /**
-     * 
+     *
      * @param trans
      * @param resp
      * @param typeCode
@@ -73,20 +73,20 @@ public interface LocateFacade {
     public abstract Result<Void> getAPIExample(AuthzTrans trans, HttpServletResponse resp, String typeCode, boolean optional);
 
     /**
-     * 
+     *
      * @param trans
      * @param resp
      * @param service
      * @param version
      * @param other
-     * @param string 
+     * @param string
      * @return
      */
-    public abstract Result<Void> getEndpoints(AuthzTrans trans, HttpServletResponse resp, String key, 
+    public abstract Result<Void> getEndpoints(AuthzTrans trans, HttpServletResponse resp, String key,
             String service, String version, String other);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
@@ -95,7 +95,7 @@ public interface LocateFacade {
     public abstract Result<Void> putMgmtEndpoints(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
@@ -104,7 +104,7 @@ public interface LocateFacade {
     public abstract Result<Void> removeMgmtEndpoints(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param resp
index 0bb9fbd..e2d7cf9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,7 +43,7 @@ public class LocateFacadeFactory {
                     InRequest,
                     Out,
                     Error>(trans,locate,new Mapper_1_1()),
-                type);  
+                type);
     }
 
 }
index fc73047..6710708 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -65,7 +65,7 @@ import locate_local.v1_0.Api;
 
 /**
  * AuthzFacade
- * 
+ *
  * This Service Facade encapsulates the essence of the API Service can do, and provides
  * a single created object for elements such as RosettaDF.
  *
@@ -76,14 +76,14 @@ import locate_local.v1_0.Api;
  *         a) In the future, we may support multiple Response Formats, aka JSON or XML, based on User Request.
  * 4) Log Service info, warnings and exceptions as necessary
  * 5) When asked by the API layer, this will create and write Error content to the OutputStream
- * 
- * Note: This Class does NOT set the HTTP Status Code.  That is up to the API layer, so that it can be 
+ *
+ * Note: This Class does NOT set the HTTP Status Code.  That is up to the API layer, so that it can be
  * clearly coordinated with the API Documentation
- * 
+ *
  * @author Jonathan
  *
  */
-public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURATION,ERROR> extends FacadeImpl implements LocateFacade 
+public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURATION,ERROR> extends FacadeImpl implements LocateFacade
     {
     private LocateService<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURATION,ERROR> service;
 
@@ -105,14 +105,14 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
         (mepDF                = env.newDataFactory(mapper().getClass(API.MGMT_ENDPOINTS))).in(dataType).out(dataType);
         (confDF                = env.newDataFactory(mapper().getClass(API.CONFIG))).in(dataType).out(dataType);
     }
-    
+
     public Mapper<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURATION,ERROR> mapper() {
         return service.mapper();
     }
-        
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#error(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, int)
-     * 
+     *
      * Note: Conforms to AT&T TSS RESTful Error Structure
      */
     @Override
@@ -128,7 +128,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
         }
         error(trans, response, result.status,msg,detail);
     }
-        
+
     @Override
     public void error(AuthzTrans trans, HttpServletResponse response, int status, String msg, String ... _detail) {
             String[] detail = _detail;
@@ -153,7 +153,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
                 detail[0] = "Forbidden";
                 response.setStatus(/*httpstatus=*/403);
                 break;
-                
+
             case 404:
             case ERR_NotFound:
                 msgId = "SVC1404";
@@ -167,21 +167,21 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
                 detail[0] = "Not Acceptable";
                 response.setStatus(/*httpstatus=*/406);
                 break;
-                
+
             case 409:
             case ERR_ConflictAlreadyExists:
                 msgId = "SVC1409";
                 detail[0] = "Conflict Already Exists";
                 response.setStatus(/*httpstatus=*/409);
                 break;
-            
+
             case 501:
             case ERR_NotImplemented:
                 msgId = "SVC1501";
-                detail[0] = "Not Implemented"; 
+                detail[0] = "Not Implemented";
                 response.setStatus(/*httpstatus=*/501);
                 break;
-                
+
             default:
                 msgId = "SVC1500";
                 detail[0] = "General Service Error";
@@ -194,7 +194,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
             StringBuilder holder = new StringBuilder();
             ERROR em = mapper().errorFromMessage(holder,msgId,msg,detail);
             trans.checkpoint(
-                    "ErrResp [" + 
+                    "ErrResp [" +
                     msgId +
                     "] " +
                     holder.toString(),
@@ -204,12 +204,12 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
                 em = mapper().errorFromMessage(holder, msgId, "Server had an issue processing this request");
             }
             errDF.newData(trans).load(em).to(response.getOutputStream());
-            
+
         } catch (Exception e) {
             trans.error().log(e,"unable to send response for",msg);
         }
     }
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getAPI(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse)
      */
@@ -256,7 +256,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
             tt.done();
         }
     }
-    
+
     public final static String API_EXAMPLE = "apiExample";
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getAPIExample(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
@@ -265,7 +265,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
     public Result<Void> getAPIExample(AuthzTrans trans, HttpServletResponse resp, String nameOrContentType, boolean optional) {
         TimeTaken tt = trans.start(API_EXAMPLE, Env.SUB);
         try {
-            String content =Examples.print(apiDF.getEnv(), nameOrContentType, optional); 
+            String content =Examples.print(apiDF.getEnv(), nameOrContentType, optional);
             resp.getOutputStream().print(content);
             setContentType(resp,content.contains("<?xml")?TYPE.XML:TYPE.JSON);
             return Result.ok();
@@ -296,7 +296,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
                     output = epsCache.get(key);
                     if ("{}".equals(output) && emptyCheck<temp) {
                         output = null;
-                        emptyCheck = temp+5000; // 5 second check  
+                        emptyCheck = temp+5000; // 5 second check
                     }
                 }
             }
@@ -341,7 +341,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
             }
             Result<Void> rp = service.putMgmtEndPoints(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     synchronized(LOCK) {
                         cacheClear = 0L;
                     }
@@ -377,7 +377,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
             }
             Result<Void> rp = service.removeMgmtEndPoints(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     synchronized(LOCK) {
                         cacheClear = 0L;
                     }
@@ -401,7 +401,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
         try {
             Result<CONFIGURATION> rp = service.getConfig(trans, id, type);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,mepDF.getOutType());
                     confDF.newData(trans).load(rp.value).to(resp.getOutputStream());
                     return Result.ok();
@@ -413,7 +413,7 @@ public abstract class LocateFacadeImpl<IN,OUT,ENDPOINTS,MGMT_ENDPOINTS,CONFIGURA
             return Result.err(e);
         } finally {
             tt.done();
-        }    
+        }
     }
-    
+
 }
\ No newline at end of file
index 8f45058..3a1f9b8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index e2cd4bc..60c6d1f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index aca7136..7565289 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,7 +38,7 @@ import locate_local.v1_0.InRequest;
 import locate_local.v1_0.Out;
 
 public class Mapper_1_1 implements Mapper<InRequest,Out,Endpoints,MgmtEndpoints,Configuration,Error> {
-    
+
     @Override
     public Class<?> getClass(API api) {
         switch(api) {
@@ -91,7 +91,7 @@ public class Mapper_1_1 implements Mapper<InRequest,Out,Endpoints,MgmtEndpoints,
         }
         int major=-1, minor=-1, patch=-1, pkg=-1;
         if (version!=null) {
-            try { 
+            try {
                 String[] v = Split.split('.',version);
                 if (v.length>0) {major = Integer.parseInt(v[0]);}
                 if (v.length>1) {minor = Integer.parseInt(v[1]);}
index 47f3b98..9a6858a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index e080e7e..afaef83 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,6 @@ import org.onap.aaf.auth.locate.AAF_Locate;
 import org.onap.aaf.auth.locate.mapper.Mapper;
 import org.onap.aaf.auth.locate.validation.LocateValidator;
 import org.onap.aaf.cadi.aaf.AAFPermission;
-import org.onap.aaf.misc.env.APIException;
 
 import locate.v1_0.Endpoints;
 import locate.v1_0.MgmtEndpoint;
@@ -40,20 +39,20 @@ import locate.v1_0.MgmtEndpoints;
 import locate.v1_1.Configuration;
 import locate.v1_1.Configuration.Props;
 
-public class LocateServiceImpl<IN,OUT,ERROR> 
+public class LocateServiceImpl<IN,OUT,ERROR>
       implements LocateService<IN,OUT,Endpoints,MgmtEndpoints,Configuration,ERROR> {
         private Mapper<IN,OUT,Endpoints,MgmtEndpoints,Configuration,ERROR> mapper;
         protected LocateDAO locateDAO;
         private ConfigDAO configDAO;
         private boolean permToRegister;
-    
-        public LocateServiceImpl(AuthzTrans trans, AAF_Locate locate, Mapper<IN,OUT,Endpoints,MgmtEndpoints,Configuration,ERROR> mapper) throws APIException {
+
+        public LocateServiceImpl(AuthzTrans trans, AAF_Locate locate, Mapper<IN,OUT,Endpoints,MgmtEndpoints,Configuration,ERROR> mapper){
             this.mapper = mapper;
             this.locateDAO = locate.locateDAO;
             this.configDAO = locate.configDAO;
             permToRegister = false; //TODO Setup a Configuration for this
         }
-        
+
         public Mapper<IN,OUT,Endpoints,MgmtEndpoints,Configuration,ERROR> mapper() {return mapper;}
 
         @Override
@@ -73,14 +72,14 @@ public class LocateServiceImpl<IN,OUT,ERROR>
             int count = 0;
             StringBuilder denied = null;
             for (MgmtEndpoint me : meps.getMgmtEndpoint()) {
-                if (permToRegister) { 
+                if (permToRegister) {
                     int dot = me.getName().lastIndexOf('.'); // Note: Validator checks for NS for getName()
-                    AAFPermission p = new AAFPermission(me.getName().substring(0,dot),"locator",me.getHostname(),"write"); 
+                    AAFPermission p = new AAFPermission(me.getName().substring(0,dot),"locator",me.getHostname(),"write");
                     if (!trans.fish(p)) {
                         if(denied==null) {
                             denied = new StringBuilder("May not register service(s):");
                         }
-                        
+
                         denied.append("\n\t");
                         denied.append(p.getKey());
                         denied.append(')');
@@ -111,14 +110,14 @@ public class LocateServiceImpl<IN,OUT,ERROR>
             int count = 0;
             StringBuilder denied = null;
             for (MgmtEndpoint me : meps.getMgmtEndpoint()) {
-                 if (permToRegister) { 
+                 if (permToRegister) {
                      int dot = me.getName().lastIndexOf('.'); // Note: Validator checks for NS for getName()
-                     AAFPermission p = new AAFPermission(me.getName().substring(0,dot),"locator",me.getHostname(),"write"); 
+                     AAFPermission p = new AAFPermission(me.getName().substring(0,dot),"locator",me.getHostname(),"write");
                      if (!trans.fish(p)) {
                          if(denied==null) {
                              denied = new StringBuilder("May not deregister service(s):");
                          }
-                         
+
                          denied.append("\n\t");
                          denied.append(p.getKey());
                          denied.append(')');
@@ -140,7 +139,7 @@ public class LocateServiceImpl<IN,OUT,ERROR>
         /////   ADDED v1_1
         /* (non-Javadoc)
          * @see org.onap.aaf.auth.locate.service.LocateService#getConfig(org.onap.aaf.auth.env.AuthzTrans, java.lang.String, java.lang.String)
-         * 
+         *
          * Note: "id" is put in, in case we need to filter, or direct data change in the future by Permission
          */
         @Override
@@ -149,7 +148,7 @@ public class LocateServiceImpl<IN,OUT,ERROR>
             Configuration c = new Configuration();
             c.setName(type);
             Props p;
-            
+
             if (dr.isOKhasData()) {
                 for (ConfigDAO.Data data : dr.value) {
                     p = new Props();
index 747211e..b6ae54e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,9 +32,9 @@ import locate.v1_0.MgmtEndpoints;
 /**
  * Validator
  * Consistently apply content rules for content (incoming)
- * 
- * Note: We restrict content for usability in URLs (because RESTful service), and avoid 
- * issues with Regular Expressions, and other enabling technologies. 
+ *
+ * Note: We restrict content for usability in URLs (because RESTful service), and avoid
+ * issues with Regular Expressions, and other enabling technologies.
  * @author Jonathan
  *
  */
@@ -73,7 +73,7 @@ public class LocateValidator extends Validator {
         }
         return this;
     }
-    
+
     public LocateValidator endpoints(Endpoints e, boolean emptyNotOK) {
         if (e==null) {
             msg("Endpoints Data is null.");
@@ -130,7 +130,7 @@ public class LocateValidator extends Validator {
             nullOrBlank("Special Port Name",sp.getName());
             nullOrBlank("Special Port Protocol",sp.getProtocol());
             intRange("Special Port",sp.getPort(),0,1000000);
-            
+
             for (String s : sp.getProtocolVersions()) {
                 nullOrBlank("Special Port Protocol Version", s);
             }
index dd9ac7f..c3b964b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index b4c9f97..e28e2ff 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -72,36 +72,33 @@ public class AAF_OAuth extends AbsService<AuthzEnv,AuthzTrans> {
     private final OAuthService service;
     private OAFacade1_0 facade1_0;
     private final Question question;
-    private TokenPermLoader tpLoader; 
+    private TokenPermLoader tpLoader;
     private final Cluster cluster;
-    
+
     /**
      * Construct AuthzAPI with all the Context Supporting Routes that Authz needs
-     * 
+     *
      * @param env
-     * @param si 
-     * @param dm 
-     * @param decryptor 
-     * @throws APIException 
+     * @throws APIException
      */
     public AAF_OAuth(final AuthzEnv env) throws Exception {
         super(env.access(),env);
-        
+
         String aaf_env = env.getProperty(Config.AAF_ENV);
         if (aaf_env==null) {
             throw new APIException("aaf_env needs to be set");
         }
-        
+
         // Initialize Facade for all uses
         AuthzTrans trans = env.newTrans();
         cluster = org.onap.aaf.auth.dao.CassAccess.cluster(env,null);
-        
+
         aafLurPerm = aafCon().newLur();
         // Note: If you need both Authn and Authz construct the following:
         aafAuthn = aafCon().newAuthn(aafLurPerm);
 
         // Start Background Processing
-        //    Question question = 
+        //    Question question =
         question = new Question(trans, cluster, CassAccess.KEYSPACE);
         question.startTimers(env);
 
@@ -114,21 +111,21 @@ public class AAF_OAuth extends AbsService<AuthzEnv,AuthzTrans> {
         StringBuilder sb = new StringBuilder();
         trans.auditTrail(2, sb);
         trans.init().log(sb);
-        
+
         API_Token.init(this, facade1_0);
     }
-    
+
     /**
      * Setup XML and JSON implementations for each supported Version type
-     * 
+     *
      * We do this by taking the Code passed in and creating clones of these with the appropriate Facades and properties
      * to do Versions and Content switches
-     * 
+     *
      */
     public void route(HttpMethods meth, String path, API api, HttpCode<AuthzTrans, OAFacade<Introspect>> code) throws Exception {
         String version = "1.0";
         // Get Correct API Class from Mapper
-        Class<?> respCls = facade1_0.mapper().getClass(api); 
+        Class<?> respCls = facade1_0.mapper().getClass(api);
         if (respCls==null) throw new Exception("Unknown class associated with " + api.getClass().getName() + ' ' + api.name());
         // setup Application API HTML ContentTypes for JSON and Route
         String application = applicationJSON(respCls, version);
@@ -138,7 +135,7 @@ public class AAF_OAuth extends AbsService<AuthzEnv,AuthzTrans> {
             route(env,meth,path,code,application,"application/json;version="+version,"*/*");
         }
     }
-    
+
     @Override
     public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException {
         try {
@@ -150,7 +147,7 @@ public class AAF_OAuth extends AbsService<AuthzEnv,AuthzTrans> {
             if (additionalTafLurs.length>0) {
                 System.arraycopy(additionalTafLurs, 0, atl, 2, additionalTafLurs.length);
             }
-            
+
             return new Filter[] {
                 new AuthzTransFilter(env,aafCon(),
                     new AAFTrustChecker((Env)env),
@@ -160,7 +157,7 @@ public class AAF_OAuth extends AbsService<AuthzEnv,AuthzTrans> {
             throw new CadiException("Invalid Property information", e);
         }
     }
-    
+
     @SuppressWarnings("unchecked")
     @Override
     public Registrant<AuthzEnv>[] registrants(final int port) throws CadiException {
@@ -181,7 +178,7 @@ public class AAF_OAuth extends AbsService<AuthzEnv,AuthzTrans> {
         }
         super.destroy();
     }
-    
+
     // For use in CADI ONLY
     public TokenMgr.TokenPermLoader tpLoader() {
         return tpLoader;
index 3d86382..45a70e9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -80,7 +80,7 @@ public class DirectOAuthTAF implements HttpTaf {
                 String[] split = Split.split(',', alt_url);
                 int timeout = split.length>1?Integer.parseInt(split[1]):3000;
                 altIntrospectClient = tcf.newClient(split[0], timeout);
-                altIntrospectClient.client_creds(access.getProperty(Config.AAF_ALT_CLIENT_ID,null), 
+                altIntrospectClient.client_creds(access.getProperty(Config.AAF_ALT_CLIENT_ID,null),
                                            access.getProperty(Config.AAF_ALT_CLIENT_SECRET,null));
             } catch (GeneralSecurityException | IOException | LocatorException e) {
                 throw new CadiException(e);
@@ -125,7 +125,7 @@ public class DirectOAuthTAF implements HttpTaf {
                             password=s;
                         }
                         break;
-                    case "token": 
+                    case "token":
                         if (token!=null) { // Defined as both Bearer and Form Encoded - Error
                             return new OAuth2HttpTafResp(access, null, "Token Info found as both Bearer Token and Form Info", RESP.FAIL, resp, true);
                         }
@@ -136,12 +136,12 @@ public class DirectOAuthTAF implements HttpTaf {
                     // Ignore others
                 }
             }
-            
+
             if (client_id==null || client_secret==null) {
                 return new OAuth2HttpTafResp(access, null, "client_id and client_secret required", RESP.TRY_ANOTHER_TAF, resp, false);
             }
-            
-            if (token==null) { // No Token to work with, use only Client_ID and Client_Secret 
+
+            if (token==null) { // No Token to work with, use only Client_ID and Client_Secret
                 AuthzTrans trans = (AuthzTrans)req.getAttribute(TransFilter.TRANS_TAG);
 
                 if (directUserPass.validate(client_id, Type.PASSWORD, client_secret.getBytes(), trans)) {
@@ -166,8 +166,8 @@ public class DirectOAuthTAF implements HttpTaf {
                     return new OAuth2HttpTafResp(access,null,"OAuth client_id " + client_id + " not authenticated ",RESP.FAIL,resp,true);
                 }
             }
-        } 
-        
+        }
+
         // OK, have only a Token to validate
         if (token!=null) {
             AuthzTrans trans = (AuthzTrans)req.getAttribute(TransFilter.TRANS_TAG);
@@ -205,7 +205,7 @@ public class DirectOAuthTAF implements HttpTaf {
         public ServiceTPL(AuthzTrans atrans) {
             trans = atrans;
         }
-        
+
         @Override
         public org.onap.aaf.cadi.client.Result<TokenPerm> load(String accessToken, byte[] cred) throws APIException, CadiException, LocatorException {
             Result<Introspect> ri = oaFacade.mappedIntrospect(trans, accessToken);
index a0381c3..082c0fb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public abstract class OACode extends HttpCode<AuthzTrans, OAFacade<Introspect>>
         super(facade, description, roles);
         this.useJSON = useJSON;
     }
-    
+
     public <D extends OACode> D clone(OAFacade<Introspect> facade, boolean useJSON) throws Exception {
         @SuppressWarnings("unchecked")
         D d = (D)clone();
@@ -41,5 +41,5 @@ public abstract class OACode extends HttpCode<AuthzTrans, OAFacade<Introspect>>
         d.context = facade;
         return d;
     }
-    
+
 }
\ No newline at end of file
index 9777f56..a3242ec 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -46,8 +46,8 @@ public class OAuth2Filter implements Filter {
         HttpServletRequest hreq = (HttpServletRequest)request;
         Principal p = hreq.getUserPrincipal();
         if (request.getContentType().equals("application/x-www-form-urlencoded")) {
-            
-        } else if (p instanceof BearerPrincipal) { 
+
+        } else if (p instanceof BearerPrincipal) {
             for (String authz : Split.splitTrim(';', hreq.getHeader("Authorization"))) {
                 if (authz.startsWith("Bearer ")) {
                     ((BearerPrincipal)p).setBearer(authz.substring(7));
index f63daf8..2d76248 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,23 +36,23 @@ public class OAuth2FormHttpTafResp extends AbsTafResp implements TafResp {
     private HttpServletResponse httpResp;
     private RESP status;
     private final boolean wasFailed;
-    
+
     public OAuth2FormHttpTafResp(Access access, OAuth2FormPrincipal principal, String desc, RESP status, HttpServletResponse resp, boolean wasFailed) {
         super(access,tafName,principal, desc);
         httpResp = resp;
-        this.status = status; 
+        this.status = status;
         this.wasFailed = wasFailed;
     }
 
     public OAuth2FormHttpTafResp(Access access, TrustPrincipal principal, String desc, RESP status,HttpServletResponse resp) {
         super(access,tafName,principal, desc);
         httpResp = resp;
-        this.status = status; 
+        this.status = status;
         wasFailed = true; // if Trust Principal added, must be good
     }
 
     public RESP authenticate() throws IOException {
-        httpResp.setStatus(401); // Unauthorized    
+        httpResp.setStatus(401); // Unauthorized
         return RESP.HTTP_REDIRECT_INVOKED;
     }
 
index 0ed4fbe..4babaf6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,10 +42,10 @@ import aafoauth.v2_0.Introspect;
 public class API_Token {
     // Hide Public Constructor
     private API_Token() {}
-    
+
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param authzAPI
      * @param facade
      * @throws Exception
@@ -65,7 +65,7 @@ public class API_Token {
                 }
             }
         });
-        
+
         authzAPI.route(HttpMethods.POST,"/introspect",API.INTROSPECT,new OACode(facade,"AAF Token Information", true) {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
index 6aec5fe..10830ef 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,6 +24,7 @@ package org.onap.aaf.auth.oauth.facade;
 import org.onap.aaf.auth.env.AuthzTrans;
 import org.onap.aaf.auth.layer.Result;
 
+@FunctionalInterface
 public interface DirectIntrospect<INTROSPECT> {
     Result<INTROSPECT> mappedIntrospect(AuthzTrans trans, String token);
 }
index 36f08b1..db401c7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index f71f7c1..a2a5b23 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 23011d2..15ae4b1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,14 +30,14 @@ import org.onap.aaf.auth.oauth.service.OAuthService;
 
 
 /**
- *   
+ *
  * @author Jonathan
  *
  */
 public interface OAFacade<INTROSPECT> {
 
 /////////////////////  STANDARD ELEMENTS //////////////////
-    /** 
+    /**
      * @param trans
      * @param response
      * @param result
@@ -45,7 +45,7 @@ public interface OAFacade<INTROSPECT> {
     public void error(AuthzTrans trans, HttpServletResponse response, Result<?> result);
 
     /**
-     * 
+     *
      * @param trans
      * @param response
      * @param status
@@ -57,7 +57,7 @@ public interface OAFacade<INTROSPECT> {
     public Result<Void> introspect(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
 
     public OAuthService service();
-    
+
 
 /////////////////////  STANDARD ELEMENTS //////////////////
 
index b0776d9..451ffbe 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,9 +37,9 @@ import aafoauth.v2_0.TokenRequest;
  *
  */
 public class OAFacade1_0 extends OAFacadeImpl<TokenRequest,Token,Introspect,Error> {
-    public OAFacade1_0(AAF_OAuth api, 
+    public OAFacade1_0(AAF_OAuth api,
                      OAuthService service,
-                     Mapper<TokenRequest,Token,Introspect,Error> mapper, 
+                     Mapper<TokenRequest,Token,Introspect,Error> mapper,
                      Data.TYPE type) throws APIException {
         super(api, service, mapper, type);
     }
index 11b7217..0de4ae2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,9 +38,9 @@ public class OAFacadeFactory {
                 certman,
                 service,
                 new Mapper1_0(),
-                type);  
+                type);
     }
-   
+
     public static DirectIntrospect<Introspect> directV1_0(OAuthService service) {
         return new DirectIntrospectImpl<Introspect>(service, new MapperIntrospect1_0());
     }
index 6330664..221508e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -61,7 +61,7 @@ import aaf.v2_0.Perms;
 
 /**
  * AuthzFacade
- * 
+ *
  * This Service Facade encapsulates the essence of the API Service can do, and provides
  * a single created object for elements such as RosettaDF.
  *
@@ -72,14 +72,14 @@ import aaf.v2_0.Perms;
  *         a) In the future, we may support multiple Response Formats, aka JSON or XML, based on User Request.
  * 4) Log Service info, warnings and exceptions as necessary
  * 5) When asked by the API layer, this will create and write Error content to the OutputStream
- * 
- * Note: This Class does NOT set the HTTP Status Code.  That is up to the API layer, so that it can be 
+ *
+ * Note: This Class does NOT set the HTTP Status Code.  That is up to the API layer, so that it can be
  * clearly coordinated with the API Documentation
- * 
+ *
  * @author Jonathan
  *
  */
-public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR> 
+public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
         extends DirectIntrospectImpl<INTROSPECT> implements OAFacade<INTROSPECT> {
     private static final String INVALID_INPUT = "Invalid Input";
     private final RosettaDF<TOKEN> tokenDF;
@@ -88,9 +88,9 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
     private final RosettaDF<ERROR> errDF;
     public final RosettaDF<Perms> permsDF;
     private final Mapper<TOKEN_REQ, TOKEN, INTROSPECT, ERROR> mapper;
-    
+
     public OAFacadeImpl(AAF_OAuth api,
-                      OAuthService service, 
+                      OAuthService service,
                       Mapper<TOKEN_REQ,TOKEN,INTROSPECT,ERROR> mapper,
                       Data.TYPE dataType) throws APIException {
         super(service, mapper);
@@ -102,13 +102,13 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
         (permsDF         = env.newDataFactory(Perms.class)).in(dataType).out(dataType);
         (errDF             = env.newDataFactory(mapper.getClass(API.ERROR))).in(dataType).out(dataType);
     }
-    
+
     ///////////////////////////
     // Tokens
     ///////////////////////////
     public static final String CREATE_TOKEN = "createToken";
     public static final String INTROSPECT = "introspect";
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.oauth.facade.OAFacade#getToken(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, org.onap.aaf.auth.oauth.service.OAuthAPI)
      */
@@ -145,7 +145,7 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
                 rp = Result.err(rs);
             }
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<TOKEN> data = tokenDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -186,10 +186,10 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
                     setContentType(resp,tokenDF.getOutType());
                     return Result.ok();
                 } else if (p instanceof OAuth2FormPrincipal) {
-                    token = req.getParameter("token"); 
+                    token = req.getParameter("token");
                 }
             }
-            
+
             if (token==null) {
                 token = req.getParameter("access_token");
                 if (token==null || token.isEmpty()) {
@@ -207,7 +207,7 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
 
             Result<INTROSPECT> rti = mappedIntrospect(trans,token);
             switch(rti.status) {
-                case OK: 
+                case OK:
                     RosettaData<INTROSPECT> data = introspectDF.newData(trans).load(rti.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -226,11 +226,11 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
             tt.done();
         }
     }
-    
+
 
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#error(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, int)
-     * 
+     *
      * Note: Conforms to AT&T TSS RESTful Error Structure
      */
     @Override
@@ -239,7 +239,7 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
                 result.details==null?"":result.details.trim(),
                 result.variables==null?Result.EMPTY_VARS:result.variables);
     }
-        
+
     @Override
     public void error(AuthzTrans trans, HttpServletResponse response, int status, final String _msg, final Object ... _detail) {
         String msgId;
@@ -261,7 +261,7 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
                 prefix = "Forbidden";
                 response.setStatus(/*httpstatus=*/403);
                 break;
-                
+
             case 404:
             case ERR_NotFound:
                 msgId = "SVC1404";
@@ -275,21 +275,21 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
                 prefix = "Not Acceptable";
                 response.setStatus(/*httpstatus=*/406);
                 break;
-                
+
             case 409:
             case ERR_ConflictAlreadyExists:
                 msgId = "SVC1409";
                 prefix = "Conflict Already Exists";
                 response.setStatus(/*httpstatus=*/409);
                 break;
-            
+
             case 501:
             case ERR_NotImplemented:
                 msgId = "SVC1501";
-                prefix = "Not Implemented"; 
+                prefix = "Not Implemented";
                 response.setStatus(/*httpstatus=*/501);
                 break;
-                
+
 
             default:
                 msgId = "SVC1500";
@@ -303,7 +303,7 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
             StringBuilder holder = new StringBuilder();
             ERROR em = mapper.errorFromMessage(holder, msgId,prefix + ": " + _msg,_detail);
             trans.checkpoint(
-                    "ErrResp [" + 
+                    "ErrResp [" +
                     msgId +
                     "] " +
                     holder.toString(),
@@ -313,16 +313,16 @@ public abstract class OAFacadeImpl<TOKEN_REQ,TOKEN,INTROSPECT,ERROR>
                 em = mapper.errorFromMessage(holder, msgId, "Server had an issue processing this request");
             }
             errDF.newData(trans).load(em).to(response.getOutputStream());
-            
+
         } catch (Exception e) {
             trans.error().log(e,"unable to send response for",_msg);
         }
     }
-    
+
     public Mapper<TOKEN_REQ,TOKEN,INTROSPECT,ERROR> mapper() {
         return mapper;
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.oauth.facade.OAFacade#service()
      */
index d741469..95f0217 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,16 +31,16 @@ import org.onap.aaf.cadi.client.Holder;
 import org.onap.aaf.cadi.oauth.OAuth2Principal;
 
 public interface Mapper<TOKEN_REQ,TOKEN,INTROSPECT,ERROR> extends MapperIntrospect<INTROSPECT>
-{    
+{
     public enum API{TOKEN_REQ, TOKEN,INTROSPECT, ERROR,VOID};
-    
+
     public Class<?> getClass(API api);
     public<A> A newInstance(API api);
 
     public ERROR errorFromMessage(StringBuilder holder, String msgID, String text, Object ... detail);
     public TOKEN_REQ tokenReqFromParams(HttpServletRequest req);
     public OCreds credsFromReq(TOKEN_REQ tokReq);
-    
+
     public OAuthTokenDAO.Data clientTokenReq(TOKEN_REQ tokReq, Holder<GRANT_TYPE> hgt);
     public Result<TOKEN> tokenFromData(Result<OAuthTokenDAO.Data> rs);
     public INTROSPECT fromPrincipal(OAuth2Principal p);
index d4852c1..ddc306c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,7 +49,7 @@ public class Mapper1_0 extends MapperIntrospect1_0 implements Mapper<TokenReques
     @Override
     public Class<?> getClass(API api) {
         switch(api) {
-            case TOKEN_REQ:        return TokenRequest.class; 
+            case TOKEN_REQ:        return TokenRequest.class;
             case TOKEN:         return Token.class;
             case INTROSPECT:     return Introspect.class;
             case ERROR:         return Error.class;
@@ -134,12 +134,12 @@ public class Mapper1_0 extends MapperIntrospect1_0 implements Mapper<TokenReques
                     }
                     break;
 
-            }    
+            }
         }
         return data?tr:null;
     }
-    
-    
+
+
 
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.oauth.mapper.Mapper#credsFromReq(javax.servlet.http.HttpServletRequest)
@@ -156,19 +156,19 @@ public class Mapper1_0 extends MapperIntrospect1_0 implements Mapper<TokenReques
     @Override
     public Data clientTokenReq(TokenRequest tokReq, Holder<GRANT_TYPE> hgt) {
         OAuthTokenDAO.Data tdd = new OAuthTokenDAO.Data();
-        tdd.client_id = tokReq.getClientId(); 
+        tdd.client_id = tokReq.getClientId();
         tdd.user = tokReq.getUsername();
         if (tokReq.getRefreshToken()!=null) {
             tdd.refresh=tokReq.getRefreshToken();
         }
-        
+
         for (GRANT_TYPE ttt : GRANT_TYPE.values()) {
             if (ttt.name().equals(tokReq.getGrantType())) {
                 hgt.set(ttt);
                 break;
             }
         }
-        
+
         switch(hgt.get()) {
             case client_credentials:
             case password:
@@ -179,14 +179,14 @@ public class Mapper1_0 extends MapperIntrospect1_0 implements Mapper<TokenReques
                 tdd.type = CLIENT_TYPE.unknown.ordinal();
                 break;
         }
-        String scopes=tokReq.getScope(); 
+        String scopes=tokReq.getScope();
         if (scopes!=null) {
             Set<String> ss = tdd.scopes(true);
             for (String s: Split.split(' ', tokReq.getScope())) {
                 ss.add(s);
             }
         }
-        
+
         tdd.state = tokReq.getState();
         return tdd;
     }
index 27f40ec..58bd417 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 33df05f..05b99c3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,7 +56,7 @@ public class MapperIntrospect1_0 implements MapperIntrospect<Introspect> {
         }
         return Result.err(rs);
     }
-    
+
     protected static String getScopes(Set<String> scopes) {
         StringBuilder sb = new StringBuilder();
         boolean start = true;
index 5112087..0126c2e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index e3179ae..f163f21 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -89,7 +89,7 @@ public class JSONPermLoaderFactory {
                 if (pd.notOK()) {
                     return Result.err(pd);
                 }
-                // Since we know it is 
+                // Since we know it is
                 StringBuilder sb = new StringBuilder("{\"perm\":[");
                 boolean first = true;
                 for (PermDAO.Data d : pd.value) {
index 1e4b6cb..a13959f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,13 +54,13 @@ import org.onap.aaf.misc.env.APIException;
 import aafoauth.v2_0.Introspect;
 
 public class OAuthService {
-    
+
     private static final int TOK_EXP = 60*60*1000; // 1 hour, millis.
 
     public enum TOKEN_TYPE {unknown,bearer,refresh}
     public enum GRANT_TYPE {unknown,password,client_credentials,refresh_token};
     public enum CLIENT_TYPE {unknown,confidential};
-    
+
     // Additional Expires
     private final DAO<AuthzTrans, ?>[] daos;
     public final OAuthTokenDAO tokenDAO;
@@ -87,7 +87,7 @@ public class OAuthService {
                 String[] split = Split.split(',', alt_url);
                 int timeout = split.length>1?Integer.parseInt(split[1]):3000;
                 altIntrospectClient = tcf.newClient(split[0], timeout);
-                altIntrospectClient.client_creds(access.getProperty(Config.AAF_ALT_CLIENT_ID,null), 
+                altIntrospectClient.client_creds(access.getProperty(Config.AAF_ALT_CLIENT_ID,null),
                                            access.getProperty(Config.AAF_ALT_CLIENT_SECRET,null));
                 altDomain = '@'+access.getProperty(Config.AAF_ALT_OAUTH2_DOMAIN,null);
             } else {
@@ -97,7 +97,7 @@ public class OAuthService {
         } catch (GeneralSecurityException | CadiException | LocatorException e) {
             throw new APIException("Could not construct TokenClientFactory",e);
         }
-    
+
     }
 
     public Result<Void> validate(AuthzTrans trans, OCreds creds) {
@@ -119,7 +119,7 @@ public class OAuthService {
                 return Result.err(Result.ERR_BadData, "Unknown Grant Type");
         }
     }
-    
+
     private Result<Data> createBearerToken(AuthzTrans trans, OAuthTokenDAO.Data odd) {
         if (odd.user==null) {
             odd.user = trans.user();
@@ -128,10 +128,11 @@ public class OAuthService {
         odd.refresh = AAFToken.toToken(UUID.randomUUID());
         odd.active = true;
         long exp;
-        odd.expires = new Date(exp=(System.currentTimeMillis()+TOK_EXP));
+        exp=(System.currentTimeMillis()+TOK_EXP);
+        odd.expires = new Date(exp);
         odd.exp_sec = exp/1000;
         odd.req_ip = trans.ip();
-    
+
         try {
             Result<Data> rd = loadToken(trans, odd);
             if (rd.notOK()) {
@@ -142,7 +143,7 @@ public class OAuthService {
         }
         return tokenDAO.create(trans, odd);
     }
-    
+
     private Result<Data> loadToken(AuthzTrans trans, Data odd) throws APIException, CadiException {
         Result<String> rs = permLoader.loadJSONPerms(trans,odd.user,odd.scopes(false));
         if (rs.isOK()) {
@@ -156,8 +157,8 @@ public class OAuthService {
             return Result.err(Result.ERR_Backend,"Error accessing AAF Info: %s",rs.errorString());
         }
     }
-    
-    
+
+
 
     private Result<Data> refreshBearerToken(AuthzTrans trans, Data odd) {
         Result<List<Data>> rld = tokenDAO.readByUser(trans, trans.user());
@@ -189,7 +190,7 @@ public class OAuthService {
                 break;
             }
         }
-        
+
         if (token==null) {
             trans.audit().printf("Duplicate Refresh Token (%s) attempted for %s. Possible Replay Attack",odd.refresh.toString(),trans.user());
             return Result.err(Result.ERR_Security,"Invalid Refresh Token");
index af15d4c..0e10b1b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 61608a1..3e7b035 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 2295873..b476903 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 13ba4e7..0b58aec 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 461716e..1749479 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 6e6722f..44a2803 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 8a75bc4..c6bb61e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index f10129c..8bee2a5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index f8992e2..d67ad9b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 786b428..810a934 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index b2f45be..4e30680 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index bdba469..ba4df19 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -79,13 +79,13 @@ public class AAF_Service extends AbsService<AuthzEnv,AuthzTrans> {
     private DirectAAFUserPass directAAFUserPass;
     private final Cluster cluster;
     //private final OAuthService oauthService;
-    
+
     /**
      * Construct AuthzAPI with all the Context Supporting Routes that Authz needs
-     * 
+     *
      * @param env
-     * @param decryptor 
-     * @throws APIException 
+     * @param decryptor
+     * @throws APIException
      */
     public AAF_Service( final AuthzEnv env) throws Exception {
         super(env.access(), env);
@@ -99,12 +99,12 @@ public class AAF_Service extends AbsService<AuthzEnv,AuthzTrans> {
         // Start Background Processing
         question = new Question(trans, cluster, CassAccess.KEYSPACE);
         question.startTimers(env);
-        
+
         DirectCertIdentity.set(question.certDAO());
 
         // Have AAFLocator object Create DirectLocators for Location needs
         AbsAAFLocator.setCreator(new DirectLocatorCreator(env, question.locateDAO));
-        
+
         // Initialize Organizations... otherwise, first pass may miss
         int org_size = ORGANIZATION.length();
         for (String n : env.existingStaticSlotNames()) {
@@ -112,16 +112,16 @@ public class AAF_Service extends AbsService<AuthzEnv,AuthzTrans> {
                 OrganizationFactory.obtain(env, n.substring(org_size));
             }
         }
-        
+
 
         // For direct Introspection needs.
         //oauthService = new OAuthService(trans, question);
-        
+
         facade = AuthzFacadeFactory.v2_0(env,trans,Data.TYPE.JSON,question);
         facade_XML = AuthzFacadeFactory.v2_0(env,trans,Data.TYPE.XML,question);
 
         directAAFUserPass = new DirectAAFUserPass(trans.env(),question);
-    
+
         // Print results and cleanup
         StringBuilder sb = new StringBuilder();
         trans.auditTrail(0, sb);
@@ -157,9 +157,9 @@ public class AAF_Service extends AbsService<AuthzEnv,AuthzTrans> {
         // init functions
         API_Mgmt.init(this, facade);
         API_Api.init(this, facade);
-        
+
     }
-    
+
     @Override
     public Filter[] _filters(Object ... additionalTafLurs) throws CadiException, LocatorException {
         final String domain = FQI.reverseDomain(access.getProperty(Config.AAF_ROOT_NS,Config.AAF_ROOT_NS_DEF));
@@ -173,7 +173,7 @@ public class AAF_Service extends AbsService<AuthzEnv,AuthzTrans> {
             if (additionalTafLurs.length>0) {
                 System.arraycopy(additionalTafLurs, 0, atl, 2, additionalTafLurs.length);
             }
-            
+
             return new Filter[] {
                 new AuthzTransFilter(env,aafCon(),
                     new AAFTrustChecker((Env)env),
@@ -193,8 +193,8 @@ public class AAF_Service extends AbsService<AuthzEnv,AuthzTrans> {
             new DirectRegistrar(access,question.locateDAO, actualPort)
         };
     }
-    
-    @Override 
+
+    @Override
     public void postStartup(final String hostname, final int port) throws APIException {
         try {
             CacheInfoDAO.startUpdate(env, aafCon().hman(), aafCon().securityInfo().defSS,hostname,port);
@@ -213,16 +213,16 @@ public class AAF_Service extends AbsService<AuthzEnv,AuthzTrans> {
         super.destroy();
     }
 
-    
+
     /**
      * Setup XML and JSON implementations for each supported Version type
-     * 
+     *
      * We do this by taking the Code passed in and creating clones of these with the appropriate Facades and properties
      * to do Versions and Content switches
-     * 
+     *
      */
     public void route(HttpMethods meth, String path, API api, Code code) throws Exception {
-        Class<?> respCls = facade.mapper().getClass(api); 
+        Class<?> respCls = facade.mapper().getClass(api);
         if (respCls==null) throw new Exception("Unknown class associated with " + api.getClass().getName() + ' ' + api.name());
         String application = applicationJSON(respCls, Config.AAF_DEFAULT_API_VERSION);
 
@@ -238,7 +238,7 @@ public class AAF_Service extends AbsService<AuthzEnv,AuthzTrans> {
         try {
             Log4JLogIt logIt = new Log4JLogIt(args, "authz");
             PropAccess propAccess = new PropAccess(logIt,args);
-            
+
             try {
                 new JettyServiceStarter<AuthzEnv,AuthzTrans>(
                     new AAF_Service(new AuthzEnv(propAccess)),true)
index 3b01082..2431e0e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -99,8 +99,8 @@ import org.onap.aaf.misc.env.util.Split;
 import aaf.v2_0.CredRequest;
 
 /**
- * AuthzCassServiceImpl implements AuthzCassService for 
- * 
+ * AuthzCassServiceImpl implements AuthzCassService for
+ *
  * @author Jonathan
  *
  * @param <NSS>
@@ -116,12 +116,12 @@ import aaf.v2_0.CredRequest;
  */
 public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS>
     implements AuthzService            <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> {
-    
+
     private static final String TWO_SPACE = "  ";
     private Mapper                    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> mapper;
     @Override
     public Mapper                    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> mapper() {return mapper;}
-    
+
     private static final String ASTERIX = "*";
     private static final String CACHE = "cache";
     private static final String ROOT_NS = Define.ROOT_NS();
@@ -129,28 +129,28 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
     private final Question ques;
     private final Function func;
-    
+
     public AuthzCassServiceImpl(AuthzTrans trans, Mapper<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> mapper,Question question) {
         this.ques = question;
         func = new Function(trans, question);
         this.mapper = mapper;
-        
+
     }
 
 /***********************************
- * NAMESPACE 
+ * NAMESPACE
  ***********************************/
     /**
      * createNS
-     * @throws DAOException 
+     * @throws DAOException
      * @see org.onap.aaf.auth.service.AuthzService#createNS(org.onap.aaf.auth.env.test.AuthzTrans, java.lang.String, java.lang.String)
      */
-    @ApiDoc( 
-            method = POST,  
+    @ApiDoc(
+            method = POST,
             path = "/authz/ns",
             params = {},
             expectedCode = 201,
-            errorCodes = { 403,404,406,409 }, 
+            errorCodes = { 403,404,406,409 },
             text = { "Namespace consists of: ",
                     "<ul><li>name - What you want to call this Namespace</li>",
                     "<li>responsible(s) - Person(s) who receive Notifications and approves Requests ",
@@ -168,7 +168,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public Result<Void> createNS(final AuthzTrans trans, REQUEST from, NsType type) {
         final Result<Namespace> rnamespace = mapper.ns(trans, from);
         final ServiceValidator v = new ServiceValidator();
-        if (v.ns(rnamespace).err()) { 
+        if (v.ns(rnamespace).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
         final Namespace namespace = rnamespace.value;
@@ -176,13 +176,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (parentNs.notOK()) {
             return Result.err(parentNs);
         }
-        
+
         // Note: Data validate occurs in func.createNS
         if (namespace.name.lastIndexOf('.')<0) { // Root Namespace... Function will check if allowed
             return func.createNS(trans, namespace, false);
         }
-        
-        Result<FutureDAO.Data> fd = mapper.future(trans, NsDAO.TABLE,from,namespace,true, 
+
+        Result<FutureDAO.Data> fd = mapper.future(trans, NsDAO.TABLE,from,namespace,true,
                 new Mapper.Memo() {
                     @Override
                     public String get() {
@@ -204,7 +204,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     Result<String> rfc = func.createFuture(trans, fd.value, namespace.name, trans.user(),parentNs.value, FUTURE_OP.C);
                     if (rfc.isOK()) {
                         return Result.err(Status.ACC_Future, "NS [%s] is saved for future processing",namespace.name);
-                    } else { 
+                    } else {
                         return Result.err(rfc);
                     }
                 case Status.ACC_Now:
@@ -213,16 +213,16 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     return Result.err(fd);
             }
     }
-    
+
     @ApiDoc(
-            method = POST,  
+            method = POST,
             path = "/authz/ns/:ns/admin/:id",
             params = {     "ns|string|true",
-                        "id|string|true" 
+                        "id|string|true"
                     },
             expectedCode = 201,
-            errorCodes = { 403,404,406,409 }, 
-            text = {     "Add an Identity :id to the list of Admins for the Namespace :ns", 
+            errorCodes = { 403,404,406,409 },
+            text = {     "Add an Identity :id to the list of Admins for the Namespace :ns",
                         "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)" }
             )
     @Override
@@ -231,13 +231,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
     @ApiDoc(
-            method = DELETE,  
+            method = DELETE,
             path = "/authz/ns/:ns/admin/:id",
             params = {     "ns|string|true",
-                        "id|string|true" 
+                        "id|string|true"
                     },
             expectedCode = 200,
-            errorCodes = { 403,404 }, 
+            errorCodes = { 403,404 },
             text = {     "Remove an Identity :id from the list of Admins for the Namespace :ns",
                         "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)" }
             )
@@ -247,13 +247,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
     @ApiDoc(
-            method = POST,  
+            method = POST,
             path = "/authz/ns/:ns/responsible/:id",
             params = {     "ns|string|true",
-                        "id|string|true" 
+                        "id|string|true"
                     },
             expectedCode = 201,
-            errorCodes = { 403,404,406,409 }, 
+            errorCodes = { 403,404,406,409 },
             text = {     "Add an Identity :id to the list of Responsibles for the Namespace :ns",
                         "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)" }
             )
@@ -263,13 +263,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
     @ApiDoc(
-            method = DELETE,  
+            method = DELETE,
             path = "/authz/ns/:ns/responsible/:id",
             params = {     "ns|string|true",
-                        "id|string|true" 
+                        "id|string|true"
                     },
             expectedCode = 200,
-            errorCodes = { 403,404 }, 
+            errorCodes = { 403,404 },
             text = {     "Remove an Identity :id to the list of Responsibles for the Namespace :ns",
                         "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)",
                         "Note: A namespace must have at least 1 responsible party"
@@ -284,14 +284,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
      * @see org.onap.aaf.auth.service.AuthzService#applyModel(org.onap.aaf.auth.env.test.AuthzTrans, java.lang.Object)
      */
     @ApiDoc(
-            method = POST,  
+            method = POST,
             path = "/authz/ns/:ns/attrib/:key/:value",
             params = {     "ns|string|true",
                         "key|string|true",
                         "value|string|true"},
             expectedCode = 201,
-            errorCodes = { 403,404,406,409 },  
-            text = {     
+            errorCodes = { 403,404,406,409 },
+            text = {
                 "Create an attribute in the Namespace",
                 "You must be given direct permission for key by AAF"
                 }
@@ -319,9 +319,9 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             if (nsd.attrib.get(key)!=null) {
                 return Result.err(Status.ERR_ConflictAlreadyExists, "NS Property %s:%s exists", ns, key);
             }
-            
+
             // Check if User may put
-            if (!ques.isGranted(trans, trans.user(), ROOT_NS, Question.ATTRIB, 
+            if (!ques.isGranted(trans, trans.user(), ROOT_NS, Question.ATTRIB,
                     ":"+trans.org().getDomain()+".*:"+key, Access.write.name())) {
                 return Result.err(Status.ERR_Denied, "%s may not create NS Attrib [%s:%s]", trans.user(),ns, key);
             }
@@ -335,14 +335,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @ApiDoc(
-            method = GET,  
+            method = GET,
             path = "/authz/ns/attrib/:key",
             params = {     "key|string|true" },
             expectedCode = 200,
-            errorCodes = { 403,404 },  
-            text = {     
+            errorCodes = { 403,404 },
+            text = {
                 "Read Attributes for Namespace"
                 }
             )
@@ -355,7 +355,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
 
         // May Read
-        if (!ques.isGranted(trans, trans.user(), ROOT_NS, Question.ATTRIB, 
+        if (!ques.isGranted(trans, trans.user(), ROOT_NS, Question.ATTRIB,
                     ":"+trans.org().getDomain()+".*:"+key, Question.READ)) {
             return Result.err(Status.ERR_Denied,"%s may not read NS by Attrib '%s'",trans.user(),key);
         }
@@ -369,13 +369,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
 
     @ApiDoc(
-            method = PUT,  
+            method = PUT,
             path = "/authz/ns/:ns/attrib/:key/:value",
             params = {     "ns|string|true",
                         "key|string|true"},
             expectedCode = 200,
-            errorCodes = { 403,404 },  
-            text = {     
+            errorCodes = { 403,404 },
+            text = {
                 "Update Value on an existing attribute in the Namespace",
                 "You must be given direct permission for key by AAF"
                 }
@@ -403,9 +403,9 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             if (nsd.attrib.get(key)==null) {
                 return Result.err(Status.ERR_NotFound, "NS Property %s:%s exists", ns, key);
             }
-            
+
             // Check if User may put
-            if (!ques.isGranted(trans, trans.user(), ROOT_NS, Question.ATTRIB, 
+            if (!ques.isGranted(trans, trans.user(), ROOT_NS, Question.ATTRIB,
                     ":"+trans.org().getDomain()+".*:"+key, Access.write.name())) {
                 return Result.err(Status.ERR_Denied, "%s may not create NS Attrib [%s:%s]", trans.user(),ns, key);
             }
@@ -414,20 +414,20 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             nsd.attrib.put(key, value);
             ques.nsDAO().invalidate(trans, nsd);
             return ques.nsDAO().update(trans,nsd);
+
         } finally {
             tt.done();
         }
     }
 
     @ApiDoc(
-            method = DELETE,  
+            method = DELETE,
             path = "/authz/ns/:ns/attrib/:key",
             params = {     "ns|string|true",
                         "key|string|true"},
             expectedCode = 200,
-            errorCodes = { 403,404 },  
-            text = {     
+            errorCodes = { 403,404 },
+            text = {
                 "Delete an attribute in the Namespace",
                 "You must be given direct permission for key by AAF"
                 }
@@ -454,7 +454,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             if (nsd.attrib.get(key)==null) {
                 return Result.err(Status.ERR_NotFound, "NS Property [%s:%s] does not exist", ns, key);
             }
-            
+
             // Check if User may del
             if (!ques.isGranted(trans, trans.user(), ROOT_NS, "attrib", ":" + ROOT_COMPANY + ".*:"+key, Access.write.name())) {
                 return Result.err(Status.ERR_Denied, "%s may not delete NS Attrib [%s:%s]", trans.user(),ns, key);
@@ -471,12 +471,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
     @ApiDoc(
-            method = GET,  
+            method = GET,
             path = "/authz/nss/:id",
             params = {     "id|string|true" },
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
-            text = {     
+            errorCodes = { 404,406 },
+            text = {
                 "Lists the Owner(s), Admin(s), Description, and Attributes of Namespace :id",
             }
             )
@@ -486,7 +486,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("NS", ns).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         Result<List<NsDAO.Data>> rlnd = ques.nsDAO().read(trans, ns);
         if (rlnd.isOK()) {
             if (rlnd.isEmpty()) {
@@ -494,10 +494,10 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
             Result<NsDAO.Data> rnd = ques.mayUser(trans, trans.user(), rlnd.value.get(0), Access.read);
             if (rnd.notOK()) {
-                return Result.err(rnd); 
+                return Result.err(rnd);
             }
-            
-            
+
+
             Namespace namespace = new Namespace(rnd.value);
             Result<List<String>> rd = func.getOwners(trans, namespace.name, includeExpired);
             if (rd.isOK()) {
@@ -507,7 +507,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             if (rd.isOK()) {
                 namespace.admin = rd.value;
             }
-            
+
             NSS nss = mapper.newInstance(API.NSS);
             return mapper.nss(trans, namespace, nss);
         } else {
@@ -516,13 +516,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
     @ApiDoc(
-            method = GET,  
+            method = GET,
             path = "/authz/nss/admin/:id",
             params = {     "id|string|true" },
             expectedCode = 200,
-            errorCodes = { 403,404 }, 
-            text = {     "Lists all Namespaces where Identity :id is an Admin", 
-                        "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)" 
+            errorCodes = { 403,404 },
+            text = {     "Lists all Namespaces where Identity :id is an Admin",
+                        "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)"
                     }
             )
     @Override
@@ -531,13 +531,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("User", user).err()) {
             return Result.err(Status.ERR_BadData, v.errs());
         }
-        
+
         Result<Collection<Namespace>> rn = loadNamepace(trans, user, ".admin", full);
         if (rn.notOK()) {
             return Result.err(rn);
         }
         if (rn.isEmpty()) {
-            return Result.err(Status.ERR_NotFound, "[%s] is not an admin for any namespaces",user);        
+            return Result.err(Status.ERR_NotFound, "[%s] is not an admin for any namespaces",user);
         }
         NSS nss = mapper.newInstance(API.NSS);
         // Note: "loadNamespace" already validates view of Namespace
@@ -545,13 +545,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
     @ApiDoc(
-            method = GET,  
+            method = GET,
             path = "/authz/nss/either/:id",
             params = {     "id|string|true" },
             expectedCode = 200,
-            errorCodes = { 403,404 }, 
-            text = {     "Lists all Namespaces where Identity :id is either an Admin or an Owner", 
-                        "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)" 
+            errorCodes = { 403,404 },
+            text = {     "Lists all Namespaces where Identity :id is either an Admin or an Owner",
+                        "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)"
                     }
             )
     @Override
@@ -560,13 +560,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("User", user).err()) {
             return Result.err(Status.ERR_BadData, v.errs());
         }
-        
+
         Result<Collection<Namespace>> rn = loadNamepace(trans, user, null, full);
         if (rn.notOK()) {
             return Result.err(rn);
         }
         if (rn.isEmpty()) {
-            return Result.err(Status.ERR_NotFound, "[%s] is not an admin or owner for any namespaces",user);        
+            return Result.err(Status.ERR_NotFound, "[%s] is not an admin or owner for any namespaces",user);
         }
         NSS nss = mapper.newInstance(API.NSS);
         // Note: "loadNamespace" already validates view of Namespace
@@ -595,7 +595,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         if (rls.isOK()) {
                             namespace.admin=rls.value;
                         }
-                        
+
                         rls = func.getOwners(trans, namespace.name, false);
                         if (rls.isOK()) {
                             namespace.owner=rls.value;
@@ -619,7 +619,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                             }
                             if (endsWith==null || urdd.role.endsWith(endsWith)) {
                                 lm.put(namespace.name,namespace);
-                            } else { 
+                            } else {
                                 other.put(namespace.name,namespace);
                             }
                         }
@@ -636,12 +636,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
     @ApiDoc(
-            method = GET,  
+            method = GET,
             path = "/authz/nss/responsible/:id",
             params = {     "id|string|true" },
             expectedCode = 200,
-            errorCodes = { 403,404 }, 
-            text = {     "Lists all Namespaces where Identity :id is a Responsible Party", 
+            errorCodes = { 403,404 },
+            text = {     "Lists all Namespaces where Identity :id is a Responsible Party",
                         "Note: :id must be fully qualified (i.e. ab1234@people.osaaf.org)"
                     }
             )
@@ -656,20 +656,20 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.err(rn);
         }
         if (rn.isEmpty()) {
-            return Result.err(Status.ERR_NotFound, "[%s] is not an owner for any namespaces",user);        
+            return Result.err(Status.ERR_NotFound, "[%s] is not an owner for any namespaces",user);
         }
         NSS nss = mapper.newInstance(API.NSS);
         // Note: "loadNamespace" prevalidates
         return mapper.nss(trans, rn.value, nss);
     }
-    
+
     @ApiDoc(
-            method = GET,  
+            method = GET,
             path = "/authz/nss/children/:id",
             params = {     "id|string|true" },
             expectedCode = 200,
-            errorCodes = { 403,404 }, 
-            text = {     "Lists all Child Namespaces of Namespace :id", 
+            errorCodes = { 403,404 },
+            text = {     "Lists all Child Namespaces of Namespace :id",
                         "Note: This is not a cached read"
                     }
             )
@@ -679,14 +679,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("NS", parent).err())  {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         Result<NsDAO.Data> rnd = ques.deriveNs(trans, parent);
         if (rnd.notOK()) {
             return Result.err(rnd);
         }
         rnd = ques.mayUser(trans, trans.user(), rnd.value, Access.read);
         if (rnd.notOK()) {
-            return Result.err(rnd); 
+            return Result.err(rnd);
         }
 
         Set<Namespace> lm = new HashSet<>();
@@ -701,7 +701,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 if (rls.isOK()) {
                     namespace.admin=rls.value;
                 }
-                
+
                 rls = func.getOwners(trans, namespace.name, false);
                 if (rls.isOK()) {
                     namespace.owner=rls.value;
@@ -718,11 +718,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
 
     @ApiDoc(
-            method = PUT,  
+            method = PUT,
             path = "/authz/ns",
             params = {},
             expectedCode = 200,
-            errorCodes = { 403,404,406 }, 
+            errorCodes = { 403,404,406 },
             text = { "Replace the Current Description of a Namespace with a new one"
                     }
             )
@@ -739,11 +739,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
         Namespace namespace = nsd.value;
         Result<List<NsDAO.Data>> rlnd = ques.nsDAO().read(trans, namespace.name);
-        
+
         if (rlnd.notOKorIsEmpty()) {
             return Result.err(Status.ERR_NotFound, "Namespace [%s] does not exist",namespace.name);
         }
-        
+
         if (ques.mayUser(trans, trans.user(), rlnd.value.get(0), Access.write).notOK()) {
             return Result.err(Status.ERR_Denied, "You do not have approval to change %s",namespace.name);
         }
@@ -755,18 +755,18 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.err(rdr);
         }
     }
-    
+
     /**
      * deleteNS
-     * @throws DAOException 
+     * @throws DAOException
      * @see org.onap.aaf.auth.service.AuthzService#deleteNS(org.onap.aaf.auth.env.test.AuthzTrans, java.lang.String, java.lang.String)
      */
     @ApiDoc(
-            method = DELETE,  
+            method = DELETE,
             path = "/authz/ns/:ns",
             params = {     "ns|string|true" },
             expectedCode = 200,
-            errorCodes = { 403,404,424 }, 
+            errorCodes = { 403,404,424 },
             text = {     "Delete the Namespace :ns. Namespaces cannot normally be deleted when there ",
                         "are still credentials associated with them, but they can be deleted by setting ",
                         "the \"force\" property. To do this: Add 'force=true' as a query parameter",
@@ -783,19 +783,19 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
 
 /***********************************
- * PERM 
+ * PERM
  ***********************************/
 
     /*
      * (non-Javadoc)
      * @see org.onap.aaf.auth.service.AuthzService#createOrUpdatePerm(org.onap.aaf.auth.env.test.AuthzTrans, java.lang.Object, boolean, java.lang.String, java.lang.String, java.lang.String, java.util.List, java.util.List)
      */
-    @ApiDoc( 
-            method = POST,  
+    @ApiDoc(
+            method = POST,
             path = "/authz/perm",
             params = {},
             expectedCode = 201,
-            errorCodes = {403,404,406,409}, 
+            errorCodes = {403,404,406,409},
             text = { "Permission consists of:",
                      "<ul><li>type - a Namespace qualified identifier specifying what kind of resource "
                      + "is being protected</li>",
@@ -806,7 +806,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                      }
             )
     @Override
-    public Result<Void> createPerm(final AuthzTrans trans,REQUEST rreq) {        
+    public Result<Void> createPerm(final AuthzTrans trans,REQUEST rreq) {
         final Result<PermDAO.Data> newPd = mapper.perm(trans, rreq);
 
         final ServiceValidator v = new ServiceValidator();
@@ -824,7 +824,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     return Result.err(rlpdd);
                 }
                 if(!rlpdd.isEmpty()) {
-                    return Result.err(Result.ERR_ConflictAlreadyExists,"Permission already exists"); 
+                    return Result.err(Result.ERR_ConflictAlreadyExists,"Permission already exists");
                 }
 
                 RoleDAO.Data rdd = new RoleDAO.Data();
@@ -836,7 +836,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 if(rpdd.notOK()) {
                     return Result.err(rpdd);
                 }
-                
+
                 CachedRoleDAO roleDAO = ques.roleDAO();
                 Result<List<RoleDAO.Data>> rlrdd = roleDAO.read(trans, rdd);
                 if(rlrdd.notOK()) {
@@ -846,14 +846,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         rdd = rlrdd.value.get(0);
                     }
                 }
-                
+
                 String eperm = pdd.encode();
                 rdd.perms(true).add(eperm);
                 Result<Void> rv = roleDAO.update(trans, rdd);
                 if(rv.notOK()) {
                     return rv;
                 }
-                 
+
                 CachedUserRoleDAO urDAO = ques.userRoleDAO();
                 UserRoleDAO.Data urdd = new UserRoleDAO.Data();
                 urdd.user = trans.user();
@@ -883,14 +883,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 return Result.err(Status.ERR_ConflictAlreadyExists,
                         "Permission Type exists as a Namespace");
             }
-            
+
             Result<FutureDAO.Data> fd = mapper.future(trans, PermDAO.TABLE, rreq, newPd.value,false,
                 new Mapper.Memo() {
                     @Override
                     public String get() {
-                        return "Create Permission [" + 
-                            newPd.value.fullType() + '|' + 
-                            newPd.value.instance + '|' + 
+                        return "Create Permission [" +
+                            newPd.value.fullType() + '|' +
+                            newPd.value.instance + '|' +
                             newPd.value.action + ']';
                     }
                 },
@@ -904,14 +904,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         return nsd;
                     }
                 });
-            
+
             Result<List<NsDAO.Data>> nsr = ques.nsDAO().read(trans, newPd.value.ns);
             if (nsr.notOKorIsEmpty()) {
                 return Result.err(nsr);
             }
             switch(fd.status) {
                 case OK:
-                    Result<String> rfc = func.createFuture(trans,fd.value, 
+                    Result<String> rfc = func.createFuture(trans,fd.value,
                             newPd.value.fullType() + '|' + newPd.value.instance + '|' + newPd.value.action,
                             trans.user(),
                             nsr.value.get(0),
@@ -933,12 +933,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
-    @ApiDoc( 
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authz/perms/:type",
             params = {"type|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "List All Permissions that match the :type element of the key" }
             )
     @Override
@@ -956,7 +956,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 //        We don't have instance & action for mayUserView... do we want to loop through all returned here as well as in mapper?
 //        Result<NsDAO.Data> r;
 //        if ((r = ques.mayUserViewPerm(trans, trans.user(), permType)).notOK())return Result.err(r);
-        
+
         PERMS perms = mapper.newInstance(API.PERMS);
         if (!rlpd.isEmpty()) {
             // Note: Mapper will restrict what can be viewed
@@ -964,15 +964,15 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
         return Result.ok(perms);
     }
-    
-    @ApiDoc( 
-            method = GET,  
+
+    @ApiDoc(
+            method = GET,
             path = "/authz/perms/:type/:instance/:action",
             params = {"type|string|true",
                       "instance|string|true",
                       "action|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "List Permissions that match key; :type, :instance and :action" }
             )
     @Override
@@ -983,7 +983,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 || v.nullOrBlank("PermAction", action).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         Result<List<PermDAO.Data>> rlpd = ques.getPermsByName(trans, type, instance, action);
         if (rlpd.notOK()) {
             return Result.err(rlpd);
@@ -997,12 +997,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         return Result.ok(perms);
     }
 
-    @ApiDoc( 
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authz/perms/user/:user",
             params = {"user|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "List All Permissions that match user :user",
                      "<p>'user' must be expressed as full identity (ex: id@full.domain.com)</p>"}
             )
@@ -1018,25 +1018,25 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rlpd.notOK()) {
             return Result.err(rlpd);
         }
-        
+
         PERMS perms = mapper.newInstance(API.PERMS);
-        
+
         if (rlpd.isEmpty()) {
             return Result.ok(perms);
         }
         // Note: Mapper will restrict what can be viewed
         //   if user is the same as that which is looked up, no filtering is required
-        return mapper.perms(trans, rlpd.value, 
-                perms, 
+        return mapper.perms(trans, rlpd.value,
+                perms,
                 !user.equals(trans.user()));
     }
 
-    @ApiDoc( 
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authz/perms/user/:user/scope/:scope",
             params = {"user|string|true","scope|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "List All Permissions that match user :user, filtered by NS (Scope)",
                      "<p>'user' must be expressed as full identity (ex: id@full.domain.com)</p>",
                      "<p>'scope' must be expressed as NSs separated by ':'</p>"
@@ -1053,26 +1053,26 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rlpd.notOK()) {
             return Result.err(rlpd);
         }
-        
+
         PERMS perms = mapper.newInstance(API.PERMS);
-        
+
         if (rlpd.isEmpty()) {
             return Result.ok(perms);
         }
         // Note: Mapper will restrict what can be viewed
         //   if user is the same as that which is looked up, no filtering is required
-        return mapper.perms(trans, rlpd.value, 
-                perms, 
+        return mapper.perms(trans, rlpd.value,
+                perms,
                 scopes,
                 !user.equals(trans.user()));
     }
 
-    @ApiDoc( 
-            method = POST,  
+    @ApiDoc(
+            method = POST,
             path = "/authz/perms/user/:user",
             params = {"user|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "List All Permissions that match user :user",
                      "<p>'user' must be expressed as full identity (ex: id@full.domain.com)</p>",
                      "",
@@ -1100,15 +1100,15 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("User", user).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         //////////////
         PermLookup pl = PermLookup.get(trans,ques,user);
         Result<List<PermDAO.Data>> rlpd = pl.getPerms(trans.requested(force));
         if (rlpd.notOK()) {
             return Result.err(rlpd);
         }
-        
-        /*//TODO 
+
+        /*//TODO
           1) See if allowed to query
           2) See if User is allowed
           */
@@ -1150,25 +1150,25 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     out.add(pdd);
                 }
             }
-        }        
-        
+        }
+
         perms = mapper.newInstance(API.PERMS);
         if (rlpd.isEmpty()) {
             return Result.ok(perms);
         }
         // Note: Mapper will restrict what can be viewed
         //   if user is the same as that which is looked up, no filtering is required
-        return mapper.perms(trans, rlpd.value, 
-                perms, 
+        return mapper.perms(trans, rlpd.value,
+                perms,
                 !user.equals(trans.user()));
     }
-    
-    @ApiDoc( 
-            method = GET,  
+
+    @ApiDoc(
+            method = GET,
             path = "/authz/perms/role/:role",
             params = {"role|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "List All Permissions that are granted to :role" }
             )
     @Override
@@ -1198,12 +1198,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         return Result.ok(perms);
     }
 
-    @ApiDoc( 
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authz/perms/ns/:ns",
             params = {"ns|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "List All Permissions that are in Namespace :ns" }
             )
     @Override
@@ -1220,9 +1220,9 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
         rnd = ques.mayUser(trans, trans.user(), rnd.value, Access.read);
         if (rnd.notOK()) {
-            return Result.err(rnd);     
+            return Result.err(rnd);
         }
-        
+
         Result<List<PermDAO.Data>> rlpd = ques.permDAO().readNS(trans, ns);
         if (rlpd.notOK()) {
             return Result.err(rlpd);
@@ -1235,15 +1235,15 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
         return Result.ok(perms);
     }
-    
-    @ApiDoc( 
-            method = PUT,  
+
+    @ApiDoc(
+            method = PUT,
             path =     "/authz/perm/:type/:instance/:action",
             params = {"type|string|true",
                       "instance|string|true",
                         "action|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406, 409 }, 
+            errorCodes = { 404,406, 409 },
             text = { "Rename the Permission referenced by :type :instance :action, and "
                     + "rename (copy/delete) to the Permission described in PermRequest" }
             )
@@ -1259,54 +1259,54 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.err(Status.ERR_Denied, "You do not have approval to change Permission [%s.%s|%s|%s]",
                     newPd.value.ns,newPd.value.type,newPd.value.instance,newPd.value.action);
         }
-        
+
         Result<NsSplit> nss = ques.deriveNsSplit(trans, origType);
-        Result<List<PermDAO.Data>> origRlpd = ques.permDAO().read(trans, nss.value.ns, nss.value.name, origInstance, origAction); 
-        
+        Result<List<PermDAO.Data>> origRlpd = ques.permDAO().read(trans, nss.value.ns, nss.value.name, origInstance, origAction);
+
         if (origRlpd.notOKorIsEmpty()) {
-            return Result.err(Status.ERR_PermissionNotFound, 
+            return Result.err(Status.ERR_PermissionNotFound,
                     "Permission [%s|%s|%s] does not exist",
                     origType,origInstance,origAction);
         }
-        
+
         PermDAO.Data origPd = origRlpd.value.get(0);
 
         if (!origPd.ns.equals(newPd.value.ns)) {
             return Result.err(Status.ERR_Denied, "Cannot change namespace with rename command. " +
                     "<new type> must start with [" + origPd.ns + "]");
         }
-        
-        if ( origPd.type.equals(newPd.value.type) && 
-                origPd.action.equals(newPd.value.action) && 
+
+        if ( origPd.type.equals(newPd.value.type) &&
+                origPd.action.equals(newPd.value.action) &&
                 origPd.instance.equals(newPd.value.instance) ) {
             return Result.err(Status.ERR_ConflictAlreadyExists, "New Permission must be different than original permission");
         }
-        
+
         Set<String> origRoles = origPd.roles(false);
         if (!origRoles.isEmpty()) {
             Set<String> roles = newPd.value.roles(true);
             for (String role : origPd.roles) {
-                roles.add(role); 
+                roles.add(role);
             }
-        }    
-        
+        }
+
         newPd.value.description = origPd.description;
-        
+
         Result<Void> rv = null;
-        
+
         rv = func.createPerm(trans, newPd.value, false);
         if (rv.isOK()) {
             rv = func.deletePerm(trans, origPd, true, false);
         }
         return rv;
     }
-    
-    @ApiDoc( 
-            method = PUT,  
+
+    @ApiDoc(
+            method = PUT,
             path = "/authz/perm",
             params = {},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "Add Description Data to Perm" }
             )
     @Override
@@ -1344,7 +1344,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
 
     }
-    
+
     @ApiDoc(
             method = PUT,
             path = "/authz/role/perm",
@@ -1372,18 +1372,18 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
 
         // Read full set to get CURRENT values
-        Result<List<PermDAO.Data>> rcurr = ques.permDAO().read(trans, 
-                updt.value.ns, 
-                updt.value.type, 
-                updt.value.instance, 
+        Result<List<PermDAO.Data>> rcurr = ques.permDAO().read(trans,
+                updt.value.ns,
+                updt.value.type,
+                updt.value.instance,
                 updt.value.action);
-        
+
         if (rcurr.notOKorIsEmpty()) {
-            return Result.err(Status.ERR_PermissionNotFound, 
+            return Result.err(Status.ERR_PermissionNotFound,
                     "Permission [%s.%s|%s|%s] does not exist",
                      updt.value.ns,updt.value.type,updt.value.instance,updt.value.action);
         }
-        
+
         // Create a set of Update Roles, which are in Internal Format
         Set<String> updtRoles = new HashSet<>();
         Result<NsSplit> nss;
@@ -1397,11 +1397,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
 
         Result<Void> rv = null;
-        
+
         for (PermDAO.Data curr : rcurr.value) {
             Set<String> currRoles = curr.roles(false);
-            // must add roles to this perm, and add this perm to each role 
-            // in the update, but not in the current            
+            // must add roles to this perm, and add this perm to each role
+            // in the update, but not in the current
             for (String role : updtRoles) {
                 if (!currRoles.contains(role)) {
                     Result<RoleDAO.Data> key = RoleDAO.Data.decode(trans, ques, role);
@@ -1437,17 +1437,17 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         }
                     }
                 }
-            }                
-        } 
-        return rv==null?Result.ok():rv;        
+            }
+        }
+        return rv==null?Result.ok():rv;
     }
-    
-    @ApiDoc( 
+
+    @ApiDoc(
             method = DELETE,
             path = "/authz/perm",
             params = {},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "Delete the Permission referenced by PermKey.",
                     "You cannot normally delete a permission which is still granted to roles,",
                     "however the \"force\" property allows you to do just that. To do this: Add",
@@ -1469,7 +1469,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.err(Status.ERR_PermissionNotFound, "Permission [%s.%s|%s|%s] does not exist",
                     perm.ns,perm.type,perm.instance,perm.action    );
         }
-        
+
         Result<FutureDAO.Data> fd = mapper.future(trans,PermDAO.TABLE,from,perm,false,
                 new Mapper.Memo() {
                     @Override
@@ -1487,36 +1487,36 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     return nsd;
                 }
             });
-        
+
         switch(fd.status) {
         case OK:
             Result<List<NsDAO.Data>> nsr = ques.nsDAO().read(trans, perm.ns);
             if (nsr.notOKorIsEmpty()) {
                 return Result.err(nsr);
             }
-            
-            Result<String> rfc = func.createFuture(trans, fd.value, 
+
+            Result<String> rfc = func.createFuture(trans, fd.value,
                     perm.encode(), trans.user(),nsr.value.get(0),FUTURE_OP.D);
             if (rfc.isOK()) {
                 return Result.err(Status.ACC_Future, "Perm Deletion [%s] is saved for future processing",perm.encode());
-            } else { 
+            } else {
                 return Result.err(rfc);
             }
         case Status.ACC_Now:
             return func.deletePerm(trans,perm,trans.requested(force), false);
         default:
             return Result.err(fd);
-        }            
-    }    
-    
-    @ApiDoc( 
+        }
+    }
+
+    @ApiDoc(
             method = DELETE,
             path = "/authz/perm/:name/:type/:action",
             params = {"type|string|true",
                       "instance|string|true",
                           "action|string|true"},
             expectedCode = 200,
-            errorCodes = { 404,406 }, 
+            errorCodes = { 404,406 },
             text = { "Delete the Permission referenced by :type :instance :action",
                     "You cannot normally delete a permission which is still granted to roles,",
                     "however the \"force\" property allows you to do just that. To do this: Add",
@@ -1532,7 +1532,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             .err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         Result<PermDAO.Data> pd = ques.permFrom(trans, type, instance, action);
         if (pd.isOK()) {
             return func.deletePerm(trans, pd.value, trans.requested(force), false);
@@ -1542,7 +1542,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
 /***********************************
- * ROLE 
+ * ROLE
  ***********************************/
     @ApiDoc(
             method = POST,
@@ -1586,8 +1586,8 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             new Mapper.Memo() {
                 @Override
                 public String get() {
-                    return "Create Role [" + 
-                        rd.value.fullName() + 
+                    return "Create Role [" +
+                        rd.value.fullName() +
                         ']';
                 }
             },
@@ -1601,7 +1601,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     return nsd;
                 }
             });
-        
+
         Result<List<NsDAO.Data>> nsr = ques.nsDAO().read(trans, rd.value.ns);
         if (nsr.notOKorIsEmpty()) {
             return Result.err(nsr);
@@ -1609,13 +1609,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
         switch(fd.status) {
             case OK:
-                Result<String> rfc = func.createFuture(trans, fd.value, 
+                Result<String> rfc = func.createFuture(trans, fd.value,
                         role.encode(), trans.user(),nsr.value.get(0),FUTURE_OP.C);
                 if (rfc.isOK()) {
                     return Result.err(Status.ACC_Future, "Role [%s.%s] is saved for future processing",
                             rd.value.ns,
                             rd.value.name);
-                } else { 
+                } else {
                     return Result.err(rfc);
                 }
             case Status.ACC_Now:
@@ -1636,7 +1636,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     @ApiDoc(
             method = GET,
             path = "/authz/roles/:role",
-            params = {"role|string|true"}, 
+            params = {"role|string|true"},
             expectedCode = 200,
             errorCodes = {404,406},
             text = { "List Roles that match :role",
@@ -1649,7 +1649,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("Role", role).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         // Determine if User can ask this question
         Result<RoleDAO.Data> rrdd = RoleDAO.Data.decode(trans, ques, role);
         if (rrdd.isOKhasData()) {
@@ -1660,7 +1660,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         } else {
             return Result.err(rrdd);
         }
-        
+
         // Look up data
         int query = role.indexOf('?');
         Result<List<RoleDAO.Data>> rlrd = ques.getRolesByName(trans, query<0?role:role.substring(0, query));
@@ -1722,7 +1722,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             params = {"ns|string|true"},
             expectedCode = 200,
             errorCodes = {404,406},
-            text = { "List all Roles for the Namespace :ns", 
+            text = { "List all Roles for the Namespace :ns",
                          "Note: You must have permission to see any given role"
             }
            )
@@ -1733,15 +1733,15 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("NS", ns).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         // check if user is allowed to view NS
-        Result<NsDAO.Data> rnsd = ques.deriveNs(trans, ns); 
+        Result<NsDAO.Data> rnsd = ques.deriveNs(trans, ns);
         if (rnsd.notOK()) {
-            return Result.err(rnsd);     
+            return Result.err(rnsd);
         }
         rnsd = ques.mayUser(trans, trans.user(), rnsd.value, Access.read);
         if (rnsd.notOK()) {
-            return Result.err(rnsd);     
+            return Result.err(rnsd);
         }
 
         TimeTaken tt = trans.start("MAP Roles by NS to Roles", Env.SUB);
@@ -1773,7 +1773,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             params = {"name|string|true"},
             expectedCode = 200,
             errorCodes = {404,406},
-            text = { "List all Roles for only the Name of Role (without Namespace)", 
+            text = { "List all Roles for only the Name of Role (without Namespace)",
                          "Note: You must have permission to see any given role"
             }
            )
@@ -1783,7 +1783,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("Name", name).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         // User Mapper to make sure user is allowed to view NS
 
         TimeTaken tt = trans.start("MAP Roles by Name to Roles", Env.SUB);
@@ -1834,7 +1834,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             .err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         TimeTaken tt = trans.start("Map Perm Roles Roles", Env.SUB);
         try {
             ROLES roles = mapper.newInstance(API.ROLES);
@@ -1846,7 +1846,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 if ((res=ques.mayUser(trans, trans.user(), pdd, Question.Access.read)).notOK()) {
                     return Result.err(res);
                 }
-                
+
                 Result<List<PermDAO.Data>> pdlr = ques.permDAO().read(trans, pdd);
                 if (pdlr.isOK())for (PermDAO.Data pd : pdlr.value) {
                     Result<List<RoleDAO.Data>> rlrd;
@@ -1910,7 +1910,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
 
     }
-    
+
     @ApiDoc(
             method = POST,
             path = "/authz/role/perm",
@@ -1918,7 +1918,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             expectedCode = 201,
             errorCodes = {403,404,406,409},
             text = { "Grant a Permission to a Role",
-                     "Permission consists of:", 
+                     "Permission consists of:",
                      "<ul><li>type - a Namespace qualified identifier specifying what kind of resource "
                      + "is being protected</li>",
                      "<li>instance - a key, possibly multi-dimensional, that identifies a specific "
@@ -1942,7 +1942,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rrd.notOKorIsEmpty()) {
             return Result.err(rrd);
         }
-        
+
         // Validate Role and Perm values
         final ServiceValidator v = new ServiceValidator();
         if (v.perm(rpd.value)
@@ -1955,9 +1955,9 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rlrd.notOKorIsEmpty()) {
             return Result.err(Status.ERR_RoleNotFound, "Role [%s] does not exist", rrd.value.fullName());
         }
-        
+
         // Check Status of Data in DB (does it exist)
-        Result<List<PermDAO.Data>> rlpd = ques.permDAO().read(trans, rpd.value.ns, 
+        Result<List<PermDAO.Data>> rlpd = ques.permDAO().read(trans, rpd.value.ns,
                 rpd.value.type, rpd.value.instance, rpd.value.action);
         PermDAO.Data createPerm = null; // if not null, create first
         if (rlpd.notOKorIsEmpty()) { // Permission doesn't exist
@@ -1966,7 +1966,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 createPerm = rpd.value;
                 createPerm.roles.clear();
             } else {
-                return Result.err(Status.ERR_PermissionNotFound,"Permission [%s.%s|%s|%s] does not exist", 
+                return Result.err(Status.ERR_PermissionNotFound,"Permission [%s.%s|%s|%s] does not exist",
                         rpd.value.ns,rpd.value.type,rpd.value.instance,rpd.value.action);
             }
         } else {
@@ -1979,7 +1979,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
         }
 
-        
+
         Result<FutureDAO.Data> fd = mapper.future(trans, PermDAO.TABLE, rreq, rpd.value,true, // Allow grants to create Approvals
                 new Mapper.Memo() {
                     @Override
@@ -2007,7 +2007,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
         switch(fd.status) {
             case OK:
-                Result<String> rfc = func.createFuture(trans,fd.value, 
+                Result<String> rfc = func.createFuture(trans,fd.value,
                         rpd.value.fullPerm(),
                         trans.user(),
                         nsr.value.get(0),
@@ -2018,7 +2018,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                             rpd.value.type,
                             rpd.value.instance,
                             rpd.value.action);
-                } else { 
+                } else {
                     return Result.err(rfc);
                 }
             case Status.ACC_Now:
@@ -2033,7 +2033,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             default:
                 return Result.err(fd);
         }
-        
+
     }
 
     /**
@@ -2071,17 +2071,17 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
         return delPermFromRole(trans, updt.value,rrd.value, rreq);
     }
-        
-    private Result<Void> delPermFromRole(final AuthzTrans trans, PermDAO.Data pdd, RoleDAO.Data rdd, REQUEST rreq) {        
-        Result<List<PermDAO.Data>> rlpd = ques.permDAO().read(trans, pdd.ns, pdd.type, 
+
+    private Result<Void> delPermFromRole(final AuthzTrans trans, PermDAO.Data pdd, RoleDAO.Data rdd, REQUEST rreq) {
+        Result<List<PermDAO.Data>> rlpd = ques.permDAO().read(trans, pdd.ns, pdd.type,
                 pdd.instance, pdd.action);
-        
+
         if (rlpd.notOKorIsEmpty()) {
-            return Result.err(Status.ERR_PermissionNotFound, 
+            return Result.err(Status.ERR_PermissionNotFound,
                 "Permission [%s.%s|%s|%s] does not exist",
                     pdd.ns,pdd.type,pdd.instance,pdd.action);
         }
-        
+
         Result<FutureDAO.Data> fd = mapper.future(trans, PermDAO.TABLE, rreq, pdd,true, // allow ungrants requests
                 new Mapper.Memo() {
                     @Override
@@ -2106,7 +2106,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
         switch(fd.status) {
             case OK:
-                Result<String> rfc = func.createFuture(trans,fd.value, 
+                Result<String> rfc = func.createFuture(trans,fd.value,
                         pdd.fullPerm(),
                         trans.user(),
                         nsr.value.get(0),
@@ -2127,7 +2127,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 return Result.err(fd);
         }
     }
-    
+
 /*
     @ApiDoc(
             method = DELETE,
@@ -2148,7 +2148,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rpns.notOKorIsEmpty()) {
             return Result.err(rpns);
         }
-        
+
             final Validator v = new ServiceValidator();
         if (v.role(role)
             .permType(rpns.value.name,rpns.value.parent)
@@ -2157,26 +2157,26 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             .err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
             Result<Data> rrns = ques.deriveNs(trans, role);
             if (rrns.notOKorIsEmpty()) {
                 return Result.err(rrns);
             }
-            
+
         final Result<List<RoleDAO.Data>> rrd = ques.roleDAO().read(trans, rrns.value.parent, rrns.value.name);
         if (rrd.notOKorIsEmpty()) {
             return Result.err(rrd);
         }
-        
+
         final Result<List<PermDAO.Data>> rpd = ques.permDAO().read(trans, rpns.value.parent, rpns.value.name, instance, action);
         if (rpd.notOKorIsEmpty()) {
             return Result.err(rpd);
         }
 
-        
+
         return delPermFromRole(trans,rpd.value.get(0), rrd.value.get(0), mapper.ungrantRequest(trans, role, type, instance, action));
     }
-    
+
     @ApiDoc(
             method = DELETE,
             path = "/authz/role/:role",
@@ -2191,7 +2191,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         Result<RoleDAO.Data> rrdd = RoleDAO.Data.decode(trans,ques,role);
         if (rrdd.isOKhasData()) {
             final ServiceValidator v = new ServiceValidator();
-            if (v.nullOrBlank(rrdd.value).err()) { 
+            if (v.nullOrBlank(rrdd.value).err()) {
                 return Result.err(Status.ERR_BadData,v.errs());
             }
             return func.deleteRole(trans, rrdd.value, false, false);
@@ -2241,21 +2241,21 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     return nsd;
                 }
             });
-        
+
         switch(fd.status) {
         case OK:
             Result<List<NsDAO.Data>> nsr = ques.nsDAO().read(trans, rd.value.ns);
             if (nsr.notOKorIsEmpty()) {
                 return Result.err(nsr);
             }
-            
-            Result<String> rfc = func.createFuture(trans, fd.value, 
+
+            Result<String> rfc = func.createFuture(trans, fd.value,
                     role.encode(), trans.user(),nsr.value.get(0),FUTURE_OP.D);
             if (rfc.isOK()) {
                 return Result.err(Status.ACC_Future, "Role Deletion [%s.%s] is saved for future processing",
                         rd.value.ns,
                         rd.value.name);
-            } else { 
+            } else {
                 return Result.err(rfc);
             }
         case Status.ACC_Now:
@@ -2267,14 +2267,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
 /***********************************
- * CRED 
+ * CRED
  ***********************************/
     private class MayCreateCred implements MayChange {
         private Result<NsDAO.Data> nsd;
         private AuthzTrans trans;
         private CredDAO.Data cred;
         private Executor exec;
-        
+
         public MayCreateCred(AuthzTrans trans, CredDAO.Data cred, Executor exec) {
             this.trans = trans;
             this.cred = cred;
@@ -2291,7 +2291,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 try {
                     // Check Org Policy
                     if (trans.org().validate(trans,Policy.CREATE_MECHID, exec, cred.id)==null) {
-                        return Result.ok(); 
+                        return Result.ok();
                     } else {
                        Result<?> rmc = ques.mayUser(trans, trans.user(), nsd.value, Access.write);
                        if (rmc.isOKhasData()) {
@@ -2365,13 +2365,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
     private final long DAY_IN_MILLIS = 24*3600*1000L;
-    
-    @ApiDoc( 
-            method = POST,  
+
+    @ApiDoc(
+            method = POST,
             path = "/authn/cred",
             params = {},
             expectedCode = 201,
-            errorCodes = {403,404,406,409}, 
+            errorCodes = {403,404,406,409},
             text = { "A credential consists of:",
                      "<ul><li>id - the ID to create within AAF. The domain is in reverse",
                      "order of Namespace (i.e. Users of Namespace com.att.myapp would be",
@@ -2385,18 +2385,18 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public Result<Void> createUserCred(final AuthzTrans trans, REQUEST from) {
         final String cmdDescription = ("Create User Credential");
         TimeTaken tt = trans.start(cmdDescription, Env.SUB);
-        
+
         try {
             Result<CredDAO.Data> rcred = mapper.cred(trans, from, true);
             if (rcred.isOKhasData()) {
                 rcred = ques.userCredSetup(trans, rcred.value);
-                
+
                 final ServiceValidator v = new ServiceValidator();
-                
-                if (v.cred(trans, trans.org(),rcred,true).err()) { // Note: Creates have stricter Validations 
+
+                if (v.cred(trans, trans.org(),rcred,true).err()) { // Note: Creates have stricter Validations
                     return Result.err(Status.ERR_BadData,v.errs());
                 }
-                
+
 
                 // 2016-4 Jonathan, New Behavior - If MechID is not registered with Org, deny creation
                 Identity mechID =  null;
@@ -2406,7 +2406,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 } catch (Exception e1) {
                     trans.error().log(e1,rcred.value.id,"cannot be validated at this time");
                 }
-                if (mechID==null || !mechID.isFound()) { 
+                if (mechID==null || !mechID.isFound()) {
                     return Result.err(Status.ERR_Policy,"MechIDs must be registered with %s before provisioning in AAF",org.getName());
                 }
 
@@ -2414,11 +2414,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 if (nsr.notOKorIsEmpty()) {
                     return Result.err(Status.ERR_NsNotFound,"Cannot provision %s on non-existent Namespace %s",mechID.id(),rcred.value.ns);
                 }
-                
+
 
                 boolean firstID = false;
                 MayChange mc;
-                
+
                 CassExecutor exec = new CassExecutor(trans, func);
                 Result<List<CredDAO.Data>> rlcd = ques.credDAO().readID(trans, rcred.value.id);
                 if (rlcd.isOKhasData()) {
@@ -2430,21 +2430,21 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         // May not use the same password in the list
                         // Note: ASPR specifies character differences, but we don't actually store the
                         // password to validate char differences.
-                        
+
 //                      byte[] rawCred = rcred.value.type==CredDAO.RAW?null:;                            return Result.err(Status.ERR_ConflictAlreadyExists, "Credential with same Expiration Date exists");
                         if(rcred.value.type==CredDAO.FQI ) {
                             if(curr.type==CredDAO.FQI) {
                                 return Result.err(Status.ERR_ConflictAlreadyExists, "Credential with same Expiration Date exists");
                             }
                         } else {
-    
+
                             rb = ques.userCredCheck(trans, curr, rcred.value.cred!=null?rcred.value.cred.array():null);
                             if (rb.notOK()) {
                                 return Result.err(rb);
                             } else if (rb.value){
                                 return Result.err(Status.ERR_Policy, "Credential content cannot be reused.");
-                            } else if(Chrono.dateOnlyStamp(curr.expires).equals(Chrono.dateOnlyStamp(rcred.value.expires)) 
-                                    && curr.type==rcred.value.type 
+                            } else if(Chrono.dateOnlyStamp(curr.expires).equals(Chrono.dateOnlyStamp(rcred.value.expires))
+                                    && curr.type==rcred.value.type
                                     ) {
                                 // Allow if expiring differential is greater than 1 day (for TEMP)
                                 // Unless expiring in 1 day
@@ -2453,7 +2453,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                                 }
                             }
                         }
-                    }    
+                    }
                 } else {
                     try {
                     // 2016-04-12 Jonathan If Caller is the Sponsor and is also an Owner of NS, allow without special Perm
@@ -2469,32 +2469,32 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         String reason;
                         // We can say "ID does not exist" here
                         if ((reason=org.validate(trans, Policy.CREATE_MECHID, exec, theMechID,trans.user(),otherMechIDs.toString()))!=null) {
-                            return Result.err(Status.ERR_Denied, reason); 
+                            return Result.err(Status.ERR_Denied, reason);
                         }
                         firstID=true;
                     } catch (Exception e) {
                         return Result.err(e);
                     }
                 }
-    
+
                 mc = new MayCreateCred(trans, rcred.value, exec);
-                
+
                 final CredDAO.Data cdd = rcred.value;
                 Result<FutureDAO.Data> fd = mapper.future(trans,CredDAO.TABLE,from, rcred.value,false, // may want to enable in future.
                     new Mapper.Memo() {
                         @Override
                         public String get() {
-                            return cmdDescription + " [" + 
-                                cdd.id + '|' 
-                                + cdd.type + '|' 
+                            return cmdDescription + " [" +
+                                cdd.id + '|'
+                                + cdd.type + '|'
                                 + cdd.expires + ']';
                         }
                     },
                     mc);
-                
+
                 switch(fd.status) {
                     case OK:
-                        Result<String> rfc = func.createFuture(trans, fd.value, 
+                        Result<String> rfc = func.createFuture(trans, fd.value,
                                 rcred.value.id + '|' + rcred.value.type.toString() + '|' + rcred.value.expires,
                                 trans.user(), nsr.value.get(0), FUTURE_OP.C);
                         if (rfc.isOK()) {
@@ -2502,7 +2502,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                                     rcred.value.id,
                                     Integer.toString(rcred.value.type),
                                     rcred.value.expires.toString());
-                        } else { 
+                        } else {
                             return Result.err(rfc);
                         }
                     case Status.ACC_Now:
@@ -2512,11 +2512,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                                 if(!ques.isOwner(trans,trans.user(),cdd.ns)) {
                                     // Admins are not allowed to set first Cred, but Org has already
                                     // said entity MAY create, typically by Permission
-                                    // We can't know which reason they are allowed here, so we 
-                                    // have to assume that any with Special Permission would not be 
+                                    // We can't know which reason they are allowed here, so we
+                                    // have to assume that any with Special Permission would not be
                                     // an Admin.
                                     if(ques.isAdmin(trans, trans.user(), cdd.ns)) {
-                                        return Result.err(Result.ERR_Denied, 
+                                        return Result.err(Result.ERR_Denied,
                                             "Only Owners may create first passwords in their Namespace. Admins may modify after one exists" );
                                     } else {
                                         // Allow IDs that AREN'T part of NS with Org Onboarding Permission  (see Org object) to create Temp Passwords.
@@ -2527,7 +2527,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         } catch (Exception e) {
                             trans.error().log(e, "While setting expiration to TempPassword");
                         }
-                        
+
                         Result<?>udr = ques.credDAO().create(trans, rcred.value);
                         if (udr.isOK()) {
                             return Result.ok();
@@ -2545,12 +2545,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
-    @ApiDoc(   
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authn/creds/ns/:ns",
             params = {"ns|string|true"},
             expectedCode = 200,
-            errorCodes = {403,404,406}, 
+            errorCodes = {403,404,406},
             text = { "Return all IDs in Namespace :ns"
                      }
             )
@@ -2560,42 +2560,42 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.ns(ns).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         // check if user is allowed to view NS
         Result<NsDAO.Data> rnd = ques.deriveNs(trans,ns);
         if (rnd.notOK()) {
-            return Result.err(rnd); 
+            return Result.err(rnd);
         }
         rnd = ques.mayUser(trans, trans.user(), rnd.value, Access.read);
         if (rnd.notOK()) {
-            return Result.err(rnd); 
+            return Result.err(rnd);
         }
-    
+
         TimeTaken tt = trans.start("MAP Creds by NS to Creds", Env.SUB);
-        try {            
+        try {
             USERS users = mapper.newInstance(API.USERS);
             Result<List<CredDAO.Data>> rlcd = ques.credDAO().readNS(trans, ns);
-                    
+
             if (rlcd.isOK()) {
                 if (!rlcd.isEmpty()) {
                     return mapper.cred(rlcd.value, users);
                 }
-                return Result.ok(users);        
+                return Result.ok(users);
             } else {
                 return Result.err(rlcd);
             }
         } finally {
             tt.done();
         }
-            
+
     }
 
-    @ApiDoc(   
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authn/creds/id/:ns",
             params = {"id|string|true"},
             expectedCode = 200,
-            errorCodes = {403,404,406}, 
+            errorCodes = {403,404,406},
             text = { "Return all IDs in for ID"
                     ,"(because IDs are multiple, due to multiple Expiration Dates)"
                      }
@@ -2606,59 +2606,59 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.nullOrBlank("ID",id).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         String ns = Question.domain2ns(id);
         // check if user is allowed to view NS
         Result<NsDAO.Data> rnd = ques.deriveNs(trans,ns);
         if (rnd.notOK()) {
-            return Result.err(rnd); 
+            return Result.err(rnd);
         }
         rnd = ques.mayUser(trans, trans.user(), rnd.value, Access.read);
         if (rnd.notOK()) {
-            return Result.err(rnd); 
+            return Result.err(rnd);
         }
-    
+
         TimeTaken tt = trans.start("MAP Creds by ID to Creds", Env.SUB);
-        try {            
+        try {
             USERS users = mapper.newInstance(API.USERS);
             Result<List<CredDAO.Data>> rlcd = ques.credDAO().readID(trans, id);
-                    
+
             if (rlcd.isOK()) {
                 if (!rlcd.isEmpty()) {
                     return mapper.cred(rlcd.value, users);
                 }
-                return Result.ok(users);        
+                return Result.ok(users);
             } else {
                 return Result.err(rlcd);
             }
         } finally {
             tt.done();
         }
-            
+
     }
 
-    @ApiDoc(   
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authn/certs/id/:id",
             params = {"id|string|true"},
             expectedCode = 200,
-            errorCodes = {403,404,406}, 
+            errorCodes = {403,404,406},
             text = { "Return Cert Info for ID"
                    }
             )
     @Override
     public Result<CERTS> getCertInfoByID(AuthzTrans trans, HttpServletRequest req, String id) {
         TimeTaken tt = trans.start("Get Cert Info by ID", Env.SUB);
-        try {            
+        try {
             CERTS certs = mapper.newInstance(API.CERTS);
             Result<List<CertDAO.Data>> rlcd = ques.certDAO().readID(trans, id);
-                    
+
             if (rlcd.isOK()) {
                 if (!rlcd.isEmpty()) {
                     return mapper.cert(rlcd.value, certs);
                 }
-                return Result.ok(certs);        
-            } else { 
+                return Result.ok(certs);
+            } else {
                 return Result.err(rlcd);
             }
         } finally {
@@ -2667,12 +2667,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
     }
 
-    @ApiDoc( 
-            method = PUT,  
+    @ApiDoc(
+            method = PUT,
             path = "/authn/cred",
             params = {},
             expectedCode = 200,
-            errorCodes = {300,403,404,406}, 
+            errorCodes = {300,403,404,406},
             text = { "Reset a Credential Password. If multiple credentials exist for this",
                         "ID, you will need to specify which entry you are resetting in the",
                         "CredRequest object"
@@ -2686,54 +2686,54 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             Result<CredDAO.Data> rcred = mapper.cred(trans, from, true);
             if (rcred.isOKhasData()) {
                 rcred = ques.userCredSetup(trans, rcred.value);
-    
+
                 final ServiceValidator v = new ServiceValidator();
-                
-                if (v.cred(trans, trans.org(),rcred,false).err()) {// Note: Creates have stricter Validations 
+
+                if (v.cred(trans, trans.org(),rcred,false).err()) {// Note: Creates have stricter Validations
                     return Result.err(Status.ERR_BadData,v.errs());
                 }
                 Result<List<CredDAO.Data>> rlcd = ques.credDAO().readID(trans, rcred.value.id);
                 if (rlcd.notOKorIsEmpty()) {
                     return Result.err(Status.ERR_UserNotFound, "Credential does not exist");
-                } 
-                
+                }
+
                 MayChange mc = new MayChangeCred(trans, rcred.value,MayChangeCred.RESET);
-                Result<?> rmc = mc.mayChange(); 
+                Result<?> rmc = mc.mayChange();
                 if (rmc.notOK()) {
                     return Result.err(rmc);
                 }
-                
+
                 List<CredDAO.Data> lcdd = filterList(rlcd.value,CredDAO.BASIC_AUTH, CredDAO.BASIC_AUTH_SHA256);
-                
+
                 Result<Integer> ri = selectEntryIfMultiple((CredRequest)from, lcdd, MayChangeCred.RESET);
                 if (ri.notOK()) {
                     return Result.err(ri);
                 }
                 int entry = ri.value;
-    
-                
+
+
                 final CredDAO.Data cred = rcred.value;
-                
+
                 Result<FutureDAO.Data> fd = mapper.future(trans,CredDAO.TABLE,from, rcred.value,false,
                 new Mapper.Memo() {
                     @Override
                     public String get() {
-                        return cmdDescription + " [" + 
-                            cred.id + '|' 
-                            + cred.type + '|' 
+                        return cmdDescription + " [" +
+                            cred.id + '|'
+                            + cred.type + '|'
                             + cred.expires + ']';
                     }
                 },
                 mc);
-                
+
                 Result<List<NsDAO.Data>> nsr = ques.nsDAO().read(trans, rcred.value.ns);
                 if (nsr.notOKorIsEmpty()) {
                     return Result.err(nsr);
                 }
-    
+
                 switch(fd.status) {
                     case OK:
-                        Result<String> rfc = func.createFuture(trans, fd.value, 
+                        Result<String> rfc = func.createFuture(trans, fd.value,
                                 rcred.value.id + '|' + rcred.value.type.toString() + '|' + rcred.value.expires,
                                 trans.user(), nsr.value.get(0), FUTURE_OP.U);
                         if (rfc.isOK()) {
@@ -2741,7 +2741,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                                     rcred.value.id,
                                     Integer.toString(rcred.value.type),
                                     rcred.value.expires.toString());
-                        } else { 
+                        } else {
                             return Result.err(rfc);
                         }
                     case Status.ACC_Now:
@@ -2754,15 +2754,15 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         } else {
                             exp = Expiration.TempPassword;
                         }
-                        
+
                         Organization org = trans.org();
                         CredDAO.Data current = rlcd.value.get(entry);
                         // If user resets password in same day, we will have a primary key conflict, so subtract 1 day
-                        if (current.expires.equals(rcred.value.expires) 
+                        if (current.expires.equals(rcred.value.expires)
                                     && rlcd.value.get(entry).type==rcred.value.type) {
                             GregorianCalendar gc = org.expiration(null, exp,rcred.value.id);
                             gc = Chrono.firstMomentOfDay(gc);
-                            gc.set(GregorianCalendar.HOUR_OF_DAY, org.startOfDay());                        
+                            gc.set(GregorianCalendar.HOUR_OF_DAY, org.startOfDay());
                             rcred.value.expires = new Date(gc.getTimeInMillis() - DAY_IN_MILLIS);
                         } else {
                             rcred.value.expires = org.expiration(null,exp).getTime();
@@ -2775,7 +2775,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         if (udr.isOK()) {
                             return Result.ok();
                         }
-    
+
                         return Result.err(udr);
                     default:
                         return Result.err(fd);
@@ -2788,12 +2788,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
-    @ApiDoc( 
-            method = PUT,  
+    @ApiDoc(
+            method = PUT,
             path = "/authn/cred/:days",
             params = {"days|string|true"},
             expectedCode = 200,
-            errorCodes = {300,403,404,406}, 
+            errorCodes = {300,403,404,406},
             text = { "Extend a Credential Expiration Date. The intention of this API is",
                         "to avoid an outage in PROD due to a Credential expiring before it",
                         "can be configured correctly. Measures are being put in place ",
@@ -2807,12 +2807,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             Result<CredDAO.Data> cred = mapper.cred(trans, from, false);
             Organization org = trans.org();
             final ServiceValidator v = new ServiceValidator();
-            if (v.notOK(cred).err() || 
+            if (v.notOK(cred).err() ||
                v.nullOrBlank(cred.value.id, "Invalid ID").err() ||
                v.user(org,cred.value.id).err())  {
                  return Result.err(Status.ERR_BadData,v.errs());
             }
-            
+
             try {
                 String reason;
                 if ((reason=org.validate(trans, Policy.MAY_EXTEND_CRED_EXPIRES, new CassExecutor(trans,func)))!=null) {
@@ -2823,13 +2823,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 trans.error().log(e, msg="Could not contact Organization for User Validation");
                 return Result.err(Status.ERR_Denied, msg);
             }
-    
+
             // Get the list of Cred Entries
             Result<List<CredDAO.Data>> rlcd = ques.credDAO().readID(trans, cred.value.id);
             if (rlcd.notOKorIsEmpty()) {
                 return Result.err(Status.ERR_UserNotFound, "Credential does not exist");
             }
-            
+
             // Only Passwords can be extended
             List<CredDAO.Data> lcdd = filterList(rlcd.value,CredDAO.BASIC_AUTH, CredDAO.BASIC_AUTH_SHA256);
 
@@ -2854,7 +2854,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             if(cd.expires.before(found.expires)) {
                 return Result.err(Result.ERR_BadData,String.format("Credential's expiration date is more than %s days in the future",days));
             }
-            
+
             cred = ques.credDAO().create(trans, cd);
             if (cred.isOK()) {
                 return Result.ok();
@@ -2863,14 +2863,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         } finally {
             tt.done();
         }
-    }    
+    }
 
-    @ApiDoc( 
-            method = DELETE,  
+    @ApiDoc(
+            method = DELETE,
             path = "/authn/cred",
             params = {},
             expectedCode = 200,
-            errorCodes = {300,403,404,406}, 
+            errorCodes = {300,403,404,406},
             text = { "Delete a Credential. If multiple credentials exist for this",
                     "ID, you will need to specify which entry you are deleting in the",
                     "CredRequest object."
@@ -2885,11 +2885,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
 
         MayChange mc = new MayChangeCred(trans,cred.value,MayChangeCred.DELETE);
-        Result<?> rmc = mc.mayChange(); 
+        Result<?> rmc = mc.mayChange();
         if (rmc.notOK()) {
             return Result.err(rmc);
         }
-        
+
         boolean doForce = trans.requested(force);
         Result<List<CredDAO.Data>> rlcd = ques.credDAO().readID(trans, cred.value.id);
         if (rlcd.notOKorIsEmpty()) {
@@ -2903,7 +2903,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.err(Status.ERR_UserNotFound, "Credential does not exist");
         }
         boolean isLastCred = rlcd.value.size()==1;
-        
+
         int entry;
         CredRequest cr = (CredRequest)from;
         if(isLastCred) {
@@ -2921,7 +2921,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     ++fentry;
                     if(cdd.type == CredDAO.FQI) {
                         entry = fentry;
-                        break; 
+                        break;
                     }
                 }
             } else {
@@ -2972,26 +2972,26 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 }
             }
         }
-        
+
         Result<FutureDAO.Data> fd = mapper.future(trans,CredDAO.TABLE,from,cred.value,false,
             () -> "Delete Credential [" +
                 cred.value.id +
                 ']',
             mc);
-    
+
         Result<List<NsDAO.Data>> nsr = ques.nsDAO().read(trans, cred.value.ns);
         if (nsr.notOKorIsEmpty()) {
             return Result.err(nsr);
         }
-    
+
         switch(fd.status) {
             case OK:
                 Result<String> rfc = func.createFuture(trans, fd.value, cred.value.id,
                         trans.user(), nsr.value.get(0), FUTURE_OP.D);
-    
+
                 if (rfc.isOK()) {
                     return Result.err(Status.ACC_Future, "Credential Delete [%s] is saved for future processing",cred.value.id);
-                } else { 
+                } else {
                     return Result.err(rfc);
                 }
             case Status.ACC_Now:
@@ -3031,7 +3031,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             default:
                 return Result.err(fd);
         }
-    
+
     }
 
     /*
@@ -3105,21 +3105,21 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     private String[] buildVariables(List<CredDAO.Data> value) {
         String [] vars = new String[value.size()];
         CredDAO.Data cdd;
-        
+
         for (int i = 0; i < value.size(); i++) {
             cdd = value.get(i);
             vars[i] = cdd.id + TWO_SPACE + Define.getCredType(cdd.type) + TWO_SPACE + Chrono.niceUTCStamp(cdd.expires) + TWO_SPACE + cdd.tag;
         }
         return vars;
     }
-    
+
     private String selectCredFromList(List<CredDAO.Data> value, String action) {
         StringBuilder errMessage = new StringBuilder();
         String userPrompt = MayChangeCred.DELETE.equals(action)?
                 "Select which cred to delete (set force=true to delete all):":
                 "Select which cred to " + action + ':';
         int numSpaces = value.get(0).id.length() - "Id".length();
-        
+
         errMessage.append(userPrompt + '\n');
         errMessage.append("        ID");
         for (int i = 0; i < numSpaces; i++) {
@@ -3135,7 +3135,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             errMessage.append("Run same command again with chosen entry as last parameter");
         }
         return errMessage.toString();
-        
+
     }
 
     @Override
@@ -3162,12 +3162,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
-    @ApiDoc( 
-            method = POST,  
+    @ApiDoc(
+            method = POST,
             path = "/authn/validate",
             params = {},
             expectedCode = 200,
-            errorCodes = { 403 }, 
+            errorCodes = { 403 },
             text = { "Validate a Credential given a Credential Structure.  This is a more comprehensive validation, can "
                     + "do more than BasicAuth as Credential types exp" }
             )
@@ -3192,13 +3192,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         return Result.err(Status.ERR_Denied,"Bad Basic Auth");
     }
 
-@ApiDoc( 
-            method = GET,  
+@ApiDoc(
+            method = GET,
             path = "/authn/basicAuth",
             params = {},
             expectedCode = 200,
-            errorCodes = { 403 }, 
-            text = { "!!!! DEPRECATED without X509 Authentication STOP USING THIS API BY DECEMBER 2017, or use Certificates !!!!\n" 
+            errorCodes = { 403 },
+            text = { "!!!! DEPRECATED without X509 Authentication STOP USING THIS API BY DECEMBER 2017, or use Certificates !!!!\n"
                     + "Use /authn/validate instead\n"
                     + "Note: Validate a Password using BasicAuth Base64 encoded Header. This HTTP/S call is intended as a fast"
                     + " User/Password lookup for Security Frameworks, and responds 200 if it passes BasicAuth "
@@ -3209,14 +3209,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
 /***********************************
- * USER-ROLE 
+ * USER-ROLE
  ***********************************/
-    @ApiDoc( 
-            method = POST,  
+    @ApiDoc(
+            method = POST,
             path = "/authz/userRole",
             params = {},
             expectedCode = 201,
-            errorCodes = {403,404,406,409}, 
+            errorCodes = {403,404,406,409},
             text = { "Create a UserRole relationship (add User to Role)",
                      "A UserRole is an object Representation of membership of a Role for limited time.",
                      "If a shorter amount of time for Role ownership is required, use the 'End' field.",
@@ -3233,7 +3233,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 return Result.err(urr);
             }
             final UserRoleDAO.Data userRole = urr.value;
-            
+
             final ServiceValidator v = new ServiceValidator();
             if (v.user_role(trans.user(),userRole).err() ||
                v.user(trans.org(), userRole.user).err()) {
@@ -3241,7 +3241,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
 
 
-             
+
             // Check if user can change first
             Result<FutureDAO.Data> fd = mapper.future(trans,UserRoleDAO.TABLE,from,urr.value,true, // may request Approvals
                 () -> "Add User [" + userRole.user + "] to Role [" +
@@ -3261,7 +3261,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         return nsd;
                     }
                 });
-            
+
             NsDAO.Data ndd;
             if(userRole.role.startsWith(userRole.user)) {
                 userRole.ns=userRole.user;
@@ -3277,14 +3277,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
             switch(fd.status) {
                 case OK:
-                    Result<String> rfc = func.createFuture(trans, fd.value, userRole.user+'|'+userRole.ns + '.' + userRole.rname, 
+                    Result<String> rfc = func.createFuture(trans, fd.value, userRole.user+'|'+userRole.ns + '.' + userRole.rname,
                             userRole.user, ndd, FUTURE_OP.C);
                     if (rfc.isOK()) {
                         return Result.err(Status.ACC_Future, "UserRole [%s - %s.%s] is saved for future processing",
                                 userRole.user,
                                 userRole.ns,
                                 userRole.rname);
-                    } else { 
+                    } else {
                         return Result.err(rfc);
                     }
                 case Status.ACC_Now:
@@ -3296,7 +3296,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
         /**
          * getUserRolesByRole
          */
@@ -3315,7 +3315,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             if (v.nullOrBlank("Role",role).err()) {
                 return Result.err(Status.ERR_BadData,v.errs());
             }
-            
+
             Result<RoleDAO.Data> rrdd;
             rrdd = RoleDAO.Data.decode(trans,ques,role);
             if (rrdd.notOK()) {
@@ -3326,11 +3326,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             if (ns.notOK()) {
                 return Result.err(ns);
             }
-    
-    //        boolean filter = true;        
+
+    //        boolean filter = true;
     //        if (ns.value.isAdmin(trans.user()) || ns.value.isResponsible(trans.user()))
     //            filter = false;
-            
+
             // Get list of roles per user, then add to Roles as we go
             HashSet<UserRoleDAO.Data> userSet = new HashSet<>();
             Result<List<UserRoleDAO.Data>> rlurd = ques.userRoleDAO().readByRole(trans, role);
@@ -3339,7 +3339,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     userSet.add(data);
                 }
             }
-            
+
             @SuppressWarnings("unchecked")
             USERROLES users = (USERROLES) mapper.newInstance(API.USER_ROLES);
             // Checked for permission
@@ -3364,18 +3364,18 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             if (v.nullOrBlank("User",user).err()) {
                 return Result.err(Status.ERR_BadData,v.errs());
             }
-            
+
             // Get list of roles per user, then add to Roles as we go
             Result<List<UserRoleDAO.Data>> rlurd = ques.userRoleDAO().readByUser(trans, user);
-            if (rlurd.notOK()) { 
+            if (rlurd.notOK()) {
                 return Result.err(rlurd);
             }
-            
+
             /* Check for
-             *   1) is User 
+             *   1) is User
              *   2) is User's Supervisor
              *   3) Has special global access =read permission
-             *   
+             *
              *   If none of the 3, then filter results to NSs in which Calling User has Ns.access * read
              */
             boolean mustFilter;
@@ -3401,11 +3401,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     mustFilter = true;
                 }
             }
-            
+
             List<UserRoleDAO.Data> content;
             if (mustFilter) {
                 content = new ArrayList<>(rlurd.value.size()); // avoid multi-memory redos
-                
+
                 for (UserRoleDAO.Data data : rlurd.value) {
                     ndd.name=data.ns;
                     Result<Data> mur = ques.mayUser(trans, callingUser, ndd, Access.read);
@@ -3413,7 +3413,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                         content.add(data);
                     }
                 }
-                
+
             } else {
                 content = rlurd.value;
             }
@@ -3426,9 +3426,9 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.ok(users);
         }
 
-        
-    
+
+
+
      @ApiDoc(
             method = GET,
             path = "/authz/userRole/extend/:user/:role",
@@ -3450,18 +3450,18 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             .err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-    
+
         Result<RoleDAO.Data> rrdd = RoleDAO.Data.decode(trans,ques,role);
         if (rrdd.notOK()) {
             return Result.err(rrdd);
         }
-        
+
         Result<NsDAO.Data> rcr = ques.mayUser(trans, trans.user(), rrdd.value, Access.write);
         boolean mayNotChange;
         if ((mayNotChange = rcr.notOK()) && !trans.requested(future)) {
             return Result.err(rcr);
         }
-        
+
         Result<List<UserRoleDAO.Data>> rr = ques.userRoleDAO().read(trans, user,role);
         if (rr.notOK()) {
             return Result.err(rr);
@@ -3481,7 +3481,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     return Result.err(e);
                 }
 
-                Result<String> rfc = func.createFuture(trans, fto, 
+                Result<String> rfc = func.createFuture(trans, fto,
                         userRole.user+'|'+userRole.role, userRole.user, rcr.value, FUTURE_OP.U);
                 if (rfc.isOK()) {
                     return Result.err(Status.ACC_Future, "UserRole [%s - %s] is saved for future processing",
@@ -3497,14 +3497,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         return Result.err(Result.ERR_NotFound,"This user and role doesn't exist");
     }
 
-    @ApiDoc( 
-            method = DELETE,  
+    @ApiDoc(
+            method = DELETE,
             path = "/authz/userRole/:user/:role",
             params = {    "user|string|true",
                         "role|string|true"
                     },
             expectedCode = 200,
-            errorCodes = {403,404,406}, 
+            errorCodes = {403,404,406},
             text = { "Remove Role :role from User :user."
                    }
             )
@@ -3521,7 +3521,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rrdd.notOK()) {
             return Result.err(rrdd);
         }
-        
+
         RoleDAO.Data rdd = rrdd.value;
         Result<NsDAO.Data> rns = ques.mayUser(trans, trans.user(), rdd, Access.write);
 
@@ -3529,7 +3529,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rns.isOKhasData() && Question.OWNER.equals(rdd.name) && ques.countOwner(trans,rdd.ns)<=1) {
             return Result.err(Status.ERR_Denied,"You may not delete the last Owner of " + rdd.ns );
         }
-        
+
         if (mayNotChange=rns.notOK()) {
             if (!trans.requested(future)) {
                 return Result.err(rns);
@@ -3551,13 +3551,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             fto.start = now.getTime();
             fto.expires = trans.org().expiration(now, Expiration.Future).getTime();
 
-            Result<String> rfc = func.createFuture(trans, fto, 
+            Result<String> rfc = func.createFuture(trans, fto,
                     userRole.user+'|'+userRole.role, userRole.user, rns.value, FUTURE_OP.D);
             if (rfc.isOK()) {
-                return Result.err(Status.ACC_Future, "UserRole [%s - %s] is saved for future processing", 
+                return Result.err(Status.ACC_Future, "UserRole [%s - %s] is saved for future processing",
                         userRole.user,
                         userRole.role);
-            } else { 
+            } else {
                 return Result.err(rfc);
             }
         } else {
@@ -3565,13 +3565,13 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
-    @ApiDoc( 
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authz/userRole/:user/:role",
             params = {"user|string|true",
                       "role|string|true"},
             expectedCode = 200,
-            errorCodes = {403,404,406}, 
+            errorCodes = {403,404,406},
             text = { "Returns the User (with Expiration date from listed User/Role) if it exists"
                    }
             )
@@ -3584,7 +3584,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
 //        Result<NsDAO.Data> ns = ques.deriveNs(trans, role);
 //        if (ns.notOK()) return Result.err(ns);
-//        
+//
 //        Result<NsDAO.Data> rnd = ques.mayUser(trans, trans.user(), ns.value, Access.write);
         // May calling user see by virtue of the Role
         Result<RoleDAO.Data> rrdd = RoleDAO.Data.decode(trans, ques, role);
@@ -3593,9 +3593,9 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
         Result<NsDAO.Data> rnd = ques.mayUser(trans, trans.user(), rrdd.value,Access.read);
         if (rnd.notOK()) {
-            return Result.err(rnd); 
+            return Result.err(rnd);
         }
-        
+
         HashSet<UserRoleDAO.Data> userSet = new HashSet<>();
         Result<List<UserRoleDAO.Data>> rlurd = ques.userRoleDAO().readUserInRole(trans, user, role);
         if (rlurd.isOK()) {
@@ -3603,20 +3603,20 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 userSet.add(data);
             }
         }
-        
+
         @SuppressWarnings("unchecked")
         USERS users = (USERS) mapper.newInstance(API.USERS);
         mapper.users(trans, userSet, users);
         return Result.ok(users);
     }
 
-    @ApiDoc( 
-            method = GET,  
+    @ApiDoc(
+            method = GET,
             path = "/authz/users/role/:role",
             params = {"user|string|true",
                       "role|string|true"},
             expectedCode = 200,
-            errorCodes = {403,404,406}, 
+            errorCodes = {403,404,406},
             text = { "Returns the User (with Expiration date from listed User/Role) if it exists"
                    }
             )
@@ -3629,14 +3629,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
 //        Result<NsDAO.Data> ns = ques.deriveNs(trans, role);
 //        if (ns.notOK()) return Result.err(ns);
-//        
+//
 //        Result<NsDAO.Data> rnd = ques.mayUser(trans, trans.user(), ns.value, Access.write);
         // May calling user see by virtue of the Role
         Result<RoleDAO.Data> rrdd = RoleDAO.Data.decode(trans, ques, role);
         if (rrdd.notOK()) {
             return Result.err(rrdd);
         }
-        
+
         boolean contactOnly = false;
         // Allow the request of any valid user to find the contact of the NS (Owner)
         Result<NsDAO.Data> rnd = ques.mayUser(trans, trans.user(), rrdd.value,Access.read);
@@ -3647,10 +3647,10 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 return Result.err(rnd);
             }
         }
-        
+
         HashSet<UserRoleDAO.Data> userSet = new HashSet<>();
         Result<List<UserRoleDAO.Data>> rlurd = ques.userRoleDAO().readByRole(trans, role);
-        if (rlurd.isOK()) { 
+        if (rlurd.isOK()) {
             for (UserRoleDAO.Data data : rlurd.value) {
                 if (contactOnly) { //scrub data
                     // Can't change actual object, or will mess up the cache.
@@ -3665,7 +3665,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 }
             }
         }
-        
+
         @SuppressWarnings("unchecked")
         USERS users = (USERS) mapper.newInstance(API.USERS);
         mapper.users(trans, userSet, users);
@@ -3692,7 +3692,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         final Validator v = new ServiceValidator();
         if (v.nullOrBlank("Type",type)
             .nullOrBlank("Instance",instance)
-            .nullOrBlank("Action",action)            
+            .nullOrBlank("Action",action)
             .err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
@@ -3701,25 +3701,25 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (nss.notOK()) {
             return Result.err(nss);
         }
-        
+
         Result<List<NsDAO.Data>> nsd = ques.nsDAO().read(trans, nss.value.ns);
         if (nsd.notOK()) {
             return Result.err(nsd);
         }
-        
+
         boolean allInstance = ASTERIX.equals(instance);
         boolean allAction = ASTERIX.equals(action);
-        // Get list of roles per Permission, 
+        // Get list of roles per Permission,
         // Then loop through Roles to get Users
         // Note: Use Sets to avoid processing or responding with Duplicates
         Set<String> roleUsed = new HashSet<>();
         Set<UserRoleDAO.Data> userSet = new HashSet<>();
-        
+
         if (!nss.isEmpty()) {
             Result<List<PermDAO.Data>> rlp = ques.permDAO().readByType(trans, nss.value.ns, nss.value.name);
             if (rlp.isOKhasData()) {
                 for (PermDAO.Data pd : rlp.value) {
-                    if ((allInstance || pd.instance.equals(instance)) && 
+                    if ((allInstance || pd.instance.equals(instance)) &&
                             (allAction || pd.action.equals(action))) {
                         if (ques.mayUser(trans, trans.user(),pd,Access.read).isOK()) {
                             for (String role : pd.roles) {
@@ -3745,10 +3745,10 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
 /***********************************
- * HISTORY 
- ***********************************/    
+ * HISTORY
+ ***********************************/
     @Override
-    public Result<HISTORY> getHistoryByUser(final AuthzTrans trans, String user, final int[] yyyymm, final int sort) {    
+    public Result<HISTORY> getHistoryByUser(final AuthzTrans trans, String user, final int[] yyyymm, final int sort) {
         final Validator v = new ServiceValidator();
         if (v.nullOrBlank("User",user).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
@@ -3797,12 +3797,12 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rrdd.notOK()) {
             return Result.err(rrdd);
         }
-        
+
         Result<NsDAO.Data> rnd = ques.mayUser(trans, trans.user(), rrdd.value, Access.read);
         if (rnd.notOK()) {
             return Result.err(rnd);
         }
-        Result<List<HistoryDAO.Data>> resp = ques.historyDAO().readBySubject(trans, role, "role", yyyymm); 
+        Result<List<HistoryDAO.Data>> resp = ques.historyDAO().readBySubject(trans, role, "role", yyyymm);
         if (resp.notOK()) {
             return Result.err(resp);
         }
@@ -3828,11 +3828,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
             rnd = ques.mayUser(trans, trans.user(), rnd.value, Access.read);
             if (rnd.notOK()) {
-                return Result.err(rnd);    
+                return Result.err(rnd);
             }
             resp = ques.historyDAO().readBySubject(trans, type, "perm", yyyymm);
         }
-        
+
         if (resp.notOK()) {
             return Result.err(resp);
         }
@@ -3842,7 +3842,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     @Override
     public Result<HISTORY> getHistoryByNS(AuthzTrans trans, String ns, int[] yyyymm, final int sort) {
         final Validator v = new ServiceValidator();
-        if (v.nullOrBlank("NS",ns).err()) { 
+        if (v.nullOrBlank("NS",ns).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
 
@@ -3852,7 +3852,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
         rnd = ques.mayUser(trans, trans.user(), rnd.value, Access.read);
         if (rnd.notOK()) {
-            return Result.err(rnd);    
+            return Result.err(rnd);
         }
 
         Result<List<HistoryDAO.Data>> resp = ques.historyDAO().readBySubject(trans, ns, "ns", yyyymm);
@@ -3868,7 +3868,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         ndd.name = FQI.reverseDomain(subject);
         Result<Data> rnd = ques.mayUser(trans, trans.user(), ndd, Access.read);
         if (rnd.notOK()) {
-            return Result.err(rnd);    
+            return Result.err(rnd);
         }
 
         Result<List<HistoryDAO.Data>> resp = ques.historyDAO().readBySubject(trans, subject, target, yyyymm);
@@ -3879,7 +3879,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
 /***********************************
- * DELEGATE 
+ * DELEGATE
  ***********************************/
     @Override
     public Result<Void> createDelegate(final AuthzTrans trans, REQUEST base) {
@@ -3895,23 +3895,23 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     private Result<Void> createOrUpdateDelegate(final AuthzTrans trans, REQUEST base, final Access access) {
         final Result<DelegateDAO.Data> rd = mapper.delegate(trans, base);
         final ServiceValidator v = new ServiceValidator();
-        if (v.delegate(trans.org(),rd).err()) { 
+        if (v.delegate(trans.org(),rd).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
 
         final DelegateDAO.Data dd = rd.value;
-        
+
         Result<List<DelegateDAO.Data>> ddr = ques.delegateDAO().read(trans, dd);
         if (access==Access.create && ddr.isOKhasData()) {
             return Result.err(Status.ERR_ConflictAlreadyExists, "[%s] already delegates to [%s]", dd.user, ddr.value.get(0).delegate);
-        } else if (access!=Access.create && ddr.notOKorIsEmpty()) { 
+        } else if (access!=Access.create && ddr.notOKorIsEmpty()) {
             return Result.err(Status.ERR_NotFound, "[%s] does not have a Delegate Record to [%s].",dd.user,access.name());
         }
         Result<Void> rv = ques.mayUser(trans, dd, access);
         if (rv.notOK()) {
             return rv;
         }
-        
+
         Result<FutureDAO.Data> fd = mapper.future(trans,DelegateDAO.TABLE,base, dd, false,
             () -> {
                 StringBuilder sb = new StringBuilder();
@@ -3928,15 +3928,15 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             () -> {
                 return Result.ok(); // Validate in code above
             });
-        
+
         switch(fd.status) {
             case OK:
-                Result<String> rfc = func.createFuture(trans, fd.value, 
+                Result<String> rfc = func.createFuture(trans, fd.value,
                         dd.user, trans.user(),null, access==Access.create?FUTURE_OP.C:FUTURE_OP.U);
-                if (rfc.isOK()) { 
+                if (rfc.isOK()) {
                     return Result.err(Status.ACC_Future, "Delegate for [%s]",
                             dd.user);
-                } else { 
+                } else {
                     return Result.err(rfc);
                 }
             case Status.ACC_Now:
@@ -3962,7 +3962,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (v.notOK(rd).nullOrBlank("User", rd.value.user).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         Result<List<DelegateDAO.Data>> ddl;
         if ((ddl=ques.delegateDAO().read(trans, rd.value)).notOKorIsEmpty()) {
             return Result.err(Status.ERR_DelegateNotFound,"Cannot delete non-existent Delegate");
@@ -3972,7 +3972,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rv.notOK()) {
             return rv;
         }
-        
+
         return ques.delegateDAO().delete(trans, dd, false);
     }
 
@@ -3993,10 +3993,10 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rv.notOK()) {
             return rv;
         }
-        
+
         return ques.delegateDAO().delete(trans, dd, false);
     }
-    
+
     @Override
     public Result<DELGS> getDelegatesByUser(AuthzTrans trans, String user) {
         final Validator v = new ServiceValidator();
@@ -4011,7 +4011,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         if (rv.notOK()) {
             return Result.err(rv);
         }
-        
+
         TimeTaken tt = trans.start("Get delegates for a user", Env.SUB);
 
         Result<List<DelegateDAO.Data>> dbDelgs = ques.delegateDAO().read(trans, user);
@@ -4023,7 +4023,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
         } finally {
             tt.done();
-        }        
+        }
     }
 
     @Override
@@ -4051,11 +4051,11 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
         } finally {
             tt.done();
-        }        
+        }
     }
 
 /***********************************
- * APPROVAL 
+ * APPROVAL
  ***********************************/
     private static final String APPR_FMT = "actor=%s, action=%s, operation=\"%s\", requestor=%s, delegator=%s";
     @Override
@@ -4070,7 +4070,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
         int numProcessed = 0;
         String user = trans.user();
-        
+
         Result<List<ApprovalDAO.Data>> curr;
         Lookup<List<ApprovalDAO.Data>> apprByTicket=null;
         for (ApprovalDAO.Data updt : rlad.value) {
@@ -4093,14 +4093,14 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 Map<String, Result<List<DelegateDAO.Data>>> delegateCache = new HashMap<>();
                 Map<UUID, FutureDAO.Data> futureCache = new HashMap<>();
                 FutureDAO.Data hasDeleted = new FutureDAO.Data();
-                
+
                 for (ApprovalDAO.Data cd : curr.value) {
                     if ("pending".equals(cd.status)) {
                         // Check for right record.  Need ID, or (Ticket&Trans.User==Appr)
                         // If Default ID
                         boolean delegatedAction = ques.isDelegated(trans, user, cd.approver, delegateCache);
                         String delegator = cd.approver;
-                        if (updt.id!=null || 
+                        if (updt.id!=null ||
                             (updt.ticket!=null && user.equals(cd.approver)) ||
                             (updt.ticket!=null && delegatedAction)) {
                             if (updt.ticket.equals(cd.ticket)) {
@@ -4178,7 +4178,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         return Result.err(Status.ERR_ActionNotCompleted,numProcessed + " out of " + numApprs + " completed");
 
     }
-    
+
     private static class Changed {
         private boolean hasChanged = false;
 
@@ -4202,7 +4202,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     @Override
     public Result<APPROVALS> getApprovalsByUser(AuthzTrans trans, String user) {
         final Validator v = new ServiceValidator();
-        if (v.nullOrBlank("User", user).err()) { 
+        if (v.nullOrBlank("User", user).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
 
@@ -4217,7 +4217,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     @Override
     public Result<APPROVALS> getApprovalsByTicket(AuthzTrans trans, String ticket) {
         final Validator v = new ServiceValidator();
-        if (v.nullOrBlank("Ticket", ticket).err()) { 
+        if (v.nullOrBlank("Ticket", ticket).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
         UUID uuid;
@@ -4226,7 +4226,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         } catch (IllegalArgumentException e) {
             return Result.err(Status.ERR_BadData,e.getMessage());
         }
-    
+
         Result<List<ApprovalDAO.Data>> rapd = ques.approvalDAO().readByTicket(trans, uuid);
         if (rapd.isOK()) {
             return mapper.approvals(rapd.value);
@@ -4234,23 +4234,23 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.err(rapd);
         }
     }
-    
+
     @Override
     public Result<APPROVALS> getApprovalsByApprover(AuthzTrans trans, String approver) {
         final Validator v = new ServiceValidator();
         if (v.nullOrBlank("Approver", approver).err()) {
             return Result.err(Status.ERR_BadData,v.errs());
         }
-        
+
         List<ApprovalDAO.Data> listRapds = new ArrayList<>();
-        
+
         Result<List<ApprovalDAO.Data>> myRapd = ques.approvalDAO().readByApprover(trans, approver);
         if (myRapd.notOK()) {
             return Result.err(myRapd);
         }
-        
+
         listRapds.addAll(myRapd.value);
-        
+
         Result<List<DelegateDAO.Data>> delegatedFor = ques.delegateDAO().readByDelegate(trans, approver);
         if (delegatedFor.isOK()) {
             for (DelegateDAO.Data dd : delegatedFor.value) {
@@ -4258,7 +4258,7 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                     String delegator = dd.user;
                     Result<List<ApprovalDAO.Data>> rapd = ques.approvalDAO().readByApprover(trans, delegator);
                     if (rapd.isOK()) {
-                        for (ApprovalDAO.Data d : rapd.value) { 
+                        for (ApprovalDAO.Data d : rapd.value) {
                             if (!d.user.equals(trans.user())) {
                                 listRapds.add(d);
                             }
@@ -4267,10 +4267,10 @@ public class AuthzCassServiceImpl    <NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 }
             }
         }
-        
+
         return mapper.approvals(listRapds);
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.service.AuthzService#clearCache(org.onap.aaf.auth.env.test.AuthzTrans, java.lang.String)
      */
index f9f23f4..4a756f2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,31 +33,31 @@ import org.onap.aaf.auth.service.mapper.Mapper;
 
 public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> {
     public Mapper<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> mapper();
-    
+
 /***********************************
- * NAMESPACE 
+ * NAMESPACE
  ***********************************/
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param ns
      * @return
-     * @throws DAOException 
-     * @throws  
+     * @throws DAOException
+     * @throws
      */
     public Result<Void> createNS(AuthzTrans trans, REQUEST request, NsType type);
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @return
      */
     public Result<Void> addAdminNS(AuthzTrans trans, String ns, String id);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @return
@@ -65,7 +65,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> delAdminNS(AuthzTrans trans, String ns, String id);
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @param id
@@ -74,7 +74,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> addResponsibleNS(AuthzTrans trans, String ns, String id);
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @param id
@@ -83,7 +83,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> delResponsibleNS(AuthzTrans trans, String ns, String id);
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @param key
@@ -93,7 +93,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> createNsAttrib(AuthzTrans trans, String ns, String key, String value);
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @param key
@@ -103,7 +103,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<?> updateNsAttrib(AuthzTrans trans, String ns, String key, String value);
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @param key
@@ -112,7 +112,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> deleteNsAttrib(AuthzTrans trans, String ns, String key);
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @param key
@@ -122,23 +122,23 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
 
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @return
      */
     public Result<NSS> getNSbyName(AuthzTrans trans, String ns, boolean full);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
      */
     public Result<NSS> getNSbyAdmin(AuthzTrans trans, String user, boolean full);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
@@ -146,7 +146,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<NSS> getNSbyResponsible(AuthzTrans trans, String user, boolean full);
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
@@ -154,7 +154,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<NSS> getNSbyEither(AuthzTrans trans, String user, boolean full);
 
     /**
-     * 
+     *
      * @param trans
      * @param parent
      * @return
@@ -162,15 +162,15 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<NSS> getNSsChildren(AuthzTrans trans, String parent);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @return
      */
     public Result<Void> updateNsDescription(AuthzTrans trans, REQUEST req);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @param user
@@ -180,29 +180,29 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> deleteNS(AuthzTrans trans, String ns);
 
 /***********************************
- * PERM 
+ * PERM
  ***********************************/
     /**
-     * 
+     *
      * @param trans
      * @param rreq
      * @return
-     * @throws DAOException 
+     * @throws DAOException
      * @throws MappingException
      */
     public Result<Void> createPerm(AuthzTrans trans, REQUEST rreq);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param childPerm
      * @return
-     * @throws DAOException 
+     * @throws DAOException
      */
     public Result<PERMS> getPermsByType(AuthzTrans trans, String perm);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param type
      * @param instance
@@ -216,14 +216,14 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
      * Gets all the permissions for a user across all the roles it is assigned to
      * @param userName
      * @return
-     * @throws Exception 
+     * @throws Exception
      * @throws Exception
      */
     public Result<PERMS> getPermsByUser(AuthzTrans trans, String userName);
 
     /**
      * Gets all the permissions for a user across all the roles it is assigned to, filtered by NS (Scope)
-     * 
+     *
      * @param trans
      * @param user
      * @param scopes
@@ -234,30 +234,30 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
 
     /**
      * Gets all the permissions for a user across all the roles it is assigned to
-     * 
+     *
      * Add AAF Perms representing the "MayUser" calls if
      *     1) Allowed
      *  2) User has equivalent permission
-     *     
+     *
      * @param userName
      * @return
-     * @throws Exception 
+     * @throws Exception
      * @throws Exception
      */
     public Result<PERMS> getPermsByUser(AuthzTrans trans, PERMS perms, String userName);
 
     /**
-     * 
+     *
      * Gets all the permissions for a user across all the roles it is assigned to
-     * 
+     *
      * @param roleName
      * @return
      * @throws Exception
      */
     public Result<PERMS> getPermsByRole(AuthzTrans trans, String roleName);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @return
@@ -266,7 +266,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
 
     /**
      * rename permission
-     * 
+     *
      * @param trans
      * @param rreq
      * @param isRename
@@ -276,25 +276,25 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
      * @return
      */
     public Result<Void> renamePerm(AuthzTrans trans, REQUEST rreq, String origType, String origInstance, String origAction);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @return
      */
     public Result<Void> updatePermDescription(AuthzTrans trans, REQUEST req);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param from
      * @return
      */
     public Result<Void> resetPermRoles(AuthzTrans trans, REQUEST from);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param from
      * @return
@@ -303,7 +303,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> deletePerm(AuthzTrans trans, REQUEST from);
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param perm
@@ -315,22 +315,22 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     Result<Void> deletePerm(AuthzTrans trans, String perm, String type, String action);
 
 /***********************************
- * ROLE 
+ * ROLE
  ***********************************/
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param role
      * @param approvers
      * @return
-     * @throws DAOException 
+     * @throws DAOException
      * @throws Exception
      */
     public Result<Void> createRole(AuthzTrans trans, REQUEST req);
 
     /**
-     * 
+     *
      * @param trans
      * @param role
      * @return
@@ -338,16 +338,16 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<ROLES> getRolesByName(AuthzTrans trans, String role);
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
-     * @throws DAOException 
+     * @throws DAOException
      */
     public Result<ROLES> getRolesByUser(AuthzTrans trans, String user);
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
@@ -355,7 +355,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<ROLES> getRolesByNS(AuthzTrans trans, String user);
 
     /**
-     * 
+     *
      * @param trans
      * @param name
      * @return
@@ -363,7 +363,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<ROLES> getRolesByNameOnly(AuthzTrans trans, String name);
 
     /**
-     * 
+     *
      * @param trans
      * @param type
      * @param instance
@@ -373,25 +373,25 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<ROLES> getRolesByPerm(AuthzTrans trans, String type, String instance, String action);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @return
      */
     public Result<Void> updateRoleDescription(AuthzTrans trans, REQUEST req);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param rreq
      * @return
      * @throws DAOException
      */
     public Result<Void> addPermToRole(AuthzTrans trans, REQUEST rreq);
-    
-    
+
+
     /**
-     * 
+     *
      * @param trans
      * @param rreq
      * @return
@@ -411,18 +411,18 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> delPermFromRole(AuthzTrans trans, String role, String type, String instance, String action);
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param role
      * @return
-     * @throws DAOException 
-     * @throws MappingException 
+     * @throws DAOException
+     * @throws MappingException
      */
     public Result<Void> deleteRole(AuthzTrans trans, String role);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @return
@@ -430,11 +430,11 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> deleteRole(AuthzTrans trans, REQUEST req);
 
 /***********************************
- * CRED 
+ * CRED
  ***********************************/
 
     /**
-     * 
+     *
      * @param trans
      * @param from
      * @return
@@ -442,7 +442,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     Result<Void> createUserCred(AuthzTrans trans, REQUEST from);
 
     /**
-     * 
+     *
      * @param trans
      * @param from
      * @return
@@ -450,7 +450,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     Result<Void> resetUserCred(AuthzTrans trans, REQUEST from);
 
     /**
-     * 
+     *
      * @param trans
      * @param from
      * @param days
@@ -459,15 +459,15 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     Result<Void> extendUserCred(AuthzTrans trans, REQUEST from, String days);
 
     /**
-     * 
+     *
      * @param trans
      * @param ns
      * @return
      */
     public Result<USERS> getCredsByNS(AuthzTrans trans, String ns);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param id
      * @return
@@ -475,7 +475,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<USERS> getCredsByID(AuthzTrans trans, String id);
 
     /**
-     * 
+     *
      * @param trans
      * @param req
      * @param id
@@ -484,15 +484,15 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<CERTS> getCertInfoByID(AuthzTrans trans, HttpServletRequest req, String id);
 
     /**
-     * 
+     *
      * @param trans
      * @param credReq
      * @return
      */
     public Result<Void> deleteUserCred(AuthzTrans trans, REQUEST credReq);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
@@ -501,15 +501,15 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Date> doesCredentialMatch(AuthzTrans trans, REQUEST credReq);
 
     /**
-     * 
+     *
      * @param trans
      * @param basicAuth
      * @return
      */
     public Result<Date> validateBasicAuth(AuthzTrans trans, String basicAuth);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param role
      * @return
@@ -517,7 +517,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<USERS> getUsersByRole(AuthzTrans trans, String role);
 
     /**
-     * 
+     *
      * @param trans
      * @param role
      * @return
@@ -525,7 +525,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<USERS> getUserInRole(AuthzTrans trans, String user, String role);
 
     /**
-     * 
+     *
      * @param trans
      * @param type
      * @param instance
@@ -533,15 +533,15 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
      * @return
      */
     public Result<USERS> getUsersByPermission(AuthzTrans trans,String type, String instance, String action);
-    
-    
+
+
 
 
 /***********************************
- * USER-ROLE 
+ * USER-ROLE
  ***********************************/
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param request
@@ -551,7 +551,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> createUserRole(AuthzTrans trans, REQUEST request);
 
     /**
-     * 
+     *
      * @param trans
      * @param role
      * @return
@@ -559,7 +559,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<USERROLES> getUserRolesByRole(AuthzTrans trans, String role);
 
     /**
-     * 
+     *
      * @param trans
      * @param role
      * @return
@@ -570,9 +570,9 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
      * Note: Removed "resetRolesForUsers" because it was too dangerous, and
      *       removed "resetUsersForRoles" because it was being misused.
      */
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param role
@@ -582,23 +582,23 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     String role);
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param usr
      * @param role
      * @return
-     * @throws DAOException 
+     * @throws DAOException
      */
     public Result<Void> deleteUserRole(AuthzTrans trans, String usr, String role);
 
 
 
 /***********************************
- * HISTORY 
- ***********************************/    
+ * HISTORY
+ ***********************************/
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param yyyymm
@@ -607,7 +607,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<HISTORY> getHistoryByUser(AuthzTrans trans, String user, int[] yyyymm, int sort);
 
     /**
-     * 
+     *
      * @param trans
      * @param subj
      * @param yyyymm
@@ -617,7 +617,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<HISTORY> getHistoryByRole(AuthzTrans trans, String subj, int[] yyyymm, int sort);
 
     /**
-     * 
+     *
      * @param trans
      * @param subj
      * @param yyyymm
@@ -627,7 +627,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<HISTORY> getHistoryByPerm(AuthzTrans trans, String subj, int[] yyyymm, int sort);
 
     /**
-     * 
+     *
      * @param trans
      * @param subj
      * @param yyyymm
@@ -637,7 +637,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<HISTORY> getHistoryByNS(AuthzTrans trans, String subj, int[] yyyymm, int sort);
 
     /**
-     * 
+     *
      * @param trans
      * @param target
      * @param yyyymm
@@ -647,28 +647,28 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<HISTORY> getHistoryBySubject(AuthzTrans trans, String subject, String target, int[] yyyymm, int sort);
 
 /***********************************
- * DELEGATE 
+ * DELEGATE
  ***********************************/
     /**
-     * 
+     *
      * @param trans
      * @param delegates
      * @return
      * @throws Exception
      */
     public Result<Void> createDelegate(AuthzTrans trans, REQUEST reqDelegate);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param delegates
      * @return
      * @throws Exception
      */
     public Result<Void> updateDelegate(AuthzTrans trans, REQUEST reqDelegate);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param userName
      * @param delegate
@@ -676,9 +676,9 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
      * @throws Exception
      */
     public Result<Void> deleteDelegate(AuthzTrans trans, REQUEST reqDelegate);
-    
+
     /**
-     * 
+     *
      * @param trans
      * @param userName
      * @return
@@ -686,17 +686,17 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> deleteDelegate(AuthzTrans trans, String userName);
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
      * @throws Exception
      */
     public Result<DELGS> getDelegatesByUser(AuthzTrans trans, String user);
-    
+
 
     /**
-     * 
+     *
      * @param trans
      * @param delegate
      * @return
@@ -704,10 +704,10 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<DELGS> getDelegatesByDelegate(AuthzTrans trans, String delegate);
 
 /***********************************
- * APPROVAL 
+ * APPROVAL
  ***********************************/
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @param approver
@@ -717,7 +717,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> updateApproval(AuthzTrans trans, APPROVALS approvals);
 
     /**
-     * 
+     *
      * @param trans
      * @param user
      * @return
@@ -725,7 +725,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<APPROVALS> getApprovalsByUser(AuthzTrans trans, String user);
 
     /**
-     * 
+     *
      * @param trans
      * @param ticket
      * @return
@@ -733,7 +733,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<APPROVALS> getApprovalsByTicket(AuthzTrans trans, String ticket);
 
     /**
-     * 
+     *
      * @param trans
      * @param approver
      * @return
@@ -741,7 +741,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<APPROVALS> getApprovalsByApprover(AuthzTrans trans, String approver);
 
     /**
-     * 
+     *
      * @param trans
      * @param cname
      * @return
@@ -749,7 +749,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> cacheClear(AuthzTrans trans, String cname);
 
     /**
-     * 
+     *
      * @param trans
      * @param cname
      * @param segment
@@ -758,7 +758,7 @@ public interface AuthzService<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERT
     public Result<Void> cacheClear(AuthzTrans trans, String cname, int[] segment);
 
     /**
-     * 
+     *
      * @param trans
      */
     public void dbReset(AuthzTrans trans);
index ac799f4..e2cf5e5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,7 @@ public abstract class Code extends HttpCode<AuthzTrans, AuthzFacade> implements
         super(facade, description, roles);
         this.useJSON = useJSON;
     }
-    
+
     public <D extends Code> D clone(AuthzFacade facade, boolean useJSON) throws Exception {
         @SuppressWarnings("unchecked")
         D d = (D)clone();
@@ -40,5 +40,5 @@ public abstract class Code extends HttpCode<AuthzTrans, AuthzFacade> implements
         d.context = facade;
         return d;
     }
-    
+
 }
\ No newline at end of file
index a1ceb75..7279a14 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,7 +24,7 @@ package org.onap.aaf.auth.service;
 import org.onap.aaf.auth.layer.Result;
 
 /**
- * There are several ways to determine if 
+ * There are several ways to determine if
  * @author Jonathan
  *
  */
index 70d131a..4410d7b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,10 +42,10 @@ import org.onap.aaf.cadi.Symm;
 public class API_Api {
     // Hide Public Constructor
     private API_Api() {}
-    
+
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param authzAPI
      * @param facade
      * @throws Exception
@@ -74,7 +74,7 @@ public class API_Api {
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
                 String pathInfo = req.getPathInfo();
                 int question = pathInfo.lastIndexOf('?');
-                
+
                 pathInfo = pathInfo.substring(13, question<0?pathInfo.length():question);// IMPORTANT, this is size of "/api/example/"
                 String nameOrContextType=Symm.base64noSplit.decode(pathInfo);
                 Result<Void> r = context.getAPIExample(trans,resp,nameOrContextType,
index 7c74be1..77c460c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,7 +38,7 @@ import org.onap.aaf.auth.service.mapper.Mapper.API;
 public class API_Approval {
     // Hide Public Constructor
     private API_Approval() {}
-    
+
     public static void init(AAF_Service authzAPI, AuthzFacade facade) throws Exception {
 
         /**
@@ -50,11 +50,11 @@ public class API_Approval {
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
                 Result<Void> r = context.getApprovalsByUser(trans, resp, pathParam(req,"user"));
                 if (r.isOK()) {
-                    resp.setStatus(HttpStatus.OK_200); 
+                    resp.setStatus(HttpStatus.OK_200);
                 } else {
                     context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
 
         /**
@@ -68,8 +68,8 @@ public class API_Approval {
                     resp.setStatus(HttpStatus.OK_200);
                 } else {
                     context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
 
         /**
@@ -83,8 +83,8 @@ public class API_Approval {
                     resp.setStatus(HttpStatus.OK_200);
                 } else {
                         context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
 
 
@@ -99,8 +99,8 @@ public class API_Approval {
                     resp.setStatus(HttpStatus.OK_200);
                 } else {
                     context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
     }
 }
index fbc1baa..c23471a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -61,25 +61,25 @@ public class API_Creds {
     // needed to validate Creds even when already Authenticated x509
     /**
      * TIME SENSITIVE APIs
-     * 
+     *
      * These will be first in the list
-     * 
+     *
      * @param env
      * @param authzAPI
      * @param facade
-     * @param directAAFUserPass 
+     * @param directAAFUserPass
      * @throws Exception
      */
     public static void timeSensitiveInit(Env env, AAF_Service authzAPI, AuthzFacade facade, final DirectAAFUserPass directAAFUserPass) throws Exception {
         /**
          * Basic Auth, quick Validation
-         * 
+         *
          * Responds OK or NotAuthorized
          */
         authzAPI.route(env, HttpMethods.GET, "/authn/basicAuth", new Code(facade,"Is given BasicAuth valid?",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
 
@@ -92,7 +92,7 @@ public class API_Creds {
                     // have to check Basic Auth here, because it might be CSP.
                     String authz = req.getHeader("Authorization");
                     if (authz.startsWith("Basic ")) {
-                        BasicHttpTaf bht = ((X509Principal)p).getBasicHttpTaf(); 
+                        BasicHttpTaf bht = ((X509Principal)p).getBasicHttpTaf();
                         if (bht!=null) {
                             BasicPrincipal bp = new BasicPrincipal(authz,"");
                             CredVal cv = bht.getCredVal(bp.getDomain());
@@ -109,8 +109,8 @@ public class API_Creds {
                             TimeTaken tt = trans.start("Direct Validation", Env.REMOTE);
                             try {
                                 if (directAAFUserPass.validate(
-                                        decoded.substring(0,colon), 
-                                        CredVal.Type.PASSWORD , 
+                                        decoded.substring(0,colon),
+                                        CredVal.Type.PASSWORD ,
                                         decoded.substring(colon+1).getBytes(),trans)) {
                                     resp.setStatus(HttpStatus.OK_200);
                                 } else {
@@ -133,58 +133,58 @@ public class API_Creds {
                 }
             }
         },"text/plain","*/*","*");
-        
-        /** 
+
+        /**
          *  returns whether a given Credential is valid
          */
         authzAPI.route(POST, "/authn/validate", API.CRED_REQ, new Code(facade,"Is given Credential valid?",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
                 // will be a valid Entity.  Do we need to add permission
-               //if(trans.fish("ns","password","request")) or the like
+                //if(trans.fish("ns","password","request")) or the like
                 Result<Date> r = context.doesCredentialMatch(trans, req, resp);
                 if (r.isOK()) {
                     resp.setStatus(HttpStatus.OK_200);
                 } else {
                     // For Security, we don't give any info out on why failed, other than forbidden
                     // Can't do "401", because that is on the call itself
-                       // 403 Implies you MAY NOT Ask.
+                    // 403 Implies you MAY NOT Ask.
                     resp.setStatus(HttpStatus.NOT_ACCEPTABLE_406);
                 }
             }
-        });  
+        });
 
-        /** 
+        /**
          *  returns whether a given Credential is valid
          */
         authzAPI.route(GET, "/authn/cert/id/:id", API.CERTS, new Code(facade,"Get Cert Info by ID",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getCertInfoByID(trans, req, resp, pathParam(req,":id") );
                 if (r.isOK()) {
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                 } else {
                         // For Security, we don't give any info out on why failed, other than forbidden
                         resp.setStatus(HttpStatus.FORBIDDEN_403);
                 }
             }
-        });  
+        });
 
 
 
 
     }
-    
+
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param authzAPI
      * @param facade
      * @throws Exception
@@ -195,7 +195,7 @@ public class API_Creds {
          */
         authzAPI.route(POST,"/authn/cred",API.CRED_REQ,new Code(facade,"Add a New ID/Credential", true) {
             @Override
-            public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {                
+            public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
                 Result<Void> r = context.createUserCred(trans, req);
                 if (r.isOK()) {
                     resp.setStatus(HttpStatus.CREATED_201);
@@ -204,40 +204,40 @@ public class API_Creds {
                 }
             }
         });
-        
-        /** 
+
+        /**
          *  gets all credentials by Namespace
          */
         authzAPI.route(GET, "/authn/creds/ns/:ns", API.USERS, new Code(facade,"Get Creds for a Namespace",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getCredsByNS(trans, resp, pathParam(req, "ns"));
                 if (r.isOK()) {
-                    resp.setStatus(HttpStatus.OK_200); 
+                    resp.setStatus(HttpStatus.OK_200);
                 } else {
                     context.error(trans,resp,r);
                 }
             }
 
         });
-        
-        /** 
+
+        /**
          *  gets all credentials by ID
          */
         authzAPI.route(GET, "/authn/creds/id/:id", API.USERS, new Code(facade,"Get Creds by ID",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getCredsByID(trans, resp, pathParam(req, "id"));
                 if (r.isOK()) {
-                    resp.setStatus(HttpStatus.OK_200); 
+                    resp.setStatus(HttpStatus.OK_200);
                 } else {
                     context.error(trans,resp,r);
                 }
@@ -252,7 +252,7 @@ public class API_Creds {
         authzAPI.route(PUT,"/authn/cred",API.CRED_REQ,new Code(facade,"Update an ID/Credential", true) {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.changeUserCred(trans, req);
                 if (r.isOK()) {
                     resp.setStatus(HttpStatus.OK_200);
@@ -266,7 +266,7 @@ public class API_Creds {
          * Extend ID/Credential
          * This behavior will accelerate getting out of P1 outages due to ignoring renewal requests, or
          * other expiration issues.
-         * 
+         *
          * Scenario is that people who are solving Password problems at night, are not necessarily those who
          * know what the passwords are supposed to be.  Also, changing Password, without changing Configurations
          * using that password only exacerbates the P1 Issue.
index ec1824b..6ad62f2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,14 +50,14 @@ public class API_Delegate {
                 Result<Void> r = context.createDelegate(trans, req, resp);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.CREATED_201); 
+                        resp.setStatus(HttpStatus.CREATED_201);
                         break;
                     default:
                         context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
-        
+
         /**
          * Update a delegate
          */
@@ -68,14 +68,14 @@ public class API_Delegate {
                 Result<Void> r = context.updateDelegate(trans, req, resp);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
-        
+
         /**
          * DELETE delegates for a user
          */
@@ -86,14 +86,14 @@ public class API_Delegate {
                 Result<Void> r = context.deleteDelegate(trans, req, resp);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
-        
+
         /**
          * DELETE a delegate
          */
@@ -104,14 +104,14 @@ public class API_Delegate {
                 Result<Void> r = context.deleteDelegate(trans, pathParam(req, "user_name"));
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
-        
+
         /**
          * Read who is delegating for User
          */
@@ -122,12 +122,12 @@ public class API_Delegate {
                 Result<Void> r = context.getDelegatesByUser(trans, pathParam(req, "user"), resp);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
 
         /**
@@ -140,12 +140,12 @@ public class API_Delegate {
                 Result<Void> r = context.getDelegatesByDelegate(trans, pathParam(req, "delegate"), resp);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
-                }                
-            }            
+                }
+            }
         });
 
     }
index ce730ce..341719c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,20 +44,20 @@ import org.onap.aaf.auth.service.mapper.Mapper.API;
 
 /**
  * Pull certain types of History Info
- * 
- * Specify yyyymm as 
+ *
+ * Specify yyyymm as
  *     single - 201504
  *  commas 201503,201504
  *  ranges 201501-201504
  *  combinations 201301,201401,201501-201504
- *  
+ *
  * @author Jonathan
  *
  */
 public class API_History {
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param authzAPI
      * @param facade
      * @throws Exception
@@ -82,7 +82,7 @@ public class API_History {
                 Result<Void> r = context.getHistoryByUser(trans, resp, pathParam(req,":user"),years,descend);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -105,11 +105,11 @@ public class API_History {
                     context.error(trans, resp, Result.err(Status.ERR_BadData, e.getMessage()));
                     return;
                 }
-                
+
                 Result<Void> r = context.getHistoryByNS(trans, resp, pathParam(req,":ns"),years,descend);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -136,7 +136,7 @@ public class API_History {
                 Result<Void> r = context.getHistoryByRole(trans, resp, pathParam(req,":role"),years,descend);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -159,20 +159,20 @@ public class API_History {
                     context.error(trans, resp, Result.err(Status.ERR_BadData, e.getMessage()));
                     return;
                 }
-                
+
                 Result<Void> r = context.getHistoryByPerm(trans, resp, pathParam(req,":type"),years,descend);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
+
         /**
-         * Get History by Subject 
+         * Get History by Subject
          */
         authzAPI.route(GET,"/authz/hist/subject/:type/:subject",API.HISTORY,new Code(facade,"Get History by Perm Type", true) {
             @Override
@@ -186,11 +186,11 @@ public class API_History {
                     context.error(trans, resp, Result.err(Status.ERR_BadData, e.getMessage()));
                     return;
                 }
-                
+
                 Result<Void> r = context.getHistoryBySubject(trans, resp, pathParam(req,":type"), pathParam(req,":subject"),years,descend);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -205,9 +205,9 @@ public class API_History {
         if ("true".equalsIgnoreCase(req.getParameter("asc")))return 1;
         return 0;
     }
-    
+
     // Get Common "yyyymm" parameter, or none
-    
+
     private static int[] getYears(HttpServletRequest req) throws NumberFormatException {
         // Sonar says threading issues.
         SimpleDateFormat FMT = new SimpleDateFormat("yyyyMM");
@@ -237,8 +237,8 @@ public class API_History {
                         GregorianCalendar gc = new GregorianCalendar();
                         gc.set(GregorianCalendar.MONTH, Integer.parseInt(range[1].substring(4,6))-1);
                         gc.set(GregorianCalendar.YEAR, Integer.parseInt(range[1].substring(0,4)));
-                        int end = getNum(FMT.format(gc.getTime())); 
-                        
+                        int end = getNum(FMT.format(gc.getTime()));
+
                         gc.set(GregorianCalendar.MONTH, Integer.parseInt(range[0].substring(4,6))-1);
                         gc.set(GregorianCalendar.YEAR, Integer.parseInt(range[0].substring(0,4)));
                         for (int i=getNum(FMT.format(gc.getTime()));i<=end;gc.add(GregorianCalendar.MONTH, 1),i=getNum(FMT.format(gc.getTime()))) {
@@ -258,7 +258,7 @@ public class API_History {
         }
         return ym;
     }
-    
+
     private static int getNum(String n) {
         if (n==null || n.length()!=6) throw new NumberFormatException(n + " is not in YYYYMM format");
         return Integer.parseInt(n);
index d99e1ad..d79ab58 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,7 +56,7 @@ public class API_Mgmt {
 
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param authzAPI
      * @param facade
      * @throws Exception
@@ -73,14 +73,14 @@ public class API_Mgmt {
                 switch(r.status) {
                     case OK:
                         trans.checkpoint(SUCCESS,Trans.ALWAYS);
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
+
         /**
          * Clear Cache
          */
@@ -94,7 +94,7 @@ public class API_Mgmt {
                     case OK:
                         trans.audit().log("Cache " + area + " has been cleared by "+trans.user());
                         trans.checkpoint(SUCCESS,Trans.ALWAYS);
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -127,7 +127,7 @@ public class API_Mgmt {
         });
 
         /**
-         * Deny an IP 
+         * Deny an IP
          */
         authzAPI.route(POST, "/mgmt/deny/ip/:ip", API.VOID, new Code(facade,"Deny IP",true) {
             @Override
@@ -140,17 +140,17 @@ public class API_Mgmt {
 
                         resp.setStatus(HttpStatus.CREATED_201);
                     } else {
-                        context.error(trans,resp,Result.err(Status.ERR_ConflictAlreadyExists, 
+                        context.error(trans,resp,Result.err(Status.ERR_ConflictAlreadyExists,
                                 ip + " is already being denied"));
                     }
                 } else {
                     trans.audit().log(trans.user(),"has attempted to deny",ip,"without authorization");
-                    context.error(trans,resp,Result.err(Status.ERR_Denied, 
+                    context.error(trans,resp,Result.err(Status.ERR_Denied,
                         trans.getUserPrincipal().getName() + " is not allowed to set IP Denial"));
                 }
             }
         });
-        
+
         /**
          * Stop Denying an IP
          */
@@ -164,19 +164,19 @@ public class API_Mgmt {
                         trans.checkpoint(SUCCESS,Trans.ALWAYS);
                         resp.setStatus(HttpStatus.OK_200);
                     } else {
-                        context.error(trans,resp,Result.err(Status.ERR_NotFound, 
+                        context.error(trans,resp,Result.err(Status.ERR_NotFound,
                                 ip + " is not on the denial list"));
                     }
                 } else {
                     trans.audit().log(trans.user(),"has attempted to remove",ip," from being denied without authorization");
-                    context.error(trans,resp,Result.err(Status.ERR_Denied, 
+                    context.error(trans,resp,Result.err(Status.ERR_Denied,
                         trans.getUserPrincipal().getName() + " is not allowed to remove IP Denial"));
                 }
             }
         });
 
         /**
-         * Deny an ID 
+         * Deny an ID
          */
         authzAPI.route(POST, "/mgmt/deny/id/:id", API.VOID, new Code(facade,"Deny ID",true) {
             @Override
@@ -188,17 +188,17 @@ public class API_Mgmt {
                         trans.checkpoint(SUCCESS,Trans.ALWAYS);
                         resp.setStatus(HttpStatus.CREATED_201);
                     } else {
-                        context.error(trans,resp,Result.err(Status.ERR_ConflictAlreadyExists, 
+                        context.error(trans,resp,Result.err(Status.ERR_ConflictAlreadyExists,
                                 id + " is already being denied"));
                     }
                 } else {
                     trans.audit().log(trans.user(),"has attempted to deny",id,"without authorization");
-                    context.error(trans,resp,Result.err(Status.ERR_Denied, 
+                    context.error(trans,resp,Result.err(Status.ERR_Denied,
                         trans.getUserPrincipal().getName() + " is not allowed to set ID Denial"));
                 }
             }
         });
-        
+
         /**
          * Stop Denying an ID
          */
@@ -212,19 +212,19 @@ public class API_Mgmt {
                         trans.checkpoint(SUCCESS,Trans.ALWAYS);
                         resp.setStatus(HttpStatus.OK_200);
                     } else {
-                        context.error(trans,resp,Result.err(Status.ERR_NotFound, 
+                        context.error(trans,resp,Result.err(Status.ERR_NotFound,
                                 id + " is not on the denial list"));
                     }
                 } else {
                     trans.audit().log(trans.user(),"has attempted to remove",id," from being denied without authorization");
-                    context.error(trans,resp,Result.err(Status.ERR_Denied, 
+                    context.error(trans,resp,Result.err(Status.ERR_Denied,
                         trans.getUserPrincipal().getName() + " is not allowed to remove ID Denial"));
                 }
             }
         });
 
         /**
-         * Deny an ID 
+         * Deny an ID
          */
         authzAPI.route(POST, "/mgmt/log/id/:id", API.VOID, new Code(facade,"Special Log ID",true) {
             @Override
@@ -236,17 +236,17 @@ public class API_Mgmt {
                         trans.checkpoint(SUCCESS,Trans.ALWAYS);
                         resp.setStatus(HttpStatus.CREATED_201);
                     } else {
-                        context.error(trans,resp,Result.err(Status.ERR_ConflictAlreadyExists, 
+                        context.error(trans,resp,Result.err(Status.ERR_ConflictAlreadyExists,
                                 id + " is already being special Logged"));
                     }
                 } else {
                     trans.audit().log(trans.user(),"has attempted to special Log",id,"without authorization");
-                    context.error(trans,resp,Result.err(Status.ERR_Denied, 
+                    context.error(trans,resp,Result.err(Status.ERR_Denied,
                         trans.getUserPrincipal().getName() + " is not allowed to set ID special Logging"));
                 }
             }
         });
-        
+
         /**
          * Stop Denying an ID
          */
@@ -260,12 +260,12 @@ public class API_Mgmt {
                         trans.checkpoint(SUCCESS,Trans.ALWAYS);
                         resp.setStatus(HttpStatus.OK_200);
                     } else {
-                        context.error(trans,resp,Result.err(Status.ERR_NotFound, 
+                        context.error(trans,resp,Result.err(Status.ERR_NotFound,
                                 id + " is not on the special Logging list"));
                     }
                 } else {
                     trans.audit().log(trans.user(),"has attempted to remove",id," from being special Logged without authorization");
-                    context.error(trans,resp,Result.err(Status.ERR_Denied, 
+                    context.error(trans,resp,Result.err(Status.ERR_Denied,
                         trans.getUserPrincipal().getName() + " is not allowed to remove ID special Logging"));
                 }
             }
index 45bc9d0..0f73a03 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,20 +39,20 @@ import org.onap.aaf.auth.service.mapper.Mapper.API;
 public class API_Multi {
 
     public static void init(AAF_Service authzAPI, AuthzFacade facade) throws Exception {
-    
+
         authzAPI.route(POST,"/authz/multi",API.VOID, new Code(facade,"Multiple Request API",true) {
             @Override
             public void handle(
                 AuthzTrans trans,
-                HttpServletRequest req, 
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                 Result<Void> r = context.addResponsibilityForNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.CREATED_201); 
+                            resp.setStatus(HttpStatus.CREATED_201);
                             break;
                         case Status.ACC_Future:
-                            resp.setStatus(HttpStatus.ACCEPTED_202); 
+                            resp.setStatus(HttpStatus.ACCEPTED_202);
                             break;
                         default:
                             context.error(trans,resp,r);
index b06e365..420beed 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,24 +47,24 @@ public class API_NS {
     public static void init(AAF_Service authzAPI, AuthzFacade facade) throws Exception {
         /**
          * puts a new Namespace in Authz DB
-         * 
+         *
          * TESTCASES: TC_NS1, TC_NSdelete1
          */
         authzAPI.route(POST,"/authz/ns",API.NS_REQ, new Code(facade,"Create a Namespace",true) {
                     @Override
                     public void handle(
                             AuthzTrans trans,
-                            HttpServletRequest req, 
+                            HttpServletRequest req,
                             HttpServletResponse resp) throws Exception {
                         NsType nst = NsType.fromString(req.getParameter("type"));
                         Result<Void> r = context.requestNS(trans, req, resp,nst);
-                            
+
                         switch(r.status) {
                             case OK:
-                                resp.setStatus(HttpStatus.CREATED_201); 
+                                resp.setStatus(HttpStatus.CREATED_201);
                                 break;
                             case Status.ACC_Future:
-                                resp.setStatus(HttpStatus.ACCEPTED_202); 
+                                resp.setStatus(HttpStatus.ACCEPTED_202);
                                 break;
                             default:
                                 context.error(trans,resp,r);
@@ -72,22 +72,22 @@ public class API_NS {
                     }
                 }
         );
-        
+
         /**
          * removes a Namespace from Authz DB
-         * 
+         *
          * TESTCASES: TC_NS1, TC_NSdelete1
          */
         authzAPI.route(DELETE,"/authz/ns/:ns",API.VOID, new Code(facade,"Delete a Namespace",true) {
                 @Override
                 public void handle(
                         AuthzTrans trans,
-                        HttpServletRequest req, 
+                        HttpServletRequest req,
                         HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.deleteNS(trans, req, resp, pathParam(req,":ns"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -98,22 +98,22 @@ public class API_NS {
 
         /**
          * Add an Admin in NS in Authz DB
-         * 
+         *
          * TESTCASES: TC_NS1
          */
         authzAPI.route(POST,"/authz/ns/:ns/admin/:id",API.VOID, new Code(facade,"Add an Admin to a Namespace",true) {
             @Override
             public void handle(
                 AuthzTrans trans,
-                HttpServletRequest req, 
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                 Result<Void> r = context.addAdminToNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.CREATED_201); 
+                            resp.setStatus(HttpStatus.CREATED_201);
                             break;
                         case Status.ACC_Future:
-                            resp.setStatus(HttpStatus.ACCEPTED_202); 
+                            resp.setStatus(HttpStatus.ACCEPTED_202);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -121,22 +121,22 @@ public class API_NS {
                 }
             }
         );
-    
+
         /**
          * Removes an Admin from Namespace in Authz DB
-         * 
+         *
          * TESTCASES: TC_NS1
          */
         authzAPI.route(DELETE,"/authz/ns/:ns/admin/:id",API.VOID, new Code(facade,"Remove an Admin from a Namespace",true) {
             @Override
             public void handle(
                 AuthzTrans trans,
-                HttpServletRequest req, 
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.delAdminFromNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -147,22 +147,22 @@ public class API_NS {
 
     /**
      * Add an Admin in NS in Authz DB
-     * 
+     *
      * TESTCASES: TC_NS1
      */
         authzAPI.route(POST,"/authz/ns/:ns/responsible/:id",API.VOID, new Code(facade,"Add a Responsible Identity to a Namespace",true) {
             @Override
             public void handle(
                 AuthzTrans trans,
-                HttpServletRequest req, 
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                 Result<Void> r = context.addResponsibilityForNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.CREATED_201); 
+                            resp.setStatus(HttpStatus.CREATED_201);
                             break;
                         case Status.ACC_Future:
-                            resp.setStatus(HttpStatus.ACCEPTED_202); 
+                            resp.setStatus(HttpStatus.ACCEPTED_202);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -173,39 +173,39 @@ public class API_NS {
 
 
         /**
-         * 
+         *
          */
         authzAPI.route(GET,"/authz/nss/:id",API.NSS, new Code(facade,"Return Information about Namespaces", true) {
             @Override
             public void handle(
-                AuthzTrans trans, 
-                HttpServletRequest req, 
+                AuthzTrans trans,
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.getNSsByName(trans, resp, pathParam(req,":id"),TRUE.equals(req.getParameter(FULL)));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
                     }
                 }
             }
-        );    
-        
+        );
+
         /**
          * Get all Namespaces where user is an admin
          */
         authzAPI.route(GET,"/authz/nss/admin/:user",API.NSS, new Code(facade,"Return Namespaces where User is an Admin", true) {
             @Override
             public void handle(
-                AuthzTrans trans, 
-                HttpServletRequest req, 
+                AuthzTrans trans,
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.getNSsByAdmin(trans, resp, pathParam(req,":user"),TRUE.equals(req.getParameter(FULL)));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -213,20 +213,20 @@ public class API_NS {
                 }
             }
         );
-        
+
         /**
          * Get all Namespaces where user is a responsible party
          */
         authzAPI.route(GET,"/authz/nss/responsible/:user",API.NSS, new Code(facade,"Return Namespaces where User is Responsible", true) {
             @Override
             public void handle(
-                AuthzTrans trans, 
-                HttpServletRequest req, 
+                AuthzTrans trans,
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.getNSsByResponsible(trans, resp, pathParam(req,":user"),TRUE.equals(req.getParameter(FULL)));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -241,13 +241,13 @@ public class API_NS {
         authzAPI.route(GET,"/authz/nss/either/:user",API.NSS, new Code(facade,"Return Namespaces where User Admin or Owner", true) {
             @Override
             public void handle(
-                AuthzTrans trans, 
-                HttpServletRequest req, 
+                AuthzTrans trans,
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.getNSsByEither(trans, resp, pathParam(req,":user"),TRUE.equals(req.getParameter(FULL)));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -262,13 +262,13 @@ public class API_NS {
         authzAPI.route(GET,"/authz/nss/children/:id",API.NSS, new Code(facade,"Return Child Namespaces", true) {
             @Override
             public void handle(
-                AuthzTrans trans, 
-                HttpServletRequest req, 
+                AuthzTrans trans,
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.getNSsChildren(trans, resp, pathParam(req,":id"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -283,36 +283,36 @@ public class API_NS {
         authzAPI.route(PUT,"/authz/ns",API.NS_REQ,new Code(facade,"Set a Description for a Namespace",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.updateNsDescription(trans, req, resp);
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
-        });    
-    
+        });
+
         /**
          * Removes an Owner from Namespace in Authz DB
-         * 
+         *
          * TESTCASES: TC_NS1
          */
         authzAPI.route(DELETE,"/authz/ns/:ns/responsible/:id",API.VOID, new Code(facade,"Remove a Responsible Identity from Namespace",true) {
             @Override
             public void handle(
                 AuthzTrans trans,
-                HttpServletRequest req, 
+                HttpServletRequest req,
                 HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.delResponsibilityForNS(trans, resp, pathParam(req,":ns"), pathParam(req,":id"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -324,13 +324,13 @@ public class API_NS {
         authzAPI.route(POST,"/authz/ns/:ns/attrib/:key/:value",API.VOID, new Code(facade,"Add an Attribute from a Namespace",true) {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
-                    Result<Void> r = context.createAttribForNS(trans, resp, 
-                        pathParam(req,":ns"), 
+                    Result<Void> r = context.createAttribForNS(trans, resp,
+                        pathParam(req,":ns"),
                         pathParam(req,":key"),
                         pathParam(req,":value"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.CREATED_201); 
+                            resp.setStatus(HttpStatus.CREATED_201);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -345,7 +345,7 @@ public class API_NS {
                     Result<Void> r = context.readNsByAttrib(trans, resp, pathParam(req,":key"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -357,13 +357,13 @@ public class API_NS {
         authzAPI.route(PUT,"/authz/ns/:ns/attrib/:key/:value",API.VOID, new Code(facade,"update an Attribute from a Namespace",true) {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
-                    Result<Void> r = context.updAttribForNS(trans, resp, 
-                        pathParam(req,":ns"), 
+                    Result<Void> r = context.updAttribForNS(trans, resp,
+                        pathParam(req,":ns"),
                         pathParam(req,":key"),
                         pathParam(req,":value"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -371,16 +371,16 @@ public class API_NS {
                 }
             }
         );
-        
+
         authzAPI.route(DELETE,"/authz/ns/:ns/attrib/:key",API.VOID, new Code(facade,"delete an Attribute from a Namespace",true) {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
-                    Result<Void> r = context.delAttribForNS(trans, resp, 
-                        pathParam(req,":ns"), 
+                    Result<Void> r = context.delAttribForNS(trans, resp,
+                        pathParam(req,":ns"),
                         pathParam(req,":key"));
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -390,6 +390,6 @@ public class API_NS {
         );
 
     }
-    
-    
+
+
 }
index 04654d4..d65304c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,15 +44,15 @@ import org.onap.aaf.misc.env.util.Split;
 
 public class API_Perms {
     public static void timeSensitiveInit(AAF_Service authzAPI, AuthzFacade facade) throws Exception {
-        /** 
+        /**
          *  gets all permissions by user name
          */
         authzAPI.route(GET, "/authz/perms/user/:user", API.PERMS, new Code(facade,"Get Permissions by User",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 String scopes = req.getParameter("scopes");
                 Result<Void> r;
                 if (scopes==null) {
@@ -61,8 +61,8 @@ public class API_Perms {
                     r = context.getPermsByUserScope(trans, resp, pathParam(req, "user"),Split.split(':', scopes));
                 }
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -70,20 +70,20 @@ public class API_Perms {
             }
 
         });
-        
-        /** 
+
+        /**
          *  gets all permissions by user name
          */
         authzAPI.route(POST, "/authz/perms/user/:user", API.PERMS, new Code(facade,"Get Permissions by User, Query AAF Perms",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getPermsByUserWithAAFQuery(trans, req, resp, pathParam(req, "user"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -101,14 +101,14 @@ public class API_Perms {
          */
         authzAPI.route(POST,"/authz/perm",API.PERM_REQ,new Code(facade,"Create a Permission",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.createPerm(trans, req, resp);
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.CREATED_201); 
+                    case OK:
+                        resp.setStatus(HttpStatus.CREATED_201);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -116,22 +116,22 @@ public class API_Perms {
             }
         });
 
-        /** 
+        /**
          *  get details of Permission
          */
         authzAPI.route(GET, "/authz/perms/:type/:instance/:action", API.PERMS, new Code(facade,"Get Permissions by Key",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
-                Result<Void> r = context.getPermsByName(trans, resp, 
+
+                Result<Void> r = context.getPermsByName(trans, resp,
                         pathParam(req, "type"),
                         URLDecoder.decode(pathParam(req, "instance"),Config.UTF_8),
                         pathParam(req, "action"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -139,20 +139,20 @@ public class API_Perms {
             }
 
         });
-        
-        /** 
+
+        /**
          *  get children of Permission
          */
         authzAPI.route(GET, "/authz/perms/:type", API.PERMS, new Code(facade,"Get Permissions by Type",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getPermsByType(trans, resp, pathParam(req, "type"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -161,20 +161,20 @@ public class API_Perms {
 
         });
 
-        
+
         /**
          * gets all permissions by role name
          */
         authzAPI.route(GET,"/authz/perms/role/:role",API.PERMS,new Code(facade,"Get Permissions by Role",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getPermsForRole(trans, resp, pathParam(req, "role"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -187,78 +187,78 @@ public class API_Perms {
          */
         authzAPI.route(GET,"/authz/perms/ns/:ns",API.PERMS,new Code(facade,"Get PermsByNS",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getPermsByNS(trans, resp, pathParam(req, "ns"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
+
         /**
          * Set a perm's description
          */
         authzAPI.route(PUT,"/authz/perm",API.PERM_REQ,new Code(facade,"Set Description for Permission",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.updatePermDescription(trans, req, resp);
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
-        });    
-        
+        });
+
         /**
          * Update a permission with a rename
          */
         authzAPI.route(PUT,"/authz/perm/:type/:instance/:action",API.PERM_REQ,new Code(facade,"Update a Permission",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
-                Result<Void> r = context.renamePerm(trans, req, resp, 
-                        pathParam(req, "type"), 
-                        URLDecoder.decode(pathParam(req, "instance"),Config.UTF_8), 
+
+                Result<Void> r = context.renamePerm(trans, req, resp,
+                        pathParam(req, "type"),
+                        URLDecoder.decode(pathParam(req, "instance"),Config.UTF_8),
                         pathParam(req, "action"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
-        });    
-        
+        });
+
         /**
          * Delete a Permission
          */
         authzAPI.route(DELETE,"/authz/perm",API.PERM_REQ,new Code(facade,"Delete a Permission",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.deletePerm(trans,req, resp);
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -266,25 +266,25 @@ public class API_Perms {
             }
         });
 
-        
-        
+
+
 
         /**
          * Delete a Permission
          */
         authzAPI.route(DELETE,"/authz/perm/:name/:type/:action",API.PERM_KEY,new Code(facade,"Delete a Permission",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.deletePerm(trans, resp,
                         pathParam(req, ":name"),
                         pathParam(req, ":type"),
                         pathParam(req, ":action"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
index 6088dd3..038e6fb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -51,16 +51,16 @@ public class API_Roles {
                     @Override
                     public void handle(
                             AuthzTrans trans,
-                            HttpServletRequest req, 
+                            HttpServletRequest req,
                             HttpServletResponse resp) throws Exception {
                         Result<Void> r = context.createRole(trans, req, resp);
-                            
+
                         switch(r.status) {
                             case OK:
-                                resp.setStatus(HttpStatus.CREATED_201); 
+                                resp.setStatus(HttpStatus.CREATED_201);
                                 break;
                             case Status.ACC_Future:
-                                resp.setStatus(HttpStatus.ACCEPTED_202); 
+                                resp.setStatus(HttpStatus.ACCEPTED_202);
                                 break;
                             default:
                                 context.error(trans,resp,r);
@@ -69,19 +69,19 @@ public class API_Roles {
                 }
             );
 
-        /** 
+        /**
          *  get Role by name
          */
         authzAPI.route(GET, "/authz/roles/:role", API.ROLES, new Code(facade,"GetRolesByFullName",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getRolesByName(trans, resp, pathParam(req, "role"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -91,19 +91,19 @@ public class API_Roles {
         });
 
 
-        /** 
+        /**
          *  gets all Roles by user name
          */
         authzAPI.route(GET, "/authz/roles/user/:name", API.ROLES, new Code(facade,"GetRolesByUser",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getRolesByUser(trans, resp, pathParam(req, "name"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -112,19 +112,19 @@ public class API_Roles {
 
         });
 
-        /** 
+        /**
          *  gets all Roles by Namespace
          */
         authzAPI.route(GET, "/authz/roles/ns/:ns", API.ROLES, new Code(facade,"GetRolesByNS",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.getRolesByNS(trans, resp, pathParam(req, "ns"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -132,25 +132,25 @@ public class API_Roles {
             }
         });
 
-        /** 
+        /**
          *  gets all Roles by Name without the Namespace
          */
         authzAPI.route(GET, "/authz/roles/name/:name", API.ROLES, new Code(facade,"GetRolesByNameOnly",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
                 Result<Void> r = context.getRolesByNameOnly(trans, resp, pathParam(req, ":name"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
+
         /**
          * Deletes a Role from Authz DB by Object
          */
@@ -158,24 +158,24 @@ public class API_Roles {
                 @Override
                 public void handle(
                         AuthzTrans trans,
-                        HttpServletRequest req, 
+                        HttpServletRequest req,
                         HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.deleteRole(trans, req, resp);
-                    
+
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
                     }
                 }
-            
+
             }
         );
-    
 
-        
+
+
         /**
          * Deletes a Role from Authz DB by Key
          */
@@ -183,22 +183,22 @@ public class API_Roles {
                 @Override
                 public void handle(
                         AuthzTrans trans,
-                        HttpServletRequest req, 
+                        HttpServletRequest req,
                         HttpServletResponse resp) throws Exception {
                     Result<Void> r = context.deleteRole(trans, resp, pathParam(req,":role"));
-                        
+
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.OK_200); 
+                            resp.setStatus(HttpStatus.OK_200);
                             break;
                         default:
                             context.error(trans,resp,r);
                     }
                 }
-            
+
             }
         );
-    
+
 
         /**
          * Add a Permission to a Role (Grant)
@@ -207,14 +207,14 @@ public class API_Roles {
                 @Override
                 public void handle(
                         AuthzTrans trans,
-                        HttpServletRequest req, 
+                        HttpServletRequest req,
                         HttpServletResponse resp) throws Exception {
-                    
+
                     Result<Void> r = context.addPermToRole(trans, req, resp);
-                        
+
                     switch(r.status) {
                         case OK:
-                            resp.setStatus(HttpStatus.CREATED_201); 
+                            resp.setStatus(HttpStatus.CREATED_201);
                             break;
                         default:
                             context.error(trans,resp,r);
@@ -222,72 +222,72 @@ public class API_Roles {
                 }
             }
         );
-        
+
         /**
          * Get all Roles by Permission
          */
         authzAPI.route(GET,"/authz/roles/perm/:type/:instance/:action",API.ROLES,new Code(facade,"GetRolesByPerm",true) {
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
-                Result<Void> r = context.getRolesByPerm(trans, resp, 
+
+                Result<Void> r = context.getRolesByPerm(trans, resp,
                         pathParam(req, "type"),
                         URLDecoder.decode(pathParam(req, "instance"),Config.UTF_8),
                         pathParam(req, "action"));
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
+
         /**
          * Set a role's description
          */
         authzAPI.route(PUT,"/authz/role",API.ROLE_REQ,new Code(facade,"Set Description for role",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.updateRoleDescription(trans, req, resp);
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
-        });    
-        
+        });
+
         /**
          * Set a permission's roles to roles given
          */
         authzAPI.route(PUT,"/authz/role/perm",API.ROLE_PERM_REQ,new Code(facade,"Set a Permission's Roles",true) {
             @Override
             public void handle(
-                    AuthzTrans trans, 
+                    AuthzTrans trans,
                     HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                
+
                 Result<Void> r = context.resetPermRoles(trans, req, resp);
                 switch(r.status) {
-                    case OK: 
-                        resp.setStatus(HttpStatus.OK_200); 
+                    case OK:
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
-        });    
-        
+        });
+
         /**
          * Delete a Permission from a Role
          * With multiple perms
@@ -296,13 +296,13 @@ public class API_Roles {
             @Override
             public void handle(
                     AuthzTrans trans,
-                    HttpServletRequest req, 
+                    HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
                 Result<Void> r = context.delPermFromRole(trans, req, resp);
-                    
+
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -318,17 +318,17 @@ public class API_Roles {
             @Override
             public void handle(
                     AuthzTrans trans,
-                    HttpServletRequest req, 
+                    HttpServletRequest req,
                     HttpServletResponse resp) throws Exception {
-                Result<Void> r = context.delPermFromRole(trans, resp, 
+                Result<Void> r = context.delPermFromRole(trans, resp,
                         pathParam(req,":role"),
                         pathParam(req,":type"),
                         pathParam(req,":instance"),
                         pathParam(req,":action"));
-                    
+
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
index d5ce00c..526766e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -46,7 +46,7 @@ import org.onap.aaf.cadi.config.Config;
 public class API_User {
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param authzAPI
      * @param facade
      * @throws Exception
@@ -58,8 +58,8 @@ public class API_User {
         authzAPI.route(GET,"/authz/users/perm/:type/:instance/:action",API.USERS,new Code(facade,"Get Users By Permission", true) {
             @Override
             public void handle(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) throws Exception {
-//                trans.checkpoint(pathParam(req,"type") + " " 
-//                        + pathParam(req,"instance") + " " 
+//                trans.checkpoint(pathParam(req,"type") + " "
+//                        + pathParam(req,"instance") + " "
 //                        + pathParam(req,"action"));
 //
                 Result<Void> r = context.getUsersByPermission(trans, resp,
@@ -68,7 +68,7 @@ public class API_User {
                         pathParam(req, ":action"));
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -86,14 +86,14 @@ public class API_User {
                 Result<Void> r = context.getUsersByRole(trans, resp, pathParam(req, ":role"));
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
+
         /**
          * Get User Role if exists
          * @deprecated
@@ -104,7 +104,7 @@ public class API_User {
                 Result<Void> r = context.getUserInRole(trans, resp, pathParam(req,":user"),pathParam(req,":role"));
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -121,16 +121,16 @@ public class API_User {
                 Result<Void> r = context.getUserInRole(trans, resp, pathParam(req,":user"),pathParam(req,":role"));
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
+
 
 
     }
-        
+
 }
index 15d2302..f4bea1d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -46,7 +46,7 @@ import org.onap.aaf.auth.service.mapper.Mapper.API;
 public class API_UserRole {
     /**
      * Normal Init level APIs
-     * 
+     *
      * @param authzAPI
      * @param facade
      * @throws Exception
@@ -61,15 +61,15 @@ public class API_UserRole {
                 Result<Void> r = context.requestUserRole(trans, req, resp);
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.CREATED_201); 
+                        resp.setStatus(HttpStatus.CREATED_201);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
-        
+
+
         /**
          * Get UserRoles by Role
          */
@@ -79,14 +79,14 @@ public class API_UserRole {
                 Result<Void> r = context.getUserRolesByRole(trans, resp, pathParam(req,":role"));
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
                 }
             }
         });
-        
+
         /**
          * Get UserRoles by User
          */
@@ -96,7 +96,7 @@ public class API_UserRole {
                 Result<Void> r = context.getUserRolesByUser(trans, resp, pathParam(req,":user"));
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
@@ -117,8 +117,8 @@ public class API_UserRole {
                 context.error(trans,resp,removeAPI);
             }
         });
-        
-        
+
+
         /**
          * Update users attached to role in path
          */
@@ -132,8 +132,8 @@ public class API_UserRole {
     /*
      * END REMOVE Dangerous API
      */
-        
-        
+
+
         /**
          * Extend Expiration Date (according to Organizational rules)
          */
@@ -143,17 +143,17 @@ public class API_UserRole {
                 Result<Void> r = context.extendUserRoleExpiration(trans,resp,pathParam(req,":user"),pathParam(req,":role"));
                 switch(r.status) {
                 case OK:
-                    resp.setStatus(HttpStatus.OK_200); 
+                    resp.setStatus(HttpStatus.OK_200);
                     break;
                 default:
                     context.error(trans,resp,r);
             }
-    
+
             }
-            
+
         });
-        
-        
+
+
         /**
          * Create a new ID/Credential
          */
@@ -163,7 +163,7 @@ public class API_UserRole {
                 Result<Void> r = context.deleteUserRole(trans, resp, pathParam(req,":user"),pathParam(req,":role"));
                 switch(r.status) {
                     case OK:
-                        resp.setStatus(HttpStatus.OK_200); 
+                        resp.setStatus(HttpStatus.OK_200);
                         break;
                     default:
                         context.error(trans,resp,r);
index f9ea39d..4630ba8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,12 +35,12 @@ import org.onap.aaf.auth.rserv.RServlet;
  * AuthzFacade
  *   This layer is responsible for covering the Incoming Messages, be they XML, JSON or just entries on the URL,
  *   and converting them to data that can be called on the Service Layer.
- *   
+ *
  *   Upon response, this layer, because it knew the incoming Data Formats (i.e. XML/JSON), the HTTP call types
  *   are set on "ContentType" on Response.
- *   
+ *
  *   Finally, we wrap the call in Time Stamps with explanation of what is happing for Audit trails.
- *   
+ *
  * @author Jonathan
  *
  */
@@ -52,13 +52,13 @@ public interface AuthzFacade {
      * Namespaces
      */
     public abstract Result<Void> requestNS(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, NsType type);
-    
+
     public abstract Result<Void> getNSsByName(AuthzTrans trans, HttpServletResponse resp, String ns, boolean full);
-    
+
     public abstract Result<Void> getNSsByAdmin(AuthzTrans trans, HttpServletResponse resp, String user, boolean full);
-    
+
     public abstract Result<Void> getNSsByResponsible(AuthzTrans trans, HttpServletResponse resp, String user, boolean full);
-    
+
     public abstract Result<Void> getNSsByEither(AuthzTrans trans, HttpServletResponse resp, String user, boolean full);
 
     public abstract Result<Void> getNSsChildren(AuthzTrans trans, HttpServletResponse resp, String pathParam);
@@ -70,7 +70,7 @@ public interface AuthzFacade {
     public abstract Result<Void> addResponsibilityForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id);
 
     public abstract Result<Void> delResponsibilityForNS(AuthzTrans trans, HttpServletResponse resp, String ns, String id);
-    
+
     public abstract Result<Void> updateNsDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
 
     public abstract Result<Void> deleteNS(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String ns);
@@ -87,40 +87,40 @@ public interface AuthzFacade {
     /*
      * Permissions
      */
-    public abstract Result<Void> createPerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);    
-    
-    public abstract Result<Void> getPermsByName(AuthzTrans trans, HttpServletResponse resp, 
+    public abstract Result<Void> createPerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
+
+    public abstract Result<Void> getPermsByName(AuthzTrans trans, HttpServletResponse resp,
             String type, String instance, String action);
 
     public abstract Result<Void> getPermsByUser(AuthzTrans trans, HttpServletResponse response, String user);
 
     public abstract Result<Void> getPermsByUserScope(AuthzTrans trans, HttpServletResponse resp, String user, String[] scopes);
-    
+
     public abstract Result<Void> getPermsByUserWithAAFQuery(AuthzTrans trans, HttpServletRequest request, HttpServletResponse response, String user);
-    
+
     public abstract Result<Void> getPermsByType(AuthzTrans trans, HttpServletResponse resp, String type);
 
     public abstract Result<Void> getPermsForRole(AuthzTrans trans, HttpServletResponse response, String roleName);
 
     public abstract Result<Void> getPermsByNS(AuthzTrans trans, HttpServletResponse response, String ns);
-    
+
     public abstract Result<Void> renamePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp,
             String type, String instance, String action);
-    
+
     public abstract Result<Void> updatePermDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
-    
+
     public abstract Result<Void> resetPermRoles(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
 
     public abstract Result<Void> deletePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
 
-    public abstract Result<Void> deletePerm(AuthzTrans trans,    HttpServletResponse resp, 
+    public abstract Result<Void> deletePerm(AuthzTrans trans,    HttpServletResponse resp,
             String perm, String type, String action);
 
     /*
      * Roles
      */
     public abstract Result<Void> createRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse response);
-    
+
     public abstract Result<Void> getRolesByName(AuthzTrans trans,HttpServletResponse resp, String name);
 
     public abstract Result<Void> getRolesByNS(AuthzTrans trans, HttpServletResponse resp, String ns);
@@ -132,12 +132,12 @@ public interface AuthzFacade {
     public abstract Result<Void> getRolesByPerm(AuthzTrans trans, HttpServletResponse resp, String type, String instance, String action);
 
     public abstract Result<Void> updateRoleDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
-    
+
     public abstract Result<Void> addPermToRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp);
-    
+
     public abstract Result<Void> delPermFromRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp);
 
-    public abstract Result<Void> delPermFromRole(AuthzTrans trans, HttpServletResponse resp, 
+    public abstract Result<Void> delPermFromRole(AuthzTrans trans, HttpServletResponse resp,
             String role, String type, String instance, String action);
 
     public abstract Result<Void> deleteRole(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
@@ -147,10 +147,10 @@ public interface AuthzFacade {
     /*
      * Users
      */
-    
+
     public abstract Result<Void> getUsersByRole(AuthzTrans trans, HttpServletResponse resp, String role);
-    
-    public abstract Result<Void> getUsersByPermission(AuthzTrans trans, HttpServletResponse resp, 
+
+    public abstract Result<Void> getUsersByPermission(AuthzTrans trans, HttpServletResponse resp,
             String type, String instance, String action);
 
 
@@ -159,13 +159,13 @@ public interface AuthzFacade {
      * Delegates
      */
     public abstract Result<Void> createDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
-    
+
     public abstract Result<Void> updateDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
-    
+
     public abstract Result<Void> deleteDelegate(AuthzTrans trans,  HttpServletRequest req, HttpServletResponse resp);
-    
+
     public abstract Result<Void> deleteDelegate(AuthzTrans trans,  String user);
-    
+
     public abstract Result<Void> getDelegatesByUser(AuthzTrans trans, String userName, HttpServletResponse resp);
 
     public abstract Result<Void> getDelegatesByDelegate(AuthzTrans trans, String userName, HttpServletResponse resp);
@@ -202,11 +202,11 @@ public interface AuthzFacade {
      * UserRole
      */
     public abstract Result<Void> requestUserRole(AuthzTrans trans,HttpServletRequest req, HttpServletResponse resp);
-    
+
     public abstract Result<Void> getUserInRole(AuthzTrans trans, HttpServletResponse resp, String user, String role);
-    
+
     public abstract Result<Void> getUserRolesByRole(AuthzTrans trans, HttpServletResponse resp, String role);
-    
+
     public abstract Result<Void> getUserRolesByUser(AuthzTrans trans, HttpServletResponse resp, String user);
 
     public abstract Result<Void> deleteUserRole(AuthzTrans trans, HttpServletResponse resp, String user, String role);
@@ -214,19 +214,19 @@ public interface AuthzFacade {
     /*
      * resetUsersForRoles and resetRolesForUsers is too dangerous and not helpful.
      */
-    
+
     public abstract Result<Void> extendUserRoleExpiration(AuthzTrans trans, HttpServletResponse resp, String user,
     String role);
 
     /*
-     * Approval 
+     * Approval
      */
     public abstract Result<Void> updateApproval(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp);
-    
+
     public abstract Result<Void> getApprovalsByUser(AuthzTrans trans, HttpServletResponse resp, String user);
-    
+
     public abstract Result<Void> getApprovalsByTicket(AuthzTrans trans, HttpServletResponse resp, String ticket);
-    
+
     public abstract Result<Void> getApprovalsByApprover(AuthzTrans trans, HttpServletResponse resp, String approver);
 
 
@@ -234,7 +234,7 @@ public interface AuthzFacade {
      * History
      */
     public abstract Result<Void> getHistoryByUser(AuthzTrans trans,    HttpServletResponse resp, String user, int[] yyyymm, final int sort);
-    
+
     public abstract Result<Void> getHistoryByRole(AuthzTrans trans,    HttpServletResponse resp, String role, int[] yyyymm, final int sort);
 
     public abstract Result<Void> getHistoryByPerm(AuthzTrans trans,    HttpServletResponse resp, String perm, int[] yyyymm, final int sort);
@@ -244,12 +244,12 @@ public interface AuthzFacade {
     public abstract Result<Void> getHistoryBySubject(AuthzTrans trans, HttpServletResponse resp, String type, String subject, int[] yyyymm, int sort);
 
     /*
-     * Cache 
+     * Cache
      */
     public abstract Result<Void> cacheClear(AuthzTrans trans, String pathParam);
 
     public abstract Result<Void> cacheClear(AuthzTrans trans, String string,String segments);
-    
+
     public abstract void dbReset(AuthzTrans trans);
 
 
index 1d7f31e..0554a02 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,6 +50,6 @@ public class AuthzFacadeFactory {
                     (trans,new Mapper_2_0(question),question),
                 type);
     }
-    
+
 
 }
index 10138d2..60b76ea 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -80,7 +80,7 @@ import aaf.v2_0.Api;
 
 /**
  * AuthzFacade
- * 
+ *
  * This Service Facade encapsulates the essence of the API Service can do, and provides
  * a single created object for elements such as RosettaDF.
  *
@@ -91,14 +91,14 @@ import aaf.v2_0.Api;
  *         a) In the future, we may support multiple Response Formats, aka JSON or XML, based on User Request.
  * 4) Log Service info, warnings and exceptions as necessary
  * 5) When asked by the API layer, this will create and write Error content to the OutputStream
- * 
- * Note: This Class does NOT set the HTTP Status Code.  That is up to the API layer, so that it can be 
+ *
+ * Note: This Class does NOT set the HTTP Status Code.  That is up to the API layer, so that it can be
  * clearly coordinated with the API Documentation
- * 
+ *
  * @author Pavani & Jonathan
  *
  */
-public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> extends FacadeImpl implements AuthzFacade 
+public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> extends FacadeImpl implements AuthzFacade
     {
     private static final String FORBIDDEN = "Forbidden";
     private static final String NOT_FOUND = "Not Found";
@@ -155,14 +155,14 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         (errDF                 = env.newDataFactory(service.mapper().getClass(API.ERROR))).in(dataType).out(dataType);
         (apiDF                = env.newDataFactory(Api.class)).in(dataType).out(dataType);
     }
-    
+
     public Mapper<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DELGS,CERTS,KEYS,REQUEST,HISTORY,ERR,APPROVALS> mapper() {
         return service.mapper();
     }
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#error(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, int)
-     * 
+     *
      * Note: Conforms to AT&T TSS RESTful Error Structure
      */
     @Override
@@ -186,7 +186,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             dlist.toArray(detail);
         }
         //int httpstatus;
-        
+
         switch(result.status) {
             case ERR_ActionNotCompleted:
                 msgId = "SVC1202";
@@ -216,7 +216,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 detail[0] = msg;
                 response.setStatus(/*httpstatus=*/403);
                 break;
-                
+
             case ERR_NsNotFound:
                 msgId = "SVC2404";
                 detail[0] = NOT_FOUND;
@@ -263,25 +263,25 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 detail[0] = NOT_ACCEPTABLE;
                 response.setStatus(/*httpstatus=*/406);
                 break;
-                
+
             case ERR_ConflictAlreadyExists:
                 msgId = "SVC1409";
                 detail[0] = "Conflict Already Exists";
                 response.setStatus(/*httpstatus=*/409);
                 break;
-            
+
             case ERR_DependencyExists:
                 msgId = "SVC1424";
                 detail[0] = "Failed Dependency";
                 response.setStatus(/*httpstatus=*/424);
                 break;
-            
+
             case ERR_NotImplemented:
                 msgId = "SVC1501";
-                detail[0] = "Not Implemented"; 
+                detail[0] = "Not Implemented";
                 response.setStatus(/*httpstatus=*/501);
                 break;
-                
+
             case Status.ACC_Future:
                 msgId = "SVC1202";
                 detail[0] = "Accepted for Future, pending Approvals";
@@ -292,14 +292,14 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 detail[0] = "Choice Needed";
                 response.setStatus(/*httpstatus=*/300);
                 break;
-            case ERR_Backend: 
+            case ERR_Backend:
                 msgId = "SVC2500";
                 detail[0] = GENERAL_SERVICE_ERROR;
                 response.setStatus(/*httpstatus=*/500);
                 hidemsg = true;
                 break;
 
-            default: 
+            default:
                 msgId = "SVC1500";
                 detail[0] = GENERAL_SERVICE_ERROR;
                 response.setStatus(/*httpstatus=*/500);
@@ -311,7 +311,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             StringBuilder holder = new StringBuilder();
             ERR em = service.mapper().errorFromMessage(holder,msgId,msg,detail);
             trans.checkpoint(
-                    "ErrResp [" + 
+                    "ErrResp [" +
                     msgId +
                     "] " +
                     holder.toString(),
@@ -325,7 +325,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             trans.error().log(e,"unable to send response for",msg);
         }
     }
-    
+
     ///////////////////////////
     // Namespace
     ///////////////////////////
@@ -341,7 +341,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public static final String GET_NS_CHILDREN = "getNamespaceChildren";
     public static final String UPDATE_NS_DESC = "updateNamespaceDescription";
     public static final String DELETE_NS = "deleteNamespace";
-    
+
 
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#createNS(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
@@ -361,10 +361,10 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 trans.error().log("Invalid Input",IN,CREATE_NS);
                 return Result.err(Status.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<Void> rp = service.createNS(trans,request,type);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,nsRequestDF.getOutType());
                     return Result.ok();
                 default:
@@ -387,7 +387,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.addAdminNS(trans,ns,id);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     //TODO Perms??
                     setContentType(resp,nsRequestDF.getOutType());
                     resp.getOutputStream().println();
@@ -412,7 +412,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.delAdminNS(trans, ns, id);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,nsRequestDF.getOutType());
                     return Result.ok();
                 default:
@@ -435,7 +435,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.addResponsibleNS(trans,ns,id);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,nsRequestDF.getOutType());
                     resp.getOutputStream().println();
                     return Result.ok();
@@ -459,7 +459,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.delResponsibleNS(trans, ns, id);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,nsRequestDF.getOutType());
                     resp.getOutputStream().println();
                     return Result.ok();
@@ -483,7 +483,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<NSS> rp = service.getNSbyName(trans, ns, full );
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -501,7 +501,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
 //    TODO: uncomment when on cassandra 2.1.2 for MyNamespace GUI page
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getNSsByAdmin(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
@@ -512,7 +512,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<NSS> rp = service.getNSbyAdmin(trans, user, full);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -530,7 +530,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
 //    TODO: uncomment when on cassandra 2.1.2 for MyNamespace GUI page
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getNSsByResponsible(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
@@ -541,7 +541,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<NSS> rp = service.getNSbyResponsible(trans, user, full);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -569,9 +569,9 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         TimeTaken tt = trans.start(GET_NS_BY_EITHER + ' ' + user, Env.SUB|Env.ALWAYS);
         try {
             Result<NSS> rp = service.getNSbyEither(trans, user, full);
-            
+
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -600,7 +600,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<NSS> rp = service.getNSsChildren(trans, parent);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<NSS> data = nssDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -637,7 +637,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
             Result<Void> rp = service.updateNsDescription(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,nsRequestDF.getOutType());
                     return Result.ok();
                 default:
@@ -650,7 +650,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     /*
      * (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#requestNS(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
@@ -661,7 +661,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.deleteNS(trans,ns);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,nsRequestDF.getOutType());
                     return Result.ok();
                 default:
@@ -679,7 +679,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     private final static String NS_UPDATE_ATTRIB = "nsUpdateAttrib";
     private final static String READ_NS_BY_ATTRIB = "readNsByAttrib";
     private final static String NS_DELETE_ATTRIB = "nsDeleteAttrib";
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#createAttribForNS(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.String, java.lang.String)
      */
@@ -689,7 +689,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<?> rp = service.createNsAttrib(trans,ns,key,value);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp, keysDF.getOutType());
                     resp.getOutputStream().println();
                     return Result.ok();
@@ -713,7 +713,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<KEYS> rp = service.readNsByAttrib(trans, key);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<KEYS> data = keysDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -741,7 +741,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<?> rp = service.updateNsAttrib(trans,ns,key,value);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp, keysDF.getOutType());
                     resp.getOutputStream().println();
                     return Result.ok();
@@ -766,7 +766,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<?> rp = service.deleteNsAttrib(trans,ns,key);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp, keysDF.getOutType());
                     resp.getOutputStream().println();
                     return Result.ok();
@@ -796,14 +796,14 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public static final String UPDATE_PERM_DESC = "updatePermissionDescription";
     public static final String SET_PERMISSION_ROLES_TO = "setPermissionRolesTo";
     public static final String DELETE_PERMISSION = "deletePermission";
-    
+
     /*
      * (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#createOrUpdatePerm(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, boolean, java.lang.String, java.lang.String, java.lang.String)
      */
     @Override
     public Result<Void> createPerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
-        TimeTaken tt = trans.start( CREATE_PERMISSION, Env.SUB|Env.ALWAYS);    
+        TimeTaken tt = trans.start( CREATE_PERMISSION, Env.SUB|Env.ALWAYS);
         try {
             REQUEST rreq;
             try {
@@ -811,15 +811,15 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 if (Question.willSpecialLog(trans, trans.user())) {
                     Question.logEncryptTrace(trans,data.asString());
                 }
-                rreq = data.asObject();            
+                rreq = data.asObject();
             } catch (APIException e) {
                 trans.error().log("Invalid Input",IN,CREATE_PERMISSION);
                 return Result.err(Status.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<Void> rp = service.createPerm(trans,rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -832,7 +832,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getChildPerms(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
      */
@@ -840,7 +840,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public Result<Void> getPermsByType(AuthzTrans trans, HttpServletResponse resp, String perm) {
         TimeTaken tt = trans.start(GET_PERMS_BY_TYPE + ' ' + perm, Env.SUB|Env.ALWAYS);
         try {
-            
+
             Result<PERMS> rp = service.getPermsByType(trans, perm);
             switch(rp.status) {
                 case OK:
@@ -862,15 +862,15 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
-    public Result<Void> getPermsByName(AuthzTrans trans, HttpServletResponse resp, 
+    public Result<Void> getPermsByName(AuthzTrans trans, HttpServletResponse resp,
             String type, String instance, String action) {
-        
+
         TimeTaken tt = trans.start(GET_PERMS_BY_NAME + ' ' + type
                 + '|' + instance + '|' + action, Env.SUB|Env.ALWAYS);
         try {
-            
+
             Result<PERMS> rp = service.getPermsByName(trans, type, instance, action);
             switch(rp.status) {
                 case OK:
@@ -902,7 +902,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<PERMS> rp = service.getPermsByUser(trans, user);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -921,7 +921,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getPermissionByUser(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
      */
@@ -931,7 +931,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<PERMS> rp = service.getPermsByUserScope(trans, user, scopes);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -952,7 +952,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
 
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getPermissionByUser(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
      */
@@ -966,7 +966,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 if (Question.willSpecialLog(trans, trans.user())) {
                     Question.logEncryptTrace(trans,data.asString());
                 }
-                perms = data.asObject();            
+                perms = data.asObject();
             } catch (APIException e) {
                 trans.error().log("Invalid Input",IN,GET_PERMISSIONS_BY_USER_WITH_QUERY);
                 return Result.err(Status.ERR_BadData,"Invalid Input");
@@ -974,7 +974,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
             Result<PERMS> rp = service.getPermsByUser(trans, perms, user);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<PERMS> data = permsDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -994,7 +994,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getPermissionsForRole(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
      */
@@ -1023,7 +1023,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> getPermsByNS(AuthzTrans trans,HttpServletResponse resp,String ns) {
         TimeTaken tt = trans.start(GET_PERMISSIONS_BY_NS + ' ' + ns, Env.SUB|Env.ALWAYS);
@@ -1058,7 +1058,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public Result<Void> renamePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp,
             String origType, String origInstance, String origAction) {
         String cmdDescription = UPDATE_PERMISSION;
-        TimeTaken tt = trans.start( cmdDescription    + ' ' + origType + ' ' + origInstance + ' ' + origAction, Env.SUB|Env.ALWAYS);    
+        TimeTaken tt = trans.start( cmdDescription    + ' ' + origType + ' ' + origInstance + ' ' + origAction, Env.SUB|Env.ALWAYS);
         try {
             REQUEST rreq;
             try {
@@ -1066,15 +1066,15 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 if (Question.willSpecialLog(trans, trans.user())) {
                     Question.logEncryptTrace(trans,data.asString());
                 }
-                rreq = data.asObject();            
+                rreq = data.asObject();
             } catch (APIException e) {
                 trans.error().log("Invalid Input",IN,cmdDescription);
                 return Result.err(Status.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<Void> rp = service.renamePerm(trans,rreq, origType, origInstance, origAction);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -1087,7 +1087,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> updatePermDescription(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
         TimeTaken tt = trans.start(UPDATE_PERM_DESC, Env.SUB|Env.ALWAYS);
@@ -1106,7 +1106,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
             Result<Void> rp = service.updatePermDescription(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permRequestDF.getOutType());
                     return Result.ok();
                 default:
@@ -1119,8 +1119,8 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
-    
+
+
     @Override
     public Result<Void> resetPermRoles(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
         TimeTaken tt = trans.start(SET_PERMISSION_ROLES_TO, Env.SUB|Env.ALWAYS);
@@ -1136,11 +1136,11 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
                 trans.error().log("Invalid Input",IN, SET_PERMISSION_ROLES_TO);
                 return Result.err(Status.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<Void> rp = service.resetPermRoles(trans, rreq);
-            
+
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -1153,7 +1153,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> deletePerm(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
         TimeTaken tt = trans.start(DELETE_PERMISSION, Env.SUB|Env.ALWAYS);
@@ -1173,7 +1173,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
             Result<Void> rp = service.deletePerm(trans,rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -1193,7 +1193,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.deletePerm(trans,type,instance,action);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -1213,7 +1213,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public static final String GET_ROLES_BY_NAME_ONLY = "getRolesByNameOnly";
     public static final String GET_ROLES_BY_NAME = "getRolesByName";
     public static final String GET_ROLES_BY_PERM = "getRolesByPerm";
-    public static final String UPDATE_ROLE_DESC = "updateRoleDescription"; 
+    public static final String UPDATE_ROLE_DESC = "updateRoleDescription";
     public static final String ADD_PERM_TO_ROLE = "addPermissionToRole";
     public static final String DELETE_PERM_FROM_ROLE = "deletePermissionFromRole";
     public static final String UPDATE_MGTPERM_ROLE = "updateMgtPermRole";
@@ -1238,7 +1238,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
             Result<Void> rp = service.createRole(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,roleRequestDF.getOutType());
                     return Result.ok();
                 default:
@@ -1261,7 +1261,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<ROLES> rp = service.getRolesByName(trans, role);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -1290,7 +1290,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<ROLES> rp = service.getRolesByUser(trans, user);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -1319,7 +1319,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<ROLES> rp = service.getRolesByNS(trans, ns);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     if (!rp.isEmpty()) {
                         RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
                         if (Question.willSpecialLog(trans, trans.user())) {
@@ -1353,7 +1353,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<ROLES> rp = service.getRolesByNameOnly(trans, nameOnly);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     if (!rp.isEmpty()) {
                         RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
                         if (Question.willSpecialLog(trans, trans.user())) {
@@ -1386,7 +1386,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<ROLES> rp = service.getRolesByPerm(trans, type,instance,action);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<ROLES> data = roleDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -1428,7 +1428,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
             Result<Void> rp = service.updateRoleDescription(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,roleRequestDF.getOutType());
                     return Result.ok();
                 default:
@@ -1460,7 +1460,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
             Result<Void> rp = service.addPermToRole(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     resp.getOutputStream().println();
                     return Result.ok();
@@ -1493,7 +1493,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
             Result<Void> rp = service.delPermFromRole(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     resp.getOutputStream().println();
                     return Result.ok();
@@ -1518,7 +1518,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.delPermFromRole(trans, role, type, instance, action);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     resp.getOutputStream().println();
                     return Result.ok();
@@ -1539,7 +1539,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.deleteRole(trans, role);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -1571,7 +1571,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
 
             Result<Void> rp = service.deleteRole(trans, rreq);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -1599,7 +1599,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     @Override
     /**
      * Create Credential
-     * 
+     *
      */
     public Result<Void> createUserCred(AuthzTrans trans, HttpServletRequest req) {
         TimeTaken tt = trans.start(CREATE_CRED, Env.SUB|Env.ALWAYS);
@@ -1668,11 +1668,11 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     @Override
     public Result<Void> getCredsByNS(AuthzTrans trans, HttpServletResponse resp, String ns) {
         TimeTaken tt = trans.start(GET_CREDS_BY_NS + ' ' + ns, Env.SUB|Env.ALWAYS);
-        
+
         try {
             Result<USERS> ru = service.getCredsByNS(trans,ns);
             switch(ru.status) {
-                case OK: 
+                case OK:
                     RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
                     if (Question.willSpecialLog(trans,trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -1689,21 +1689,21 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         } finally {
             tt.done();
         }
-        
+
     }
-    
-    
+
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#getCredsByID(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String)
      */
     @Override
     public Result<Void> getCredsByID(AuthzTrans trans, HttpServletResponse resp, String id) {
         TimeTaken tt = trans.start(GET_CREDS_BY_ID + ' ' + id, Env.SUB|Env.ALWAYS);
-        
+
         try {
             Result<USERS> ru = service.getCredsByID(trans,id);
             switch(ru.status) {
-                case OK: 
+                case OK:
                     RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -1720,7 +1720,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         } finally {
             tt.done();
         }
-        
+
     }
 
     @Override
@@ -1741,10 +1741,10 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.err(e);
         } finally {
             tt.done();
-        }    
+        }
     }
-    
-    
+
+
     @Override
     public Result<Date> doesCredentialMatch(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
         TimeTaken tt = trans.start(DOES_CRED_MATCH, Env.SUB|Env.ALWAYS);
@@ -1763,7 +1763,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             return Result.err(e);
         } finally {
             tt.done();
-        }    
+        }
     }
 
 
@@ -1792,11 +1792,11 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     @Override
     public Result<Void> getCertInfoByID(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp, String id) {
         TimeTaken tt = trans.start(GET_CERT_BY_ID, Env.SUB|Env.ALWAYS);
-        try {    
+        try {
             Result<CERTS> rci = service.getCertInfoByID(trans,req,id);
-            
+
             switch(rci.status) {
-                case OK: 
+                case OK:
                     if (Question.willSpecialLog(trans, trans.user())) {
                         RosettaData<CERTS> data = certsDF.newData(trans).load(rci.value);
                         Question.logEncryptTrace(trans,data.asString());
@@ -1822,11 +1822,11 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public static final String DELETE_DELEGATE = "deleteDelegate";
     public static final String GET_DELEGATE_USER = "getDelegatesByUser";
     public static final String GET_DELEGATE_DELG = "getDelegatesByDelegate";
-    
+
     @Override
     public Result<Void> createDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
         TimeTaken tt = trans.start(CREATE_DELEGATE, Env.SUB|Env.ALWAYS);
-        try {    
+        try {
             Data<REQUEST> data = delgRequestDF.newData().load(req.getInputStream());
             if (Question.willSpecialLog(trans, trans.user())) {
                 Question.logEncryptTrace(trans,data.asString());
@@ -1840,11 +1840,11 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> updateDelegate(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
         TimeTaken tt = trans.start(UPDATE_DELEGATE, Env.SUB|Env.ALWAYS);
-        try {    
+        try {
             Data<REQUEST> data = delgRequestDF.newData().load(req.getInputStream());
             if (Question.willSpecialLog(trans, trans.user())) {
                 Question.logEncryptTrace(trans,data.asString());
@@ -1858,7 +1858,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> deleteDelegate(AuthzTrans trans,  HttpServletRequest req, HttpServletResponse resp) {
         TimeTaken tt = trans.start(DELETE_DELEGATE, Env.SUB|Env.ALWAYS);
@@ -1876,7 +1876,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> deleteDelegate(AuthzTrans trans, String userName) {
         TimeTaken tt = trans.start(DELETE_DELEGATE + ' ' + userName, Env.SUB|Env.ALWAYS);
@@ -1889,15 +1889,15 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> getDelegatesByUser(AuthzTrans trans, String user, HttpServletResponse resp) {
         TimeTaken tt = trans.start(GET_DELEGATE_USER, Env.SUB|Env.ALWAYS);
         try {
             Result<DELGS> rd = service.getDelegatesByUser(trans, user);
-            
+
             switch(rd.status) {
-                case OK: 
+                case OK:
                     RosettaData<DELGS> data = delgDF.newData(trans).load(rd.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -1922,7 +1922,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<DELGS> rd = service.getDelegatesByDelegate(trans, delegate);
             switch(rd.status) {
-                case OK: 
+                case OK:
                     RosettaData<DELGS> data = delgDF.newData(trans).load(rd.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -1964,10 +1964,10 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             } catch (APIException e) {
                 return Result.err(Status.ERR_BadData,"Invalid Input");
             }
-            
+
             Result<Void> rp = service.createUserRole(trans,request);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -1980,14 +1980,14 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> getUserInRole(AuthzTrans trans, HttpServletResponse resp, String user, String role) {
         TimeTaken tt = trans.start(GET_USERROLES + ' ' + user + '|' + role, Env.SUB|Env.ALWAYS);
         try {
             Result<USERS> ru = service.getUserInRole(trans,user,role);
             switch(ru.status) {
-                case OK: 
+                case OK:
                     RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2015,7 +2015,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<USERROLES> ru = service.getUserRolesByUser(trans,user);
             switch(ru.status) {
-                case OK: 
+                case OK:
                     RosettaData<USERROLES> data = userrolesDF.newData(trans).load(ru.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2036,14 +2036,14 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
 
     }
-    
+
     @Override
     public Result<Void> getUserRolesByRole(AuthzTrans trans, HttpServletResponse resp, String role) {
         TimeTaken tt = trans.start(GET_USERROLES_BY_ROLE + ' ' + role, Env.SUB|Env.ALWAYS);
         try {
             Result<USERROLES> ru = service.getUserRolesByRole(trans,role);
             switch(ru.status) {
-                case OK: 
+                case OK:
                     RosettaData<USERROLES> data = userrolesDF.newData(trans).load(ru.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2064,7 +2064,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
 
     }
-    
+
 
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#extendUserRoleExpiration(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.String)
@@ -2088,7 +2088,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<Void> rp = service.deleteUserRole(trans,user,role);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -2106,7 +2106,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     private static final String GET_APPROVALS_BY_USER = "getApprovalsByUser.";
     private static final String GET_APPROVALS_BY_TICKET = "getApprovalsByTicket.";
     private static final String GET_APPROVALS_BY_APPROVER = "getApprovalsByApprover.";
-    
+
     @Override
     public Result<Void> updateApproval(AuthzTrans trans, HttpServletRequest req, HttpServletResponse resp) {
         TimeTaken tt = trans.start(UPDATE_APPROVAL, Env.SUB|Env.ALWAYS);
@@ -2117,9 +2117,9 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             }
 
             Result<Void> rp = service.updateApproval(trans, data.asObject());
-            
+
             switch(rp.status) {
-                case OK: 
+                case OK:
                     setContentType(resp,approvalDF.getOutType());
                     return Result.ok();
                 default:
@@ -2132,20 +2132,20 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
     @Override
     public Result<Void> getApprovalsByUser(AuthzTrans trans, HttpServletResponse resp, String user) {
         TimeTaken tt = trans.start(GET_APPROVALS_BY_USER + ' ' + user, Env.SUB|Env.ALWAYS);
         try {
             Result<APPROVALS> rp = service.getApprovalsByUser(trans, user);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<APPROVALS> data = approvalDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
                     }
                     data.to(resp.getOutputStream());
-                    
+
                     setContentType(resp,permsDF.getOutType());
                     return Result.ok();
                 default:
@@ -2165,7 +2165,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<APPROVALS> rp = service.getApprovalsByApprover(trans, approver);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<APPROVALS> data = approvalDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2191,7 +2191,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<APPROVALS> rp = service.getApprovalsByTicket(trans, ticket);
             switch(rp.status) {
-                case OK: 
+                case OK:
                     RosettaData<APPROVALS> data = approvalDF.newData(trans).load(rp.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2212,7 +2212,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     }
 
 
-    
+
     public static final String GET_USERS_PERMISSION = "getUsersByPermission";
     public static final String GET_USERS_ROLE = "getUsersByRole";
 
@@ -2225,7 +2225,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<USERS> ru = service.getUsersByRole(trans,role);
             switch(ru.status) {
-                case OK: 
+                case OK:
                     RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2249,13 +2249,13 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
      * @see com.att.authz.facade.AuthzFacade#getUsersByPermission(org.onap.aaf.auth.env.test.AuthzTrans, javax.servlet.http.HttpServletResponse, java.lang.String, java.lang.String, java.lang.String)
      */
     @Override
-    public Result<Void> getUsersByPermission(AuthzTrans trans, HttpServletResponse resp, 
+    public Result<Void> getUsersByPermission(AuthzTrans trans, HttpServletResponse resp,
             String type, String instance, String action) {
         TimeTaken tt = trans.start(GET_USERS_PERMISSION + ' ' + type + ' ' + instance + ' ' +action, Env.SUB|Env.ALWAYS);
         try {
             Result<USERS> ru = service.getUsersByPermission(trans,type,instance,action);
             switch(ru.status) {
-                case OK: 
+                case OK:
                     RosettaData<USERS> data = usersDF.newData(trans).load(ru.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2275,7 +2275,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
-    
+
     public static final String GET_HISTORY_USER = "getHistoryByUser";
     public static final String GET_HISTORY_ROLE = "getHistoryByRole";
     public static final String GET_HISTORY_PERM = "getHistoryByPerm";
@@ -2305,7 +2305,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<HISTORY> rh = service.getHistoryByUser(trans,user,yyyymm,sort);
             switch(rh.status) {
-                case OK: 
+                case OK:
                     RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2348,7 +2348,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<HISTORY> rh = service.getHistoryByRole(trans,role,yyyymm,sort);
             switch(rh.status) {
-                case OK: 
+                case OK:
                     RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2391,7 +2391,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<HISTORY> rh = service.getHistoryByNS(trans,ns,yyyymm,sort);
             switch(rh.status) {
-                case OK: 
+                case OK:
                     RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2434,7 +2434,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<HISTORY> rh = service.getHistoryByPerm(trans,perm,yyyymm,sort);
             switch(rh.status) {
-                case OK: 
+                case OK:
                     RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2478,7 +2478,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         try {
             Result<HISTORY> rh = service.getHistoryBySubject(trans,subject,target,yyyymm,sort);
             switch(rh.status) {
-                case OK: 
+                case OK:
                     RosettaData<HISTORY> data = historyDF.newData(trans).load(rh.value);
                     if (Question.willSpecialLog(trans, trans.user())) {
                         Question.logEncryptTrace(trans,data.asString());
@@ -2498,9 +2498,9 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
         }
     }
 
-    public final static String CACHE_CLEAR = "cacheClear "; 
+    public final static String CACHE_CLEAR = "cacheClear ";
 //    public final static String CACHE_VALIDATE = "validateCache";
-    
+
     /* (non-Javadoc)
      * @see com.att.authz.facade.AuthzFacade#cacheClear(org.onap.aaf.auth.env.test.AuthzTrans, java.lang.String)
      */
@@ -2601,7 +2601,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
             tt.done();
         }
     }
-    
+
 
     public final static String API_EXAMPLE = "apiExample";
 
@@ -2612,7 +2612,7 @@ public abstract class AuthzFacadeImpl<NSS,PERMS,PERMKEY,ROLES,USERS,USERROLES,DE
     public Result<Void> getAPIExample(AuthzTrans trans, HttpServletResponse resp, String nameOrContentType, boolean optional) {
         TimeTaken tt = trans.start(API_EXAMPLE, Env.SUB);
         try {
-            String content =Examples.print(apiDF.getEnv(), nameOrContentType, optional); 
+            String content =Examples.print(apiDF.getEnv(), nameOrContentType, optional);
             resp.getOutputStream().print(content);
             setContentType(resp,content.contains("<?xml")?TYPE.XML:TYPE.JSON);
             return Result.ok();
index 0e67ac4..d5e1c30 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index c66525d..549e6ed 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,7 +55,7 @@ public interface Mapper<
     ERROR,
     APPROVALS>
 {
-    enum API{NSS,NS_REQ,    
+    enum API{NSS,NS_REQ,
              PERMS,PERM_KEY,PERM_REQ,
              ROLES,ROLE,ROLE_REQ,ROLE_PERM_REQ,
              USERS,USER_ROLE_REQ,USER_ROLES,
@@ -83,12 +83,12 @@ public interface Mapper<
     public Result<APPROVALS> approvals(List<ApprovalDAO.Data> lAppr);
     public Result<List<ApprovalDAO.Data>> approvals(APPROVALS apprs);
     public Result<List<PermDAO.Data>> perms(AuthzTrans trans, PERMS perms);
-    
+
     public Result<UserRoleDAO.Data> userRole(AuthzTrans trans, REQUEST from);
     public Result<PermDAO.Data> permFromRPRequest(AuthzTrans trans, REQUEST from);
     public REQUEST ungrantRequest(AuthzTrans trans, String role, String type, String instance, String action);
     public Result<RoleDAO.Data> roleFromRPRequest(AuthzTrans trans, REQUEST from);
-    
+
     /*
      * Check Requests of varying sorts for Future fields set
      */
@@ -108,9 +108,9 @@ public interface Mapper<
     public Result<KEYS> keys(Collection<String> from);
 
     public Result<HISTORY> history(AuthzTrans trans, List<HistoryDAO.Data> history, final int sort);
-    
+
     public ERROR errorFromMessage(StringBuilder holder, String msgID, String text, String... detail);
-    
+
     /*
      * A Memo Creator... Use to avoid creating superfluous Strings until needed.
      */
index 26216c6..7abbcf6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -103,7 +103,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
     public Mapper_2_0(Question q) {
         this.q = q;
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.auth.service.mapper.Mapper#ns(java.lang.Object, org.onap.aaf.auth.service.mapper.Mapper.Holder)
      */
@@ -116,7 +116,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         namespace.owner = from.getResponsible();
         namespace.description = from.getDescription();
         trans.checkpoint(namespace.name, Env.ALWAYS);
-        
+
         NsType nt = NsType.fromString(from.getType());
         if (nt.equals(NsType.UNKNOWN)) {
             String ns = namespace.name;
@@ -133,7 +133,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             }
         }
         namespace.type = nt.type;
-        
+
         return Result.ok(namespace);
     }
 
@@ -215,7 +215,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         } finally {
             tt.done();
         }
-         
+
         tt = trans.start("Sort Perms", Env.SUB);
         try {
             Collections.sort(perms, new Comparator<Perm>() {
@@ -230,14 +230,14 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
                         return instanceCompare;
                     }
                     return typeCompare;
-                }    
+                }
             });
         } finally {
             tt.done();
         }
         return Result.ok(to);
     }
-    
+
     @Override
     public Result<Perms> perms(AuthzTrans trans, List<PermDAO.Data> from, Perms to, String[] nss, boolean filter) {
         List<Perm> perms = to.getPerm();
@@ -268,7 +268,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         } finally {
             tt.done();
         }
-         
+
         tt = trans.start("Sort Perms", Env.SUB);
         try {
             Collections.sort(perms, new Comparator<Perm>() {
@@ -283,7 +283,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
                         return instanceCompare;
                     }
                     return typeCompare;
-                }    
+                }
             });
         } finally {
             tt.done();
@@ -297,7 +297,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         for (Perm p : perms.getPerm()) {
             Result<NsSplit> nss = q.deriveNsSplit(trans, p.getType());
             PermDAO.Data pd = new PermDAO.Data();
-            if (nss.isOK()) { 
+            if (nss.isOK()) {
                 pd.ns=nss.value.ns;
                 pd.type = nss.value.name;
                 pd.instance = p.getInstance();
@@ -313,12 +313,12 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         return Result.ok(lpd);
     }
 
-    
+
     @Override
     public Result<PermDAO.Data> permkey(AuthzTrans trans, Pkey from) {
         return q.permFrom(trans, from.getType(),from.getInstance(),from.getAction());
     }
-    
+
     @Override
     public Result<PermDAO.Data> permFromRPRequest(AuthzTrans trans, Request req) {
         RolePermRequest from = (RolePermRequest)req;
@@ -326,19 +326,19 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         if (perm==null)return Result.err(Status.ERR_NotFound, "Permission not found");
         Result<NsSplit> nss = q.deriveNsSplit(trans, perm.getType());
         PermDAO.Data pd = new PermDAO.Data();
-        if (nss.isOK()) { 
+        if (nss.isOK()) {
             pd.ns=nss.value.ns;
             pd.type = nss.value.name;
             pd.instance = from.getPerm().getInstance();
             pd.action = from.getPerm().getAction();
             trans.checkpoint(pd.fullPerm(), Env.ALWAYS);
-            
+
             String[] roles = {};
-            
+
             if (from.getRole() != null) {
                 roles = from.getRole().split(",");
             }
-            for (String role : roles) { 
+            for (String role : roles) {
                 pd.roles(true).add(role);
             }
             return Result.ok(pd);
@@ -346,13 +346,13 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             return Result.err(nss);
         }
     }
-    
+
     @Override
     public Result<RoleDAO.Data> roleFromRPRequest(AuthzTrans trans, Request req) {
         RolePermRequest from = (RolePermRequest)req;
         Result<NsSplit> nss = q.deriveNsSplit(trans, from.getRole());
         RoleDAO.Data rd = new RoleDAO.Data();
-        if (nss.isOK()) { 
+        if (nss.isOK()) {
             rd.ns = nss.value.ns;
             rd.name = nss.value.name;
             trans.checkpoint(rd.fullName(), Env.ALWAYS);
@@ -361,7 +361,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             return Result.err(nss);
         }
     }
-    
+
     @Override
     public Result<PermDAO.Data> perm(AuthzTrans trans, Request req) {
         PermRequest from = (PermRequest)req;
@@ -380,7 +380,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             return Result.ok(pd);
         }  else {
             Result<NsSplit> nss = q.deriveNsSplit(trans, from.getType());
-            if (nss.isOK()) { 
+            if (nss.isOK()) {
                 pd.ns=nss.value.ns;
                 pd.type = nss.value.name;
                 pd.instance = from.getInstance();
@@ -393,7 +393,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             }
         }
     }
-    
+
     @Override
     public Request ungrantRequest(AuthzTrans trans, String role, String type, String instance, String action) {
         RolePermRequest rpr = new RolePermRequest();
@@ -402,7 +402,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         pkey.setInstance(instance);
         pkey.setAction(action);
         rpr.setPerm(pkey);
-        
+
         rpr.setRole(role);
         return rpr;
     }
@@ -429,7 +429,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
      */
     @Override
     public Result<Roles> roles(AuthzTrans trans, List<RoleDAO.Data> from, Roles to, boolean filter) {
-        final boolean needNS = trans.requested(REQD_TYPE.ns); 
+        final boolean needNS = trans.requested(REQD_TYPE.ns);
         for (RoleDAO.Data frole : from) {
             // Only Add Data to view if User is allowed to see this Role
             if (!filter || q.mayUser(trans, trans.user(), frole,Access.read).isOK()) {
@@ -443,7 +443,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
                     Result<String[]> rpa = PermDAO.Data.decodeToArray(trans,q,p);
                     if (rpa.notOK())
                         return Result.err(rpa);
-                    
+
                     String[] pa = rpa.value;
                     Pkey pKey = new Pkey();
                     pKey.setType(pa[0]+'.'+pa[1]);
@@ -460,7 +460,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
     /*
      * (non-Javadoc)
      * @see org.onap.aaf.auth.service.mapper.Mapper#users(java.util.Collection, java.lang.Object)
-     * 
+     *
      * Note: Prevalidate all data for permission to view
      */
     @Override
@@ -480,7 +480,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
     /*
      * (non-Javadoc)
      * @see org.onap.aaf.auth.service.mapper.Mapper#users(java.util.Collection, java.lang.Object)
-     * 
+     *
      * Note: Prevalidate all data for permission to view
      */
     @Override
@@ -537,12 +537,12 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             }
             if (passwd != null) {
                 to.cred = ByteBuffer.wrap(passwd.getBytes());
-                to.type = CredDAO.RAW; 
+                to.type = CredDAO.RAW;
             } else {
                 to.type = CredDAO.NONE;
             }
         }
-            
+
         // Note: Ensure requested EndDate created will match Organization Password Rules
         //  P.S. Do not apply TempPassword rule here. Do that when you know you are doing a Create/Reset (see Service)
         to.expires = getExpires(trans.org(),Expiration.Password,base,from.getId());
@@ -550,7 +550,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
 
         return Result.ok(to);
     }
-    
+
     @Override
     public Result<Users> cred(List<CredDAO.Data> from, Users to) {
         List<User> cu = to.getUser();
@@ -564,7 +564,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         }
         return Result.ok(to);
     }
-    
+
     @Override
     public Result<Certs> cert(List<CertDAO.Data> from, Certs to) {
         List<Cert> lc = to.getCert();
@@ -572,7 +572,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             Cert cert = new Cert();
             cert.setId(fcred.id);
             cert.setX500(fcred.x500);
-            /**TODO - change Interface 
+            /**TODO - change Interface
              * @deprecated */
             cert.setFingerprint(fcred.serial.toByteArray());
             lc.add(cert);
@@ -583,15 +583,15 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
     /**
      * Analyze whether Requests should be acted on now, or in the future, based on Start Date, and whether the requester
      * is allowed to change this value directly
-     * 
+     *
      * Returning Result.OK means it should be done in the future.
      * Returning Result.ACC_Now means to act on table change now.
      */
     @Override
-    public Result<FutureDAO.Data> future(AuthzTrans trans, String table, Request from, 
+    public Result<FutureDAO.Data> future(AuthzTrans trans, String table, Request from,
                 Bytification content, boolean enableApproval,  Memo memo, MayChange mc) {
         Result<?> rMayChange;
-        boolean needsAppr = enableApproval?trans.requested(REQD_TYPE.future):false; 
+        boolean needsAppr = enableApproval?trans.requested(REQD_TYPE.future):false;
         if (!needsAppr && (needsAppr = (rMayChange=mc.mayChange()).notOK())) {
             if (enableApproval) {
                 if (!trans.requested(AuthzTrans.REQD_TYPE.future)) {
@@ -601,16 +601,16 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
                 return Result.err(rMayChange);
             }
         }
-        GregorianCalendar now = new GregorianCalendar(); 
+        GregorianCalendar now = new GregorianCalendar();
         GregorianCalendar start = from.getStart()==null?now:from.getStart().toGregorianCalendar();
-        
+
         GregorianCalendar expires = trans.org().expiration(start, Expiration.Future);
         XMLGregorianCalendar xgc;
         if ((xgc=from.getEnd())!=null) {
             GregorianCalendar fgc = xgc.toGregorianCalendar();
             expires = expires.before(fgc)?expires:fgc; // Min of desired expiration, and Org expiration
         }
-        
+
         //TODO needs two answers from this.  What's the NSS, and may Change.
         FutureDAO.Data fto;
         if (start.after(now) || needsAppr ) {
@@ -669,7 +669,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             item.setUser(data.user);
             items.add(item);
         }
-        
+
         if (sort != 0) {
             TimeTaken tt = trans.start("Sort ", Env.SUB);
             try {
@@ -697,7 +697,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         }
         return err;
     }
-    
+
     @Override
     public Class<?> getClass(API api) {
         switch(api) {
@@ -753,17 +753,17 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             case ERROR: return (A)new Error();
             case API: return (A)new Api();
             case VOID: return null;
-            
+
             case APPROVALS:    return (A) new Approvals();
             case DELG_REQ: return (A) new DelgRequest();
         }
         return null;
     }
-    
+
     @SuppressWarnings("unchecked")
     /**
      * Get Typed Marshaler as they are defined
-     * 
+     *
      * @param api
      * @return
      */
@@ -799,7 +799,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
         }
         return Result.ok(apprs);
     }
-    
+
     @Override
     public Result<List<ApprovalDAO.Data>> approvals(Approvals apprs) {
         List<ApprovalDAO.Data>  lappr = new ArrayList<>();
@@ -815,7 +815,7 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
             ad.status=a.getStatus();
             ad.operation=a.getOperation();
             ad.memo=a.getMemo();
-            
+
             XMLGregorianCalendar xgc = a.getUpdated();
             if (xgc!=null)ad.updated=xgc.toGregorianCalendar().getTime();
             lappr.add(ad);
@@ -859,15 +859,15 @@ public class Mapper_2_0 implements Mapper<Nss, Perms, Pkey, Roles, Users, UserRo
     /*
      * We want "Expired" dates to start at a specified time set by the Organization, and consistent wherever
      * the date is created from.
-     */ 
+     */
     private Date getExpires(Organization org, Expiration exp, Request base, String id) {
         XMLGregorianCalendar end = base.getEnd();
         GregorianCalendar gc = end==null?new GregorianCalendar():end.toGregorianCalendar();
         GregorianCalendar orggc;
-        orggc = org.expiration(gc,exp,id); 
+        orggc = org.expiration(gc,exp,id);
 
         // We'll choose the lesser of dates to ensure Policy Compliance...
-    
+
         GregorianCalendar endgc = end==null||gc.after(orggc)?orggc:gc;
         // Allow the Organization to determine when official "day Start" begins, Specifically when to consider something Expired.
         endgc = Chrono.firstMomentOfDay(endgc);
index 56785fe..1c0c4aa 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,9 +36,9 @@ import org.onap.aaf.auth.validation.Validator;
 /**
  * Validator
  * Consistently apply content rules for content (incoming)
- * 
- * Note: We restrict content for usability in URLs (because RESTful service), and avoid 
- * issues with Regular Expressions, and other enabling technologies. 
+ *
+ * Note: We restrict content for usability in URLs (because RESTful service), and avoid
+ * issues with Regular Expressions, and other enabling technologies.
  * @author Jonathan
  *
  */
@@ -57,13 +57,13 @@ public class ServiceValidator extends Validator {
         if (pd==null) {
             msg("Perm Data is null.");
         } else {
-            if(!pd.ns.contains("@")) { 
+            if(!pd.ns.contains("@")) {
                 ns(pd.ns);
             }
             permType(pd.type,pd.ns);
             permInstance(pd.instance);
             permAction(pd.action);
-            if (pd.roles!=null) { 
+            if (pd.roles!=null) {
                 for (String role : pd.roles) {
                     role(role);
                 }
@@ -86,7 +86,7 @@ public class ServiceValidator extends Validator {
         }
         return this;
     }
-    
+
     public ServiceValidator role(RoleDAO.Data pd) {
         if (pd==null) {
             msg("Role Data is null.");
@@ -151,14 +151,14 @@ public class ServiceValidator extends Validator {
             if (idx>0) {
                 str = str.substring(0,idx);
             }
-            
+
             if (org.supportsRealm(cd.id)) {
                 String resp = org.isValidID(trans, str);
                 if (isNew && (resp!=null && resp.length()>0)) {
                     msg(cd.id,str);
                 }
             }
-    
+
             if (cd.type==null) {
                 msg("Credential Type must be set");
             } else {
@@ -193,17 +193,17 @@ public class ServiceValidator extends Validator {
         ns(ns.name);
         for (String s : ns.admin) {
             if (nob(s,ID_CHARS)) {
-                msg("Admin [" + s + "] is invalid.");        
+                msg("Admin [" + s + "] is invalid.");
             }
-            
+
         }
         for (String s : ns.owner) {
             if (nob(s,ID_CHARS)) {
-                msg("Responsible [" + s + "] is invalid.");        
+                msg("Responsible [" + s + "] is invalid.");
             }
-            
+
         }
-        
+
         if (ns.attrib!=null) {
             for (Pair<String, String> at : ns.attrib) {
                 if (nob(at.x,NAME_CHARS)) {
@@ -221,14 +221,14 @@ public class ServiceValidator extends Validator {
 
     public ServiceValidator user_role(String user, UserRoleDAO.Data urdd) {
         role(user,urdd.role);
-        if(!urdd.role.startsWith(user)) { 
+        if(!urdd.role.startsWith(user)) {
             nullOrBlank("UserRole.ns",urdd.ns);
             nullOrBlank("UserRole.rname",urdd.rname);
         }
         return this;
     }
 
-    
+
     public ServiceValidator user_role(UserRoleDAO.Data urdd) {
         if (urdd==null) {
             msg("UserRole is null");
index a6b1f39..32e2414 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 724e5b5..4f000e6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -52,13 +52,13 @@ public class JU_API_Creds {
 
     @SuppressWarnings("static-access")
     @Test
-    public void testInit(){        
+    public void testInit(){
         try {
             api_Creds.init(authzAPI, facade);
         } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        }        
+        }
     }
 
     @SuppressWarnings("static-access")
index 69db866..5a430c6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index ea48c8e..8a85b5d 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index fd27e66..6df1bd6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 9868cfe..7b52b76 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 6e2f469..0597da2 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 679665e..78d85a1 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 95b26fc..7330960 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 91c0e14..460113b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index fd664d6..f562280 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 9a804c9..e992337 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -75,7 +75,7 @@ import aaf.v2_0.Users;
 
 @RunWith(MockitoJUnitRunner.class)
 public abstract class JU_BaseServiceImpl {
-    protected AuthzCassServiceImpl<Nss, Perms, Pkey, Roles, Users, UserRoles, Delgs, Certs, Keys, Request, History, Error, Approvals> 
+    protected AuthzCassServiceImpl<Nss, Perms, Pkey, Roles, Users, UserRoles, Delgs, Certs, Keys, Request, History, Error, Approvals>
         acsi;
     protected Mapper_2_0 mapper;
 
@@ -88,7 +88,7 @@ public abstract class JU_BaseServiceImpl {
 // NOTE: Annotation format (@Mock and @Spy) do NOT seem to always work as a Base Class,
 //       so we construct manually.
 //
-// Mock Objects    
+// Mock Objects
     protected HistoryDAO historyDAO = mock(HistoryDAO.class);
     protected CacheInfoDAO cacheInfoDAO = mock(CacheInfoDAO.class);
     protected CachedNSDAO nsDAO = mock(CachedNSDAO.class);
@@ -102,32 +102,32 @@ public abstract class JU_BaseServiceImpl {
     protected DelegateDAO delegateDAO = mock(DelegateDAO.class);
     protected ApprovalDAO approvalDAO = mock(ApprovalDAO.class);
 
- // Spy Objects    
+ // Spy Objects
     @Spy
     protected static PropAccess access = new PropAccess();
     @Spy
     protected static AuthzEnv env = new AuthzEnv(access);
     @Spy
     protected static AuthzTrans trans = env.newTransNoAvg();
-    
+
     // @Spy doesn't seem to work on Question.
     @Spy
     protected Question question = spy(new Question(trans,
                 historyDAO,cacheInfoDAO,nsDAO,permDAO,
                 roleDAO,userRoleDAO,credDAO,certDAO,
                 locateDAO,futureDAO,delegateDAO,approvalDAO));
-    
+
     public void setUp() throws Exception {
         when(trans.org()).thenReturn(org);
         when(org.getDomain()).thenReturn("org.onap");
         Define.set(access);
         access.setProperty(Config.CADI_LATITUDE, "38.0");
         access.setProperty(Config.CADI_LONGITUDE, "-72.0");
-        
+
         mapper = new Mapper_2_0(question);
         acsi = new AuthzCassServiceImpl<>(trans, mapper, question);
     }
-    
+
     //////////
     //  Common Data Objects
     /////////
@@ -144,7 +144,7 @@ public abstract class JU_BaseServiceImpl {
         rv.add(ndd);
         return rv;
     }
-    
+
     /**
      * Setup Role Data for Mock Usages
      * @param trans
@@ -163,7 +163,7 @@ public abstract class JU_BaseServiceImpl {
         }
         when(question.userRoleDAO().read(trans, user, ns+'.'+role)).thenReturn(result);
     }
-    
+
     protected UserRoleDAO.Data urData(String user, String ns, String rname, int days) {
         UserRoleDAO.Data urdd = new UserRoleDAO.Data();
         urdd.user = user;
@@ -182,7 +182,7 @@ public abstract class JU_BaseServiceImpl {
         list.add(t);
         return list;
     }
-    
+
     protected <T> List<T> emptyList(Class<T> cls) {
         return new ArrayList<>();
     }
index 2bb907a..9cd5ecd 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,9 +49,9 @@ import junit.framework.Assert;
 
 @RunWith(MockitoJUnitRunner.class)
 public class JU_ServiceImpl_createUserCred extends JU_BaseServiceImpl  {
-    @Mock 
-    private Result<CredDAO.Data> rcdd;    
-    
+    @Mock
+    private Result<CredDAO.Data> rcdd;
+
     @Before
     public void setUp() throws Exception {
         super.setUp();
@@ -110,7 +110,7 @@ public class JU_ServiceImpl_createUserCred extends JU_BaseServiceImpl  {
         when(orgIdentity.isFound()).thenReturn(true);
         String ns = "org.onap.sample";
         when(question.nsDAO().read(trans, ns)).thenReturn(Result.ok(nsData(ns)));
-        
+
         CredDAO.Data cdd = credDataFound(cr,100);
         when(question.credDAO().create(any(AuthzTrans.class), any(CredDAO.Data.class) )).thenReturn(Result.ok(cdd));
         when(question.credDAO().readID(trans, cr.getId())).thenReturn(Result.ok(listOf(cdd)));
@@ -126,7 +126,7 @@ public class JU_ServiceImpl_createUserCred extends JU_BaseServiceImpl  {
         cr.setType(CredDAO.RAW);
         return cr;
     }
-    
+
    private CredDAO.Data credDataFound(CredRequest cr, int days) {
         CredDAO.Data cdd = new CredDAO.Data();
         cdd.id = cr.getId();
@@ -144,5 +144,5 @@ public class JU_ServiceImpl_createUserCred extends JU_BaseServiceImpl  {
         cdd.expires = gc.getTime();
         return cdd;
     }
-    
+
 }
\ No newline at end of file
index 53ba519..c4829ff 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -54,7 +54,7 @@ public class JU_ServiceValidator {
         assertTrue(validator.errs().equals("ERR_Security\n"));
 
     }
-    
+
     @Test
     public void permInstance() {
         assertFalse(validator.permInstance("hello").err());
index 8c39e44..4a48635 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,7 +30,7 @@ import org.onap.aaf.misc.env.util.Split;
 /**
  * A Class that understands the AAF format of Permission (name/type/action)
  *  or String "name|type|action"
- * 
+ *
  * @author Jonathan
  *
  */
@@ -38,7 +38,7 @@ public class AAFPermission implements Permission {
     private static final List<String> NO_ROLES;
     protected String ns,type,instance,action,key;
     private List<String> roles;
-    
+
     static {
         NO_ROLES = new ArrayList<>();
     }
@@ -71,15 +71,15 @@ public class AAFPermission implements Permission {
         }
         this.roles = roles==null?NO_ROLES:roles;
     }
-    
+
     /**
      * Match a Permission
      * if Permission is Fielded type "Permission", we use the fields
      * otherwise, we split the Permission with '|'
-     * 
+     *
      * when the type or action starts with REGEX indicator character ( ! ),
      * then it is evaluated as a regular expression.
-     * 
+     *
      * If you want a simple field comparison, it is faster without REGEX
      */
     public boolean match(Permission p) {
@@ -100,7 +100,7 @@ public class AAFPermission implements Permission {
             aafInstance = ap.getInstance();
             aafAction = ap.getAction();
         } else {
-            // Permission is concatenated together: separated by 
+            // Permission is concatenated together: separated by
             String[] aaf = Split.splitTrim('|', p.getKey());
             switch(aaf.length) {
                 case 1:
@@ -116,13 +116,13 @@ public class AAFPermission implements Permission {
                 case 3:
                     aafNS = aaf[0];
                     aafType = aaf[1];
-                    aafInstance = aaf[2]; 
+                    aafInstance = aaf[2];
                     aafAction = "*";
                     break;
                 default:
                     aafNS = aaf[0];
                     aafType = aaf[1];
-                    aafInstance = aaf[2]; 
+                    aafInstance = aaf[2];
                     aafAction = aaf[3];
                 break;
             }
@@ -157,15 +157,15 @@ public class AAFPermission implements Permission {
     public String getFullType() {
         return ns + '.' + type;
     }
-    
+
     public String getInstance() {
         return instance;
     }
-    
+
     public String getAction() {
         return action;
     }
-    
+
     public String getKey() {
         return key;
     }
@@ -183,7 +183,7 @@ public class AAFPermission implements Permission {
     public String toString() {
         return "AAFPermission:" +
                 "\n\tNS: " + ns +
-                "\n\tType: " + type + 
+                "\n\tType: " + type +
                 "\n\tInstance: " + instance +
                 "\n\tAction: " + action +
                 "\n\tKey: " + key;
index c631cb9..ab525af 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 498f1bf..3e8d6f9 100644 (file)
@@ -30,7 +30,6 @@ public class PermEval {
     public static final char ALT_START_INST_KEY_CHAR='/';
 
     public static final char LIST_SEP = ',';
-    public static final String INST_KEY_REGEX = new StringBuilder().append(START_INST_KEY_CHAR).toString();
     public static final String ASTERIX = "*";
 
     /**
@@ -47,7 +46,7 @@ public class PermEval {
         if (sInst == null || pInst == null) {
             return false;
         }
-        if (sInst == "" || pInst == "") {
+        if (sInst.equals("") || pInst.equals("")) {
             return false;
         }
         if (ASTERIX.equals(sInst)) {
@@ -68,7 +67,7 @@ public class PermEval {
                     String[] pkeys=Split.split(startChar,pInst);
                     if (pkeys.length<skeys.length) {
                         return false;
-                    } else if(pkeys.length > skeys.length && 
+                    } else if(pkeys.length > skeys.length &&
                              (skeys.length==0 || !ASTERIX.equals(skeys[skeys.length-1]))) {
                            return false;
                     }
@@ -137,8 +136,8 @@ public class PermEval {
      * Action is not quite as complex.  But we write it in this function so it can be consistent
      */
     public static boolean evalAction(String sAction,String pAction) {
-        if (ASTERIX.equals(sAction))return true;               // If Server's String is "*", then it accepts every Action
-        if (pAction == "") return false;
+        if (ASTERIX.equals(sAction)) return true;               // If Server's String is "*", then it accepts every Action
+        if (pAction.equals("")) return false;
         for (String sItem : Split.split(LIST_SEP,sAction)) {         // allow for "," definition in Action
             if (pAction.charAt(0)==START_REGEX_CHAR?       // First char
                     sItem.matches(pAction.substring(1)):   // Evaluate as Regular Expression
index 2f2d2ac..0b1238a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -53,7 +53,7 @@ import org.onap.aaf.cadi.util.FixURIinfo;
 import org.onap.aaf.misc.env.APIException;
 
 public class TestConnectivity {
-    
+
     private static Map<String, String> aaf_urls;
 
 
@@ -72,7 +72,7 @@ public class TestConnectivity {
             try {
                 SecurityInfoC<HttpURLConnection> si = SecurityInfoC.instance(access, HttpURLConnection.class);
                 aaf_urls = Agent.loadURLs(access);
-                
+
                 List<SecuritySetter<HttpURLConnection>> lss = loadSetters(access,si);
                 /////////
                 String directAAFURL = aaf_urls.get(Config.AAF_URL);
@@ -80,14 +80,14 @@ public class TestConnectivity {
                     print(true,"Test Connections by non-located aaf_url");
                     Locator<URI> locator = new SingleEndpointLocator(directAAFURL);
                     connectTest(locator,new URI(directAAFURL));
-                    
+
                     SecuritySetter<HttpURLConnection> ss = si.defSS;
                     permTest(locator,ss);
                 } else {
                     /////////
                     print(true,"Test Connections driven by AAFLocator");
                     String serviceURI = aaf_urls.get(Config.AAF_URL);
-    
+
                     for (String url : new String[] {
                             serviceURI,
                             aaf_urls.get(Config.AAF_OAUTH2_TOKEN_URL),
@@ -127,7 +127,7 @@ public class TestConnectivity {
                         System.out.println("No User/Password to test");
                     }
                 }
-                
+
             } catch (Exception e) {
                 e.printStackTrace(System.err);
             } finally {
@@ -135,14 +135,14 @@ public class TestConnectivity {
             }
         }
     }
-    
+
 
     private static List<SecuritySetter<HttpURLConnection>> loadSetters(PropAccess access, SecurityInfoC<HttpURLConnection> si)  {
         print(true,"Load Security Setters from Configuration Information");
         String user = access.getProperty(Config.AAF_APPID);
 
         ArrayList<SecuritySetter<HttpURLConnection>> lss = new ArrayList<>();
-        
+
 
         try {
             HBasicAuthSS hbass = new HBasicAuthSS(si,true);
@@ -177,7 +177,7 @@ public class TestConnectivity {
         } catch (Exception e) {
             access.log(Level.INFO, "AAF OAUTH2 Security Setter constructor threw exception: \"",e.getMessage(),"\". AAF OAUTH2 tests will not be conducted... Continuing");
         }
-        
+
         tokenURL = access.getProperty(Config.AAF_ALT_OAUTH2_TOKEN_URL);
         if (tokenURL==null) {
             access.log(Level.INFO, "AAF Alternative OAUTH2 requires",Config.AAF_ALT_OAUTH2_TOKEN_URL, "OAuth2 tests to", tokenURL, "will not be conducted... Continuing");
@@ -190,7 +190,7 @@ public class TestConnectivity {
                 access.log(Level.INFO, "ALT OAUTH2 Security Setter constructor threw exception: \"",e.getMessage(),"\". ALT OAuth2 tests to", tokenURL, " will not be conducted... Continuing");
             }
         }
-        
+
         return lss;
     }
 
@@ -270,11 +270,11 @@ public class TestConnectivity {
             String pathInfo = "/authz/perms/user/"+user;
             client.setPathInfo(pathInfo);
             System.out.println(pathInfo);
-            
+
             client.send();
             Future<String> future = client.futureReadString();
             if (future.get(7000)) {
-                System.out.println(future.body());    
+                System.out.println(future.body());
             } else {
                 if (future.code()==401 && ss instanceof HX509SS) {
                     System.out.println("  Authentication denied with 401 for Certificate.\n\t"
@@ -298,11 +298,11 @@ public class TestConnectivity {
             client.setPathInfo("/authn/basicAuth");
             client.addHeader("Accept", "text/plain");
             client.send();
-    
-        
+
+
             Future<String> future = client.futureReadString();
             if (future.get(7000)) {
-                System.out.println("BasicAuth Validated");    
+                System.out.println("BasicAuth Validated");
             } else {
                 System.out.println("Failure " + future.code() + ":" + future.body());
             }
index c23e9b2..f3a45e5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,16 +55,16 @@ import aaf.v2_0.Users;
 import aaf.v2_0.Users.User;
 
 public class AAFListedCertIdentity implements CertIdentity {
-    //TODO should 8 hours be configurable? 
-    private static final long EIGHT_HOURS = 1000*60*60*8L; 
-            
+    //TODO should 8 hours be configurable?
+    private static final long EIGHT_HOURS = 1000*60*60*8L;
+
     private static Map<ByteArrayHolder,String> certs = null;
-    
+
     // Did this to add other Trust Mechanisms
-    // Trust mechanism set by Property: 
+    // Trust mechanism set by Property:
     private static final String[] authMechanisms = new String[] {"tguard","basicAuth","csp"};
     private static String[] certIDs;
-    
+
     private static Map<String,Set<String>> trusted =null;
 
     public AAFListedCertIdentity(Access access, AAFCon<?> aafcon) throws APIException {
@@ -86,7 +86,7 @@ public class AAFListedCertIdentity implements CertIdentity {
     public static Set<String> trusted(String authMech) {
         return trusted.get(authMech);
     }
-    
+
     public TaggedPrincipal identity(HttpServletRequest req, X509Certificate cert,    byte[] certBytes) throws CertificateException {
         if (cert==null && certBytes==null)return null;
         if (certBytes==null)certBytes = cert.getEncoded();
@@ -107,14 +107,14 @@ public class AAFListedCertIdentity implements CertIdentity {
             return Hash.compareTo(ba, b.ba);
         }
     }
-    
+
     private class CertUpdate extends TimerTask {
 
         private AAFCon<?> aafcon;
         public CertUpdate(AAFCon<?> con) {
             aafcon = con;
         }
-        
+
         @Override
         public void run() {
             try {
@@ -142,9 +142,9 @@ public class AAFListedCertIdentity implements CertIdentity {
                     } else {
                         aafcon.access.log(Level.WARN, "Could not get Users in Perm com.att.trust|tguard|authenticate",fusr.code(),fusr.body());
                     }
-                    
+
                 }
-                
+
                 for (String u : userLookup) {
                     Future<Certs> fc = aafcon.client().read("/authn/cert/id/"+u, Certs.class, aafcon.certsDF);
                     XMLGregorianCalendar now = Chrono.timeStamp();
index d5a2e58..2d03e6a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,16 +34,16 @@ import aaf.v2_0.Error;
 
 public class ErrMessage {
     private RosettaDF<Error> errDF;
-    
+
     public ErrMessage(RosettaEnv env) throws APIException {
         errDF = env.newDataFactory(Error.class);
     }
 
     /**
      * AT&T Requires a specific Error Format for RESTful Services, which AAF complies with.
-     * 
-     * This code will create a meaningful string from this format. 
-     * 
+     *
+     * This code will create a meaningful string from this format.
+     *
      * @param ps
      * @param df
      * @param r
@@ -54,12 +54,12 @@ public class ErrMessage {
         Error err = errDF.newData().in(TYPE.JSON).load(attErrJson).asObject();
         ps.println(toMsg(sb,err));
     }
-    
+
     /**
      * AT&T Requires a specific Error Format for RESTful Services, which AAF complies with.
-     * 
-     * This code will create a meaningful string from this format. 
-     * 
+     *
+     * This code will create a meaningful string from this format.
+     *
      * @param sb
      * @param df
      * @param r
@@ -68,11 +68,11 @@ public class ErrMessage {
     public StringBuilder toMsg(StringBuilder sb,  String attErrJson) throws APIException {
         return toMsg(sb,errDF.newData().in(TYPE.JSON).load(attErrJson).asObject());
     }
-    
+
     public StringBuilder toMsg(Future<?> future) {
         return toMsg(new StringBuilder(),future);
     }
-    
+
     public StringBuilder toMsg(StringBuilder sb, Future<?> future) {
         try {
             toMsg(sb,errDF.newData().in(TYPE.JSON).load(future.body()).asObject());
@@ -93,7 +93,7 @@ public class ErrMessage {
         Vars.convert(sb, err.getText(),vars);
         return sb;
     }
-    
+
     public Error getError(Future<?> future) throws APIException {
         return errDF.newData().in(TYPE.JSON).load(future.body()).asObject();
     }
index 921b509..6520294 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -85,12 +85,12 @@ public class Examples {
         } else {
             className = nameOrContentType;
         }
-        
+
         // No Void.class in aaf.v2_0 package causing errors when trying to use a newVoidv2_0
         // method similar to others in this class. This makes it work, but is it right?
         if ("Void".equals(className))
             return "";
-                
+
         if ("1.1".equals(version)) {
             version = "v1_0";
         } else if (version!=null) {
@@ -98,7 +98,7 @@ public class Examples {
         } else {
             version = "v2_0";
         }
-        
+
         Class<?> cls=null;
         int minorIdx = version.indexOf('_');
         if(minorIdx<0) {
@@ -115,29 +115,29 @@ public class Examples {
                 }
             }
         }
-        
+
         if(cls==null) {
             throw new APIException("ERROR: " + "aaf."+vprefix+"X not found.");
         }
-        
+
         Method meth;
         try {
             meth = Examples.class.getDeclaredMethod("new"+cls.getSimpleName()+vprefix+minor,boolean.class);
         } catch (Exception e) {
             throw new APIException("ERROR: " + cls.getName() + " does not have an Example in Code.  Request from AAF Developers");
         }
-        
+
         RosettaDF<C> df = env.newDataFactory(cls);
         df.option(Data.PRETTY);
-        
+
         Object data = meth.invoke(null,optional);
-        
+
         @SuppressWarnings("unchecked")
         String rv = df.newData().load((C)data).out(type).asString();
 //        Object obj = df.newData().in(type).load(rv).asObject();
         return rv;
     }
-    
+
     /*
      *  Set Base Class Request (easier than coding over and over)
      */
@@ -147,9 +147,9 @@ public class Examples {
         gc.add(GregorianCalendar.MONTH, 6);
         req.setEnd(Chrono.timeStamp(gc));
 //        req.setForce("false");
-        
+
     }
-    
+
     @SuppressWarnings("unused")
     private static Request newRequestv2_0(boolean optional) {
         Request r = new Request();
@@ -168,7 +168,7 @@ public class Examples {
         if (optional)setOptional(rpr);
         return rpr;
     }
-    
+
     @SuppressWarnings("unused")
     private static Roles newRolesv2_0(boolean optional) {
         Role r;
@@ -206,8 +206,8 @@ public class Examples {
 
         return rs;
     }
-    
-    
+
+
     @SuppressWarnings("unused")
     private static PermRequest newPermRequestv2_0(boolean optional) {
         PermRequest pr = new PermRequest();
@@ -216,12 +216,12 @@ public class Examples {
         pr.setAction("myAction");
         if (optional) {
             pr.setDescription("Short and meaningful verbiage about the Permission");
-            
+
             setOptional(pr);
         }
         return pr;
     }
-    
+
     @SuppressWarnings("unused")
     private static Perm newPermv2_0(boolean optional) {
         Perm pr = new Perm();
@@ -246,7 +246,7 @@ public class Examples {
         pr.setAction("myAction");
         return pr;
     }
-    
+
     @SuppressWarnings("unused")
     private static Perms newPermsv2_0(boolean optional) {
         Perms perms = new Perms();
@@ -268,9 +268,9 @@ public class Examples {
         p.getRoles().add("org.osaaf.myns.myRole2");
 
         return perms;
-        
+
     }
-    
+
     @SuppressWarnings("unused")
     private static UserRoleRequest newUserRoleRequestv2_0(boolean optional) {
         UserRoleRequest urr = new UserRoleRequest();
@@ -279,7 +279,7 @@ public class Examples {
         if (optional) setOptional(urr);
         return urr;
     }
-    
+
     @SuppressWarnings("unused")
     private static NsRequest newNsRequestv2_0(boolean optional) {
         NsRequest nr = new NsRequest();
@@ -287,7 +287,7 @@ public class Examples {
         nr.getResponsible().add("ab1234@people.osaaf.org");
         nr.getResponsible().add("cd5678@people.osaaf.org");
         nr.getAdmin().add("zy9876@people.osaaf.org");
-        nr.getAdmin().add("xw5432@people.osaaf.org");        
+        nr.getAdmin().add("xw5432@people.osaaf.org");
         if (optional) {
             nr.setDescription("This is my Namespace to set up");
             nr.setType("APP");
@@ -295,12 +295,12 @@ public class Examples {
         }
         return nr;
     }
-    
-    
+
+
     @SuppressWarnings("unused")
     private static Nss newNssv2_0(boolean optional) {
         Ns ns;
-        
+
         Nss nss = new Nss();
         nss.getNs().add(ns = new Nss.Ns());
         ns.setName("org.osaaf.myns");
@@ -309,14 +309,14 @@ public class Examples {
         ns.getAdmin().add("zy9876@people.osaaf.org");
         ns.getAdmin().add("xw5432@people.osaaf.org");
         ns.setDescription("This is my Namespace to set up");
-        
+
         nss.getNs().add(ns = new Nss.Ns());
         ns.setName("org.osaaf.myOtherNs");
         ns.getResponsible().add("ab1234@people.osaaf.org");
         ns.getResponsible().add("cd5678@people.osaaf.org");
         ns.getAdmin().add("zy9876@people.osaaf.org");
-        ns.getAdmin().add("xw5432@people.osaaf.org");        
-            
+        ns.getAdmin().add("xw5432@people.osaaf.org");
+
         return nss;
     }
     @SuppressWarnings("unused")
@@ -343,23 +343,23 @@ public class Examples {
 
         return cr;
     }
-    
+
     @SuppressWarnings("unused")
     private static Users newUsersv2_0(boolean optional) {
         User user;
-    
+
         Users users = new Users();
     user = new Users.User();
         users.getUser().add(user);
-        user.setId("ab1234@people.osaaf.org");    
+        user.setId("ab1234@people.osaaf.org");
         GregorianCalendar gc = new GregorianCalendar();
         user.setExpires(Chrono.timeStamp(gc));
 
     user = new Users.User();
         users.getUser().add(user);
-        user.setId("zy9876@people.osaaf.org");    
-        user.setExpires(Chrono.timeStamp(gc));    
-            
+        user.setId("zy9876@people.osaaf.org");
+        user.setExpires(Chrono.timeStamp(gc));
+
         return users;
     }
 
@@ -400,7 +400,7 @@ public class Examples {
         ur.setRole("com.test.myapp.myRole");
         ur.setExpires(Chrono.timeStamp());
         urs.getUserRole().add(ur);
-        
+
         ur = new UserRole();
         ur.setUser("yx4321");
         ur.setRole("com.test.yourapp.yourRole");
@@ -453,7 +453,7 @@ public class Examples {
         return a;
     }
 
-    
+
 
     @SuppressWarnings("unused")
     private static aaf.v2_0.Error newErrorv2_0(boolean optional) {
index eb11649..ab95a5a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,7 +52,7 @@ public class CertMarshal extends ObjMarshal<Cert> {
                 return t.getX500();
             }
         });
-        
+
         add(new FieldDateTime<Cert>("expires") {
             @Override
             protected XMLGregorianCalendar data(Cert t) {
index 9353079..a69b0a3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ public class CertsMarshal extends ObjMarshal<Certs> {
             protected List<Cert> data(Certs t) {
                 return t.getCert();
             }
-        });    
+        });
     }
 
 
index 216468c..c48e35f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,7 +36,7 @@ import aaf.v2_0.CredRequest;
 public class AAFAuthn<CLIENT> extends AbsUserCache<AAFPermission> {
     private AAFCon<CLIENT> con;
     private String realm;
-    
+
     /**
      * Configure with Standard AAF properties, Stand alone
      * @param con
@@ -51,17 +51,17 @@ public class AAFAuthn<CLIENT> extends AbsUserCache<AAFPermission> {
     /**
      * Configure with Standard AAF properties, but share the Cache (with AAF Lur)
      * @param con
-     * @throws Exception 
+     * @throws Exception
      */
     // Package on purpose
     AAFAuthn(AAFCon<CLIENT> con, AbsUserCache<AAFPermission> cache) {
         super(cache);
         this.con = con;
     }
-    
+
     /**
      * Return Native Realm of AAF Instance.
-     * 
+     *
      * @return
      */
     public String getRealm() {
@@ -70,24 +70,24 @@ public class AAFAuthn<CLIENT> extends AbsUserCache<AAFPermission> {
 
     /**
      * Returns null if ok, or an Error String;
-     * 
+     *
      * Convenience function.  Passes "null" for State object
      */
     public String validate(String user, String password) throws IOException {
         return validate(user,password,null);
     }
-    
+
     /**
      * Returns null if ok, or an Error String;
-     * 
+     *
      * For State Object, you may put in HTTPServletRequest or AuthzTrans, if available.  Otherwise,
      * leave null
-     * 
+     *
      * @param user
      * @param password
      * @return
-     * @throws IOException 
-     * @throws CadiException 
+     * @throws IOException
+     * @throws CadiException
      * @throws Exception
      */
     public String validate(String user, String password, Object state) throws IOException {
@@ -121,11 +121,11 @@ public class AAFAuthn<CLIENT> extends AbsUserCache<AAFPermission> {
                 return "user/pass combo invalid for " + user;
             case DENIED:
                 return "AAF denies API for " + user;
-            default: 
+            default:
                 return "AAFAuthn doesn't handle Principal " + user;
         }
     }
-    
+
     private class AAFCachedPrincipal extends ConfigPrincipal implements CachedPrincipal {
         private long expires;
         private long timeToLive;
@@ -140,10 +140,10 @@ public class AAFAuthn<CLIENT> extends AbsUserCache<AAFPermission> {
             try {
                 Miss missed = missed(getName(),getCred());
                 if (missed==null || missed.mayContinue()) {
-                       CredRequest cr = new CredRequest();
-                       cr.setId(getName());
-                       cr.setPassword(new String(getCred()));
-                       Future<String> fp = con.client().readPost("/authn/validate", con.credReqDF, cr);
+                    CredRequest cr = new CredRequest();
+                    cr.setId(getName());
+                    cr.setPassword(new String(getCred()));
+                    Future<String> fp = con.client().readPost("/authn/validate", con.credReqDF, cr);
                     //Rcli<CLIENT> client = con.client().forUser(con.basicAuth(getName(), new String(getCred())));
                     //Future<String> fp = client.read(
                     //        "/authn/basicAuth",
index 3b97883..7c315e1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -134,12 +134,12 @@ public abstract class AAFCon<CLIENT> implements Connector {
                     si.defSS=x509Alias(alias);
                     set(si.defSS);
                 } else {
-    
+
                     String encpass = access.getProperty(Config.AAF_APPPASS, null);
                     if (encpass==null) {
                         encpass = access.getProperty(Config.OAUTH_CLIENT_SECRET,null);
                     }
-                    
+
                     if (encpass==null) {
                         if (alias==null) {
                             access.printf(Access.Level.WARN,"%s, %s or %s required before use.", Config.CADI_ALIAS, Config.AAF_APPID, Config.OAUTH_CLIENT_ID);
@@ -151,17 +151,17 @@ public abstract class AAFCon<CLIENT> implements Connector {
                             set(si.defSS);
                         } else {
                             si.defSS=new SecuritySetter<CLIENT>() {
-        
+
                                 @Override
                                 public String getID() {
                                     return "";
                                 }
-        
+
                                 @Override
                                 public void setSecurity(CLIENT client) throws CadiException {
                                     throw new CadiException("AAFCon has not been initialized with Credentials (SecuritySetter)");
                                 }
-        
+
                                 @Override
                                 public int setLastResponse(int respCode) {
                                     return 0;
@@ -172,18 +172,18 @@ public abstract class AAFCon<CLIENT> implements Connector {
                     }
                 }
             }
-            
+
             timeout = Integer.parseInt(access.getProperty(Config.AAF_CALL_TIMEOUT, Config.AAF_CALL_TIMEOUT_DEF));
             cleanInterval = Integer.parseInt(access.getProperty(Config.AAF_CLEAN_INTERVAL, Config.AAF_CLEAN_INTERVAL_DEF));
             highCount = Integer.parseInt(access.getProperty(Config.AAF_HIGH_COUNT, Config.AAF_HIGH_COUNT_DEF).trim());
             connTimeout = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF).trim());
             userExpires = Integer.parseInt(access.getProperty(Config.AAF_USER_EXPIRES, Config.AAF_USER_EXPIRES_DEF).trim());
             usageRefreshTriggerCount = Integer.parseInt(access.getProperty(Config.AAF_USER_EXPIRES, Config.AAF_USER_EXPIRES_DEF).trim())-1; // zero based
-    
+
             app=FQI.reverseDomain(si.defSS.getID());
             //TODO Get Realm from AAF
             realm="people.osaaf.org";
-    
+
             env = new RosettaEnv();
             permsDF = env.newDataFactory(Perms.class);
             usersDF = env.newDataFactory(Users.class);
@@ -201,22 +201,22 @@ public abstract class AAFCon<CLIENT> implements Connector {
     public final String aafVersion() {
         return apiVersion;
     }
-    
+
     /**
      * Use this call to get the appropriate client based on configuration (HTTP, future)
      * using default AAF API Version
-     * 
+     *
      * @param apiVersion
      * @return
      * @throws CadiException
      */
     public Rcli<CLIENT> client() throws CadiException {
         return client(apiVersion);
-    }        
+    }
 
     /**
      * Use this call to get the appropriate client based on configuration (HTTP, future)
-     * 
+     *
      * @param apiVersion
      * @return
      * @throws CadiException
@@ -228,19 +228,19 @@ public abstract class AAFCon<CLIENT> implements Connector {
             client.apiVersion(apiVersion)
                   .readTimeout(connTimeout);
             clients.put(apiVersion, client);
-        } 
+        }
         return client;
     }
 
     public Rcli<CLIENT> client(URI uri) throws CadiException {
         return rclient(uri,si.defSS).readTimeout(connTimeout);
     }
-    
+
     /**
      * Use this API when you have permission to have your call act as the end client's ID.
-     * 
+     *
      *  Your calls will get 403 errors if you do not have this permission.  it is a special setup, rarely given.
-     * 
+     *
      * @param apiVersion
      * @param req
      * @return
@@ -249,12 +249,12 @@ public abstract class AAFCon<CLIENT> implements Connector {
     public Rcli<CLIENT> clientAs(TaggedPrincipal p) throws CadiException {
        return clientAs(apiVersion,p);
     }
-    
+
     /**
      * Use this API when you have permission to have your call act as the end client's ID.
-     * 
+     *
      *  Your calls will get 403 errors if you do not have this permission.  it is a special setup, rarely given.
-     * 
+     *
      * @param apiVersion
      * @param req
      * @return
@@ -265,14 +265,14 @@ public abstract class AAFCon<CLIENT> implements Connector {
         return cl.forUser(transferSS(p));
     }
 
-    
+
     public RosettaEnv env() {
         return env;
     }
-    
+
     /**
      * Return the backing AAFCon, if there is a Lur Setup that is AAF.
-     * 
+     *
      * If there is no AAFLur setup, it will return "null"
      * @param servletRequest
      * @return
@@ -295,9 +295,9 @@ public abstract class AAFCon<CLIENT> implements Connector {
         }
         return null;
     }
-    
+
     public abstract AAFCon<CLIENT> clone(String url) throws CadiException, LocatorException;
-    
+
     public AAFAuthn<CLIENT> newAuthn() throws APIException {
         try {
             return new AAFAuthn<>(this);
@@ -324,7 +324,7 @@ public abstract class AAFCon<CLIENT> implements Connector {
             throw new CadiException(e);
         }
     }
-    
+
     public AAFLurPerm newLur(AbsUserCache<AAFPermission> c) throws APIException {
         try {
             return new AAFLurPerm(this,c);
@@ -336,33 +336,33 @@ public abstract class AAFCon<CLIENT> implements Connector {
     }
 
     protected abstract Rcli<CLIENT> rclient(URI uri, SecuritySetter<CLIENT> ss) throws CadiException;
-    
+
     public abstract Rcli<CLIENT> rclient(Locator<URI> loc, SecuritySetter<CLIENT> ss) throws CadiException;
 
     public Rcli<CLIENT> client(Locator<URI> locator) throws CadiException {
         return rclient(locator,si.defSS);
     }
-    
+
     public abstract<RET> RET best(Retryable<RET> retryable) throws LocatorException, CadiException, APIException;
 
     public abstract<RET> RET bestForUser(GetSetter get, Retryable<RET> retryable) throws LocatorException, CadiException, APIException;
 
     public abstract SecuritySetter<CLIENT> basicAuth(String user, String password) throws CadiException;
-    
+
     public abstract SecuritySetter<CLIENT> transferSS(TaggedPrincipal principal) throws CadiException;
-    
+
     public abstract SecuritySetter<CLIENT> basicAuthSS(BasicPrincipal principal) throws CadiException;
-    
+
     public abstract SecuritySetter<CLIENT> tokenSS(final String client_id, final String accessToken) throws CadiException;
-    
+
     public abstract SecuritySetter<CLIENT> x509Alias(String alias) throws APIException, CadiException;
-    
+
 
     public String getRealm() {
         return realm;
 
     }
-    
+
     /**
      * This interface allows the AAFCon, even though generic, to pass in correctly typed values based on the above SS commands.
      * @author Jonathan
@@ -379,7 +379,7 @@ public abstract class AAFCon<CLIENT> implements Connector {
         }
         return ss;
     }
-    
+
     public SecurityInfoC<CLIENT> securityInfo() {
         return si;
     }
@@ -390,7 +390,7 @@ public abstract class AAFCon<CLIENT> implements Connector {
         }
         return "unknown";
     }
-    
+
     public void invalidate() throws CadiException {
         for (Rcli<CLIENT> client : clients.values()) {
             client.invalidate();
@@ -412,7 +412,7 @@ public abstract class AAFCon<CLIENT> implements Connector {
         }
         return text;
     }
-    
+
     public static AAFCon<?> newInstance(PropAccess pa) throws CadiException, LocatorException {
         // Potentially add plugin for other kinds of Access
         return new AAFConHttp(pa);
index e60b5d8..b62bc40 100644 (file)
@@ -7,9 +7,9 @@ r * ============LICENSE_START===================================================
  * 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.
@@ -82,7 +82,7 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
         super(access,tag,si);
         hman = new HMangr(access, locator);
     }
-    
+
     private AAFConHttp(AAFCon<HttpURLConnection> aafcon, String url) throws LocatorException {
         super(aafcon);
         si=aafcon.si;
@@ -127,7 +127,7 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
     @Override
     protected Rcli<HttpURLConnection> rclient(URI ignoredURI, SecuritySetter<HttpURLConnection> ss) throws CadiException {
         if (hman.loc==null) {
-            throw new CadiException("No Locator set in AAFConHttp"); 
+            throw new CadiException("No Locator set in AAFConHttp");
         }
         try {
             return new HRcli(hman, hman.loc.best() ,ss);
@@ -135,7 +135,7 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
             throw new CadiException(e);
         }
     }
-    
+
     @Override
     public Rcli<HttpURLConnection> rclient(Locator<URI> loc, SecuritySetter<HttpURLConnection> ss) throws CadiException {
         try {
@@ -149,7 +149,7 @@ public class AAFConHttp extends AAFCon<HttpURLConnection> {
     public AbsTransferSS<HttpURLConnection> transferSS(TaggedPrincipal principal) {
         return new HTransferSS(principal, app,si);
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.cadi.aaf.v2_0.AAFCon#basicAuthSS(java.security.Principal)
      */
index 38f6bce..3611e48 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -67,7 +67,7 @@ public class AAFLocator extends AbsAAFLocator<BasicTrans>  {
                 env = new RosettaEnv(access.getProperties());
             }
         }
-        
+
         int connectTimeout = Integer.parseInt(si.access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF));
         try {
             String[] path = Split.split('/',locatorURI.getPath());
@@ -86,32 +86,32 @@ public class AAFLocator extends AbsAAFLocator<BasicTrans>  {
                 client = new HClient(si.defSS, locatorURI, connectTimeout);
             }
             epsDF = env.newDataFactory(Endpoints.class);
-            
+
         } catch (APIException /*| URISyntaxException*/ e) {
             throw new LocatorException(e);
         }
         lclient = new HClient(si.defSS, locatorURI, connectTimeout);
-        
+
         if(si.access.willLog(Access.Level.DEBUG)) {
             si.access.log(Access.Level.DEBUG, "Root URI:",client.getURI());
         }
-        
+
         String dnsString;
         if(locatorURI.getPort()<0) {
-               dnsString=locatorURI.getScheme() + "://" + locatorURI.getHost();
+            dnsString=locatorURI.getScheme() + "://" + locatorURI.getHost();
         } else {
-               dnsString=locatorURI.getScheme() + "://" +locatorURI.getHost()+':'+locatorURI.getPort();
+            dnsString=locatorURI.getScheme() + "://" +locatorURI.getHost()+':'+locatorURI.getPort();
         }
         if(dnsString.contains("null")) { // for Testing Purposes, mostly.
-               locatorLocator = null;
+            locatorLocator = null;
         } else {
-               locatorLocator = new DNSLocator(access, dnsString);
-               if(locatorLocator.hasItems()) {
-                       locatorItem = locatorLocator.best();
-               } else {
-                       // For when DNS doesn't work, including some K8s Installations
-                               locatorLocator = new SingleEndpointLocator(dnsString);
-               }
+            locatorLocator = new DNSLocator(access, dnsString);
+            if(locatorLocator.hasItems()) {
+                locatorItem = locatorLocator.best();
+            } else {
+                // For when DNS doesn't work, including some K8s Installations
+                locatorLocator = new SingleEndpointLocator(dnsString);
+            }
         }
     }
 
@@ -129,7 +129,7 @@ public class AAFLocator extends AbsAAFLocator<BasicTrans>  {
     }
 
     protected final int maxIters() {
-       
+
         return locatorLocator.size();
     }
 
@@ -166,7 +166,7 @@ public class AAFLocator extends AbsAAFLocator<BasicTrans>  {
                 for (Endpoint endpoint : fr.value.getEndpoint()) {
                     epl.add(new EP(endpoint,latitude,longitude));
                 }
-                
+
                 Collections.sort(epl);
                 replace(epl);
                 return true;
@@ -186,9 +186,9 @@ public class AAFLocator extends AbsAAFLocator<BasicTrans>  {
     protected URI getURI() {
         return client.getURI();
     }
-    
+
     protected HClient createClient(SecuritySetter<HttpURLConnection> ss, URI uri, int connectTimeout) throws LocatorException {
         return new HClient(ss, uri, connectTimeout);
     }
-    
+
 }
index 9f537bd..caa1fcc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,11 +52,11 @@ import aaf.v2_0.Perms;
 
 /**
  * Use AAF Service as Permission Service.
- * 
+ *
  * This Lur goes after AAF Permissions, which are elements of Roles, not the Roles themselves.
- * 
+ *
  * If you want a simple Role Lur, use AAFRoleLur
- * 
+ *
  * @author Jonathan
  *
  */
@@ -65,13 +65,13 @@ public class AAFLurPerm extends AbsAAFLur<AAFPermission> {
 
     /**
      *  Need to be able to transmutate a Principal into either Person or AppID, which are the only ones accepted at this
-     *  point by AAF.  There is no "domain", aka, no "@att.com" in "ab1234@att.com".  
-     *  
+     *  point by AAF.  There is no "domain", aka, no "@att.com" in "ab1234@att.com".
+     *
      *  The only thing that matters here for AAF is that we don't waste calls with IDs that obviously aren't valid.
      *  Thus, we validate that the ID portion follows the rules before we waste time accessing AAF remotely
-     * @throws APIException 
-     * @throws URISyntaxException 
-     * @throws DME2Exception 
+     * @throws APIException
+     * @throws URISyntaxException
+     * @throws DME2Exception
      */
     // Package on purpose
     AAFLurPerm(AAFCon<?> con) throws CadiException, APIException {
@@ -84,7 +84,7 @@ public class AAFLurPerm extends AbsAAFLur<AAFPermission> {
         super(con,auc);
         attachOAuth2(con);
     }
-    
+
     private void attachOAuth2(AAFCon<?> con) throws APIException {
         String oauth2_url;
         Class<?> tmcls = Config.loadClass(access,"org.osaaf.cadi.oauth.TokenMgr");
@@ -113,7 +113,7 @@ public class AAFLurPerm extends AbsAAFLur<AAFPermission> {
         final Holder<Float> remote = new Holder<Float>(0f);
 
         final boolean[] success = new boolean[]{false};
-        
+
         try {
             return aaf.best(new Retryable<User<AAFPermission>>() {
                 @Override
@@ -125,7 +125,7 @@ public class AAFLurPerm extends AbsAAFLur<AAFPermission> {
                         sb.append("?force");
                     }
                     Future<Perms> fp = client.read(sb.toString(),aaf.permsDF);
-                    
+
                     // In the meantime, lookup User, create if necessary
                     User<AAFPermission> user = getUser(principal);
                     Principal p;
@@ -139,11 +139,11 @@ public class AAFLurPerm extends AbsAAFLur<AAFPermission> {
                     } else {
                         p = principal;
                     }
-                    
+
                     if (user==null) {
                         addUser(user = new User<AAFPermission>(p,aaf.userExpires)); // no password
                     }
-                    
+
                     // OK, done all we can, now get content
                     boolean ok = fp.get(aaf.timeout);
                     remote.set(Timing.millis(remoteStart));
@@ -199,13 +199,13 @@ public class AAFLurPerm extends AbsAAFLur<AAFPermission> {
                             "/authz/perms/user/"+name,
                             aaf.permsDF
                             );
-                    
+
                     // OK, done all we can, now get content
                     boolean ok = fp.get(aaf.timeout);
                     remote.set(Timing.millis(remoteStart));
                     if (ok) {
                         success.set(true);
-                        Map<String,Permission> newMap = user.newMap(); 
+                        Map<String,Permission> newMap = user.newMap();
                         boolean willLog = aaf.access.willLog(Level.DEBUG);
                         for (Perm perm : fp.value.getPerm()) {
                             user.add(newMap, new AAFPermission(perm.getNs(),perm.getType(),perm.getInstance(),perm.getAction(),perm.getRoles()));
@@ -258,5 +258,5 @@ public class AAFLurPerm extends AbsAAFLur<AAFPermission> {
                 return new LocalPermission(p);
         }
     }
-    
+
 }
index 8f4fff6..314d5c1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,15 +28,15 @@ import org.onap.aaf.cadi.Locator;
 import org.onap.aaf.cadi.LocatorException;
 
 /**
- * This Locator good for using Inside Docker or K8s, where there is no real lookup, 
- * and there is conflict between external and internal host names, due to 
+ * This Locator good for using Inside Docker or K8s, where there is no real lookup,
+ * and there is conflict between external and internal host names, due to
  * Service abstraction.
- * 
+ *
  * @author Instrumental(Jonathan)
  *
  */
 public class AAFSingleLocator implements Locator<URI> {
-    
+
     private final URI uri;
 
     /**
@@ -44,12 +44,12 @@ public class AAFSingleLocator implements Locator<URI> {
      * @param cont_ns
      * @param prefix
      * @param version
-     * @throws URISyntaxException 
+     * @throws URISyntaxException
      */
     public AAFSingleLocator(final String uri) throws URISyntaxException {
         this.uri = new URI(uri);
     }
-    
+
     @Override
     public URI get(Item item) throws LocatorException {
         return uri;
@@ -87,10 +87,10 @@ public class AAFSingleLocator implements Locator<URI> {
     @Override
     public void destroy() {
     }
-    
+
     private class SingleItem implements Item {
     }
-    
+
     public static AAFSingleLocator create(Access access, String url) throws URISyntaxException {
         return new AAFSingleLocator(url);
     }
index 81b5550..c774440 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,7 +58,7 @@ public class AAFTaf<CLIENT> extends AbsUserCache<AAFPermission> implements HttpT
     private AAFCon<CLIENT> aaf;
     private boolean warn;
     private MapBathConverter mapIds;
-    
+
     public AAFTaf(AAFCon<CLIENT> con, boolean turnOnWarning) {
         super(con.access,con.cleanInterval,con.highCount, con.usageRefreshTriggerCount);
         aaf = con;
@@ -73,7 +73,7 @@ public class AAFTaf<CLIENT> extends AbsUserCache<AAFPermission> implements HttpT
         initMapBathConverter();
 
     }
-    
+
     // Note: Needed for Creation of this Object with Generics
     @SuppressWarnings("unchecked")
     public AAFTaf(Connector mustBeAAFCon, boolean turnOnWarning, AbsUserCache<AAFPermission> other) {
@@ -133,10 +133,10 @@ public class AAFTaf<CLIENT> extends AbsUserCache<AAFPermission> implements HttpT
                 Miss miss = missed(bp.getName(), bp.getCred());
                 if (miss!=null && !miss.mayContinue()) {
                     return new BasicHttpTafResp(aaf.access,bp.getName(),buildMsg(bp,req,
-                            "User/Pass Retry limit exceeded"), 
+                            "User/Pass Retry limit exceeded"),
                             RESP.TRY_AUTHENTICATING,resp,aaf.getRealm(),true);
                 }
-                
+
                 return aaf.bestForUser(
                     new GetSetter() {
                         @Override
@@ -159,11 +159,11 @@ public class AAFTaf<CLIENT> extends AbsUserCache<AAFPermission> implements HttpT
                                 boolean rv= addMiss(bp.getName(),bp.getCred());
                                 if (rv) {
                                     return new BasicHttpTafResp(aaf.access,bp.getName(),buildMsg(bp,req,
-                                            "user/pass combo invalid via AAF from " + req.getRemoteAddr()), 
+                                            "user/pass combo invalid via AAF from " + req.getRemoteAddr()),
                                             RESP.TRY_AUTHENTICATING,resp,aaf.getRealm(),true);
                                 } else {
                                     return new BasicHttpTafResp(aaf.access,bp.getName(),buildMsg(bp,req,
-                                            "user/pass combo invalid via AAF from " + req.getRemoteAddr() + " - Retry limit exceeded"), 
+                                            "user/pass combo invalid via AAF from " + req.getRemoteAddr() + " - Retry limit exceeded"),
                                             RESP.FAIL,resp,aaf.getRealm(),true);
                                 }
                             }
@@ -187,7 +187,7 @@ public class AAFTaf<CLIENT> extends AbsUserCache<AAFPermission> implements HttpT
         }
         return new BasicHttpTafResp(aaf.access,target,"Requesting HTTP Basic Authorization",RESP.TRY_AUTHENTICATING,resp,aaf.getRealm(),false);
     }
-    
+
     private String buildMsg(Principal pr, HttpServletRequest req, Object... msg) {
         StringBuilder sb = new StringBuilder();
         for (Object s : msg) {
@@ -205,7 +205,7 @@ public class AAFTaf<CLIENT> extends AbsUserCache<AAFPermission> implements HttpT
     }
 
 
-    
+
     public Resp revalidate(CachedPrincipal prin, Object state) {
         //  !!!! TEST THIS.. Things may not be revalidated, if not BasicPrincipal
         if (prin instanceof BasicPrincipal) {
index e3c1c9a..e912fc5 100644 (file)
@@ -101,7 +101,7 @@ public class AAFTrustChecker implements TrustChecker {
         if (user_info == null) {
             return tresp;
         }
-        
+
         tresp.getAccess().log(Level.DEBUG, user_info);
 
         String[] info = Split.split(',', user_info);
index a654e6f..06e2c62 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -111,15 +111,15 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
             this.version = (split.length > 1) ? split[1] : access.getProperty(Config.AAF_API_VERSION,Config.AAF_DEFAULT_API_VERSION);
         }
     }
-    
+
     /**
      * This is the way to setup specialized AAFLocators ahead of time.
      * @param preload
      */
     public static void setCreator(LocatorCreator lc) {
-        locatorCreator = lc; 
+        locatorCreator = lc;
     }
-        
+
     public static Locator<URI> create(final String name, final String version) throws LocatorException {
         if(locatorCreator==null) {
             throw new LocatorException("LocatorCreator is not set");
@@ -142,9 +142,9 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
             return locatorURI.toString();
         }
     }
-    
+
     /**
-     * Setting "self" excludes this service from the list.  Critical for contacting peers. 
+     * Setting "self" excludes this service from the list.  Critical for contacting peers.
      */
     public void setSelf(final String hostname, final int port) {
         myhostname=hostname;
@@ -161,10 +161,10 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
     protected final synchronized void replace(List<EP> list) {
         epList = list;
     }
-    
+
     /**
      * Call _refresh as needed during calls, but actual refresh will not occur if there
-     * are existing entities or if it has been called in the last 10 (settable) seconds.  
+     * are existing entities or if it has been called in the last 10 (settable) seconds.
      * Timed Refreshes happen by Scheduled Thread
      */
     private final boolean _refresh() {
@@ -220,7 +220,7 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
     public void invalidate(Item item) throws LocatorException {
         if (item!=null) {
             if (item instanceof AAFLItem) {
-                AAFLItem ali =(AAFLItem)item; 
+                AAFLItem ali =(AAFLItem)item;
                 EP ep = ali.ep;
                 synchronized(epList) {
                     epList.remove(ep);
@@ -237,9 +237,9 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
     public Item best() throws LocatorException {
         if (!hasItems()) {
             throw new LocatorException(String.format("No Entries found for '%s/%s:%s'",
-                       (aaf_locator_uri==null?aaf_locator_host:aaf_locator_uri.toString()),
-                       name,
-                       version));
+                    (aaf_locator_uri==null?aaf_locator_host:aaf_locator_uri.toString()),
+                    name,
+                    version));
         }
         List<EP> lep = new ArrayList<>();
         EP first = null;
@@ -274,7 +274,7 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
                 } else {
                     return new AAFLItem(iter,lep.get(i));
                 }
-            
+
         }
     }
 
@@ -291,7 +291,7 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
         private final Object[] epa;
         private final List<EP> epList;
         private int idx;
-        
+
         public EPIterator(Object[] epa, List<EP> epList) {
             this.epa = epa;
             this.epList = epList;
@@ -332,7 +332,7 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
             }
         }
     }
-    
+
     @Override
     public Item first()  {
         Iterator<EP> iter = getIterator();
@@ -370,18 +370,18 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
         }
         return null;
     }
-    
+
     protected static class AAFLItem implements Item {
             private Iterator<EP> iter;
             private URI uri;
             private EP ep;
-    
+
             public AAFLItem(Iterator<EP> iter, EP ep) {
                 this.iter = iter;
                 this.ep = ep;
                 uri = ep.uri;
             }
-            
+
             private static EP next(Iterator<EP> iter) {
                 EP ep=null;
                 while (iter.hasNext() && (ep==null || !ep.valid)) {
@@ -389,7 +389,7 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
                 }
                 return ep;
             }
-            
+
             public String toString() {
                 return ep==null?"Locator Item Invalid":ep.toString();
             }
@@ -399,7 +399,7 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
         private URI uri;
         private final double distance;
         private boolean valid;
-        
+
         public EP(final Endpoint ep, double latitude, double longitude) throws URISyntaxException {
             uri = new URI(ep.getProtocol(),null,ep.getHostname(),ep.getPort(),null,null,null);
             distance = GreatCircle.calc(latitude, longitude, ep.getLatitude(), ep.getLongitude());
@@ -420,13 +420,13 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
                 return 0;
             }
         }
-        
+
         @Override
         public String toString() {
             return distance + ": " + uri + (valid?" valid":" invalidate");
         }
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.cadi.Locator#destroy()
      */
@@ -434,7 +434,7 @@ public abstract class AbsAAFLocator<TRANS extends Trans> implements Locator<URI>
     public void destroy() {
         // Nothing to do
     }
-    
+
     @Override
     public String toString() {
         return "AAFLocator for " + name + " on " + getURI();
index ac6fc06..8d42455 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -67,12 +67,12 @@ public abstract class AbsAAFLur<PERM extends Permission> extends AbsUserCache<PE
     public void details(boolean on) {
         details = on;
     }
-    
+
 
     public void setPreemptiveLur(Lur preemptive) {
         this.preemptiveLur = preemptive;
     }
-    
+
     protected abstract User<PERM> loadUser(Principal bait);
 
     @Override
@@ -92,9 +92,9 @@ public abstract class AbsAAFLur<PERM extends Permission> extends AbsUserCache<PE
         return false;
     }
 
-    
+
     protected abstract boolean isCorrectPermType(Permission pond);
-    
+
     // This is where you build AAF CLient Code.  Answer the question "Is principal "bait" in the "pond"
     public boolean fish(Principal bait, Permission ... pond) {
         if (preemptiveLur!=null && preemptiveLur.handles(bait)) {
@@ -235,7 +235,7 @@ public abstract class AbsAAFLur<PERM extends Permission> extends AbsUserCache<PE
             }
         }
     }
-    
+
     @Override
     public void remove(String user) {
         super.remove(user);
@@ -257,7 +257,7 @@ public abstract class AbsAAFLur<PERM extends Permission> extends AbsUserCache<PE
     }
     /**
      * This special case minimizes loops, avoids multiple Set hits, and calls all the appropriate Actions found.
-     * 
+     *
      * @param bait
      * @param obj
      * @param type
@@ -279,7 +279,7 @@ public abstract class AbsAAFLur<PERM extends Permission> extends AbsUserCache<PE
             }
         }
     }
-    
+
     public static interface Action<A> {
         public String getName();
         /**
@@ -288,7 +288,7 @@ public abstract class AbsAAFLur<PERM extends Permission> extends AbsUserCache<PE
          */
         public boolean exec(A a);
     }
-    
+
     private class ReuseAAFPermission extends AAFPermission {
         public ReuseAAFPermission(String type, String instance) {
             super(type,instance,null,null);
@@ -297,9 +297,9 @@ public abstract class AbsAAFLur<PERM extends Permission> extends AbsUserCache<PE
         public void setAction(String s) {
             action = s;
         }
-        
+
         /**
-         * This function understands that AAF Keys are hierarchical, :A:B:C, 
+         * This function understands that AAF Keys are hierarchical, :A:B:C,
          *  Cassandra follows a similar method, so we'll short circuit and do it more efficiently when there isn't a first hit
          * @return
          */
index 7d149fc..48109e4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -94,11 +94,11 @@ public class Agent {
     public static final String PKCS12 = "pkcs12";
     public static final String JKS = "jks";
     private static final String SCRIPT="script";
-    
+
     private static final String CM_VER = "1.0";
     public static final int PASS_SIZE = 24;
     private static int TIMEOUT;
-    
+
     private static RosettaDF<CertificateRequest> reqDF;
     private static RosettaDF<CertInfo> certDF;
     private static RosettaDF<Artifacts> artifactsDF;
@@ -107,10 +107,10 @@ public class Agent {
     private static ErrMessage errMsg;
     private static Map<String,PlaceArtifact> placeArtifact;
     private static RosettaEnv env;
-    
+
     private static boolean doExit;
     private static AAFCon<?> aafcon;
-    
+
     private static List<String> CRED_TAGS = Arrays.asList(new String[] {
             Config.CADI_KEYFILE,
             Config.AAF_APPID, Config.AAF_APPPASS,
@@ -149,8 +149,8 @@ public class Agent {
         } else {
             try {
                 AAFSSO aafsso=null;
-                PropAccess access=null; 
-                
+                PropAccess access=null;
+
                 String hasEtc = null;
                 for(String a : args) {
                     if(a.startsWith(Config.CADI_PROP_FILES)) {
@@ -165,7 +165,7 @@ public class Agent {
                         configNoPasswd=true;
                     }
                 }
-                
+
                 if(access==null) {
                     if(args.length>1 && args[1].contains("@")) {
                         String domain = FQI.reverseDomain(args[1]);
@@ -181,9 +181,9 @@ public class Agent {
                                 }
                             }
                         }
-                    } 
+                    }
                 }
-                
+
                 if(access==null) {
                     for(Entry<Object, Object> es : System.getProperties().entrySet()) {
                         if(Config.CADI_PROP_FILES.equals(es.getKey())) {
@@ -194,7 +194,7 @@ public class Agent {
 
                 // When using Config file, check if Cred Exists, and if not, work with Deployer.
                 if(access!=null && !"config".equals(args[0]) && access.getProperty(Config.AAF_APPPASS)==null && access.getProperty(Config.CADI_ALIAS)==null) {
-                    // not enough credentials to use Props.  Use AAFSSO 
+                    // not enough credentials to use Props.  Use AAFSSO
                     access = null;
                 }
 
@@ -213,7 +213,7 @@ public class Agent {
                                 if (args.length>1) {
                                     if (!args[0].equals("keypairgen")) {
                                         props.put(Config.AAF_APPID, args[1]);
-                                    }    
+                                    }
                                 }
                                 return props;
                             }
@@ -221,7 +221,7 @@ public class Agent {
                         access = aafsso.access();
                     }
                 }
-                    
+
                 if (aafsso!=null && aafsso.loginOnly()) {
                     aafsso.setLogDefault();
                     aafsso.writeFiles();
@@ -239,7 +239,7 @@ public class Agent {
                             access.setProperty(p.substring(0,eq), p.substring(eq+1));
                         }
                     }
-                    
+
                     if (cmds.size()==0) {
                         if (aafsso!=null) {
                             aafsso.setLogDefault();
@@ -262,28 +262,28 @@ public class Agent {
                         System.out.println("     ** Type with no params for Tool Help");
                         System.out.println("     ** If using with Agent, preface with \"cadi\"");
                         System.out.println("   cadi <cadi tool params, see -?>");
-                        
+
                         if (doExit) {
                             System.exit(1);
                         }
                     }
-                    
+
                     TIMEOUT = Integer.parseInt(env.getProperty(Config.AAF_CONN_TIMEOUT, "5000"));
-                
+
                     reqDF = env.newDataFactory(CertificateRequest.class);
                     artifactsDF = env.newDataFactory(Artifacts.class);
                     certDF = env.newDataFactory(CertInfo.class);
                     configDF = env.newDataFactory(Configuration.class);
                     permDF = env.newDataFactory(Perms.class);
                     errMsg = new ErrMessage(env);
-        
+
                     placeArtifact = new HashMap<>();
                     placeArtifact.put(JKS, new PlaceArtifactInKeystore(JKS));
                     placeArtifact.put(PKCS12, new PlaceArtifactInKeystore(PKCS12));
                     placeArtifact.put(FILE, new PlaceArtifactInFiles());
                     placeArtifact.put(PRINT, new PlaceArtifactOnStream(System.out));
                     placeArtifact.put(SCRIPT, new PlaceArtifactScripts());
-                    
+
                     Trans trans = env.newTrans();
                     String token;
                     if ((token=access.getProperty("oauth_token"))!=null) {
@@ -294,13 +294,13 @@ public class Agent {
                         // show Std out again
                             aafsso.setLogDefault();
                             aafsso.setStdErrDefault();
-                            
+
                             /*urls=*/loadURLs(access);
                             aafsso.writeFiles();
                         }
-    
-                        
-    
+
+
+
                         String cmd = cmds.removeFirst();
                         switch(cmd) {
                             case "place":
@@ -397,7 +397,7 @@ public class Agent {
                         lhost=Config.AAF_LOCATE_URL_TAG;
                     }
                     value = rph.replacements(AGENT_LOAD_URLS,
-                            proto + lhost + "/%CNS.%AAF_NS." + ("aaf".equals(u)?"service":u) + ':' + version, 
+                            proto + lhost + "/%CNS.%AAF_NS." + ("aaf".equals(u)?"service":u) + ':' + version,
                             null,dot_le);
                     if(append!=null) {
                         value+=append;
@@ -457,7 +457,7 @@ public class Agent {
             }
             return alias!=null?alias:AAFSSO.cons.readLine("AppID: ");
         }
-        return cmds.removeFirst();    
+        return cmds.removeFirst();
     }
 
     private static String machine(Deque<String> cmds) throws UnknownHostException {
@@ -489,7 +489,7 @@ public class Agent {
         arti.setMechid(mechID!=null?mechID:AAFSSO.cons.readLine("AppID: "));
         arti.setMachine(machine!=null?machine:AAFSSO.cons.readLine("Machine (%s): ",InetAddress.getLocalHost().getHostName()));
         arti.setCa(AAFSSO.cons.readLine("CA: (%s): ","aaf"));
-        
+
         String resp = AAFSSO.cons.readLine("Types [file,pkcs12,jks,script] (%s): ", PKCS12);
         for (String s : Split.splitTrim(',', resp)) {
             arti.getType().add(s);
@@ -506,7 +506,7 @@ public class Agent {
         arti.setOsUser(AAFSSO.cons.readLine("OS User (%s): ", System.getProperty("user.name")));
         arti.setRenewDays(Integer.parseInt(AAFSSO.cons.readLine("Renewal Days (%s):", "30")));
         arti.setNotification(toNotification(AAFSSO.cons.readLine("Notification (mailto owner):", "")));
-        
+
         TimeTaken tt = trans.start("Create Artifact", Env.REMOTE);
         try {
             Future<Artifacts> future = aafcon.client(CM_VER).create("/cert/artifacts", artifactsDF, artifacts);
@@ -531,7 +531,7 @@ public class Agent {
         }
         return notification;
     }
-    
+
 
     private static void readArtifact(Trans trans, AAFCon<?> aafcon, Deque<String> cmds) throws Exception {
         String mechID = fqi(cmds);
@@ -541,14 +541,14 @@ public class Agent {
         try {
             Future<Artifacts> future = aafcon.client(CM_VER)
                     .read("/cert/artifacts/"+mechID+'/'+machine, artifactsDF,"Authorization","Bearer " + trans.getProperty("oauth_token"));
-    
+
             if (future.get(TIMEOUT)) {
                 boolean printed = false;
                 for (Artifact a : future.value.getArtifact()) {
-                    AAFSSO.cons.printf("AppID:          %s\n",a.getMechid()); 
-                    AAFSSO.cons.printf("  Sponsor:       %s\n",a.getSponsor()); 
-                    AAFSSO.cons.printf("Machine:         %s\n",a.getMachine()); 
-                    AAFSSO.cons.printf("CA:              %s\n",a.getCa()); 
+                    AAFSSO.cons.printf("AppID:          %s\n",a.getMechid());
+                    AAFSSO.cons.printf("  Sponsor:       %s\n",a.getSponsor());
+                    AAFSSO.cons.printf("Machine:         %s\n",a.getMachine());
+                    AAFSSO.cons.printf("CA:              %s\n",a.getCa());
                     StringBuilder sb = new StringBuilder();
                     boolean first = true;
                     for (String t : a.getType()) {
@@ -557,7 +557,7 @@ public class Agent {
                         sb.append(t);
                     }
                     AAFSSO.cons.printf("Types:           %s\n",sb);
-                    AAFSSO.cons.printf("Namespace:       %s\n",a.getNs()); 
+                    AAFSSO.cons.printf("Namespace:       %s\n",a.getNs());
                     AAFSSO.cons.printf("Directory:       %s\n",a.getDir());
                     AAFSSO.cons.printf("O/S User:        %s\n",a.getOsUser());
                     AAFSSO.cons.printf("Renew Days:      %d\n",a.getRenewDays());
@@ -574,7 +574,7 @@ public class Agent {
             tt.done();
         }
     }
-    
+
     private static void copyArtifact(Trans trans, AAFCon<?> aafcon, Deque<String> cmds) throws Exception {
         String mechID = fqi(cmds);
         String machine = machine(cmds);
@@ -586,7 +586,7 @@ public class Agent {
             try {
                 Future<Artifacts> future = aafcon.client(CM_VER)
                         .read("/cert/artifacts/"+mechID+'/'+machine, artifactsDF);
-            
+
                 if (future.get(TIMEOUT)) {
                     boolean printed = false;
                     for (Artifact a : future.value.getArtifact()) {
@@ -599,7 +599,7 @@ public class Agent {
                                 trans.error().printf("Call to AAF Certman failed, %s",
                                     errMsg.toMsg(fup));
                             }
-    
+
                             printed = true;
                         }
                     }
@@ -623,13 +623,13 @@ public class Agent {
         try {
             Future<Artifacts> fread = aafcon.client(CM_VER)
                     .read("/cert/artifacts/"+mechID+'/'+machine, artifactsDF);
-    
+
             if (fread.get(TIMEOUT)) {
                 Artifacts artifacts = new Artifacts();
                 for (Artifact a : fread.value.getArtifact()) {
                     Artifact arti = new Artifact();
                     artifacts.getArtifact().add(arti);
-                    
+
                     AAFSSO.cons.printf("For %s on %s\n", a.getMechid(),a.getMachine());
                     arti.setMechid(a.getMechid());
                     arti.setMachine(a.getMachine());
@@ -641,7 +641,7 @@ public class Agent {
                         else{sb.append(',');}
                         sb.append(t);
                     }
-    
+
                     String resp = AAFSSO.cons.readLine("Types [file,jks,pkcs12] (%s): ", sb);
                     for (String s : Split.splitTrim(',', resp)) {
                         arti.getType().add(s);
@@ -657,7 +657,7 @@ public class Agent {
                     arti.setOsUser(AAFSSO.cons.readLine("OS User (%s): ", a.getOsUser()));
                     arti.setRenewDays(Integer.parseInt(AAFSSO.cons.readLine("Renew Days (%s):", a.getRenewDays())));
                     arti.setNotification(toNotification(AAFSSO.cons.readLine("Notification (%s):", a.getNotification())));
-    
+
                 }
                 if (artifacts.getArtifact().size()==0) {
                     AAFSSO.cons.printf("Artifact for %s %s does not exist", mechID, machine);
@@ -678,16 +678,16 @@ public class Agent {
             tt.done();
         }
     }
-    
+
     private static void deleteArtifact(Trans trans, AAFCon<?> aafcon, Deque<String> cmds) throws Exception {
         String mechid = fqi(cmds);
         String machine = machine(cmds);
-        
+
         TimeTaken tt = trans.start("Delete Artifact", Env.REMOTE);
         try {
             Future<Void> future = aafcon.client(CM_VER)
                     .delete("/cert/artifacts/"+mechid+"/"+machine,"application/json" );
-    
+
             if (future.get(TIMEOUT)) {
                 trans.info().printf("Call to AAF Certman successful %s, %s",mechid,machine);
             } else {
@@ -699,7 +699,7 @@ public class Agent {
         }
     }
 
-    
+
 
     private static boolean placeCerts(Trans trans, AAFCon<?> aafcon, Deque<String> cmds) throws Exception {
         boolean rv = false;
@@ -713,7 +713,7 @@ public class Agent {
         } else {
             key = machine;
         }
-        
+
         TimeTaken tt = trans.start("Place Artifact", Env.REMOTE);
         try {
             Future<Artifacts> acf = aafcon.client(CM_VER)
@@ -761,7 +761,7 @@ public class Agent {
         }
         return rv;
     }
-    
+
     private static void notifyPlaced(Artifact a, boolean rv) {
     }
 
@@ -783,10 +783,10 @@ public class Agent {
                     boolean allowed;
                     for (Artifact a : acf.value.getArtifact()) {
                         allowed = id!=null && (id.equals(a.getSponsor()) ||
-                                (id.equals(a.getMechid()) 
+                                (id.equals(a.getMechid())
                                         && aafcon.securityInfo().defSS.getClass().isAssignableFrom(HBasicAuthSS.class)));
                         if (!allowed) {
-                            Future<String> pf = aafcon.client(CM_VER).read("/cert/may/" + 
+                            Future<String> pf = aafcon.client(CM_VER).read("/cert/may/" +
                                     a.getNs()+"|certman|"+a.getCa()+"|showpass","*/*");
                             if (pf.get(TIMEOUT)) {
                                 allowed = true;
@@ -809,11 +809,11 @@ public class Agent {
                             } finally {
                                 fis.close();
                             }
-                            
+
                             File f = new File(dir,a.getNs()+".keyfile");
                             if (f.exists()) {
                                 Symm symm = ArtifactDir.getSymm(f);
-                                
+
                                 for (Iterator<Entry<Object,Object>> iter = props.entrySet().iterator(); iter.hasNext();) {
                                     Entry<Object,Object> en = iter.next();
                                     if (en.getValue().toString().startsWith("enc:")) {
@@ -835,13 +835,13 @@ public class Agent {
         }
 
     }
-    
+
     private static void keypairGen(final Trans trans, final PropAccess access, final Deque<String> cmds) throws IOException {
         final String fqi = fqi(cmds);
         final String ns = FQI.reverseDomain(fqi);
         File dir = new File(access.getProperty(Config.CADI_ETCDIR,".")); // default to current Directory
         File f = new File(dir,ns+".key");
-        
+
         if (f.exists()) {
             String line = AAFSSO.cons.readLine("%s exists. Overwrite? (y/n): ", f.getCanonicalPath());
             if (!"Y".equalsIgnoreCase(line)) {
@@ -849,7 +849,7 @@ public class Agent {
                 return;
             }
         }
-        
+
         KeyPair kp = Factory.generateKeyPair(trans);
         ArtifactDir.write(f, Chmod.to400, Factory.toString(trans, kp.getPrivate()));
         System.out.printf("Wrote %s\n", f.getCanonicalFile());
@@ -858,7 +858,7 @@ public class Agent {
         ArtifactDir.write(f, Chmod.to644, Factory.toString(trans, kp.getPublic()));
         System.out.printf("Wrote %s\n", f.getCanonicalFile());
     }
-    
+
     private static void config(Trans trans, PropAccess propAccess, String[] args, Deque<String> cmds) throws Exception {
         TimeTaken tt = trans.start("Get Configuration", Env.REMOTE);
         try {
@@ -880,7 +880,7 @@ public class Agent {
             for (String tag : LOC_TAGS) {
                 loc.add(tag, getProperty(propAccess, trans, false, tag, "%s: ",tag));
             }
-            
+
             String keyfile = cred.getKeyPath();
             if(keyfile!=null) {
                 File fkeyfile = new File(keyfile);
@@ -901,13 +901,13 @@ public class Agent {
                     }
                 }
             }
-            
+
             // load all properties that are already setup.
             Map<String, String> aaf_urls = loadURLs(propAccess);
             for(Entry<String, String> es : aaf_urls.entrySet()) {
                 app.add(es.getKey(), es.getValue());
             }
-            
+
             app.add(Config.AAF_LOCATE_URL, Config.getAAFLocateUrl(propAccess));
             app.add(Config.AAF_ENV,propAccess, "DEV");
             String release = propAccess.getProperty(Config.AAF_DEPLOYED_VERSION);
@@ -923,7 +923,7 @@ public class Agent {
                     app.add(key, aaf_loc_prop.getValue().toString());
                 }
             }
-            
+
             app.add(Config.AAF_APPID, fqi);
 
             String cts = propAccess.getProperty(Config.CADI_TRUSTSTORE);
@@ -941,7 +941,7 @@ public class Agent {
                                 if (fcpf.exists()) {
                                     int lastSep = cts.lastIndexOf(File.pathSeparator);
                                     origTruststore = new File(fcpf.getParentFile(),lastSep>=0?cts.substring(lastSep):cts);
-                                    if (origTruststore.exists()) { 
+                                    if (origTruststore.exists()) {
                                         break;
                                     }
                                 }
@@ -950,7 +950,7 @@ public class Agent {
                                 throw new CadiException(cts + " does not exist");
                             }
                         }
-                        
+
                     }
                     if (!newTruststore.exists() && origTruststore.exists()) {
                         Files.copy(origTruststore.toPath(), newTruststore.toPath());
@@ -960,14 +960,14 @@ public class Agent {
                 System.out.println("New Truststore is " + newTruststore);
                 cred.add(Config.CADI_TRUSTSTORE, newTruststore.getCanonicalPath());
                 cred.add(Config.CADI_TRUSTSTORE_PASSWORD, "changeit" /* Java default */);
-                    
+
                 String cpf = propAccess.getProperty(Config.CADI_PROP_FILES);
                 if (cpf!=null){
-                    String[] propFiles = Split.splitTrim(File.pathSeparatorChar, cpf); 
+                    String[] propFiles = Split.splitTrim(File.pathSeparatorChar, cpf);
                     for (int pfi = propFiles.length-1;pfi>=0;--pfi) {
                         String f = propFiles[pfi];
                         System.out.format("Reading %s\n",f);
-                        FileInputStream fis = new FileInputStream(f); 
+                        FileInputStream fis = new FileInputStream(f);
                         try {
                             Properties props = new Properties();
                             props.load(fis);
@@ -1010,7 +1010,7 @@ public class Agent {
                     }
                 }
             }
-            
+
             PropHolder.writeAll();
         } finally {
             tt.done();
@@ -1062,12 +1062,12 @@ public class Agent {
 
     /**
      * Check returns Error Codes, so that Scripts can know what to do
-     * 
+     *
      *   0 - Check Complete, nothing to do
      *   1 - General Error
      *   2 - Error for specific Artifact - read check.msg
      *   10 - Certificate Updated - check.msg is email content
-     *   
+     *
      * @param trans
      * @param aafcon
      * @param cmds
@@ -1078,10 +1078,10 @@ public class Agent {
         int exitCode=1;
         String mechID = fqi(cmds);
         String machine = machine(cmds);
-        
+
         TimeTaken tt = trans.start("Check Certificate", Env.REMOTE);
         try {
-        
+
             Future<Artifacts> acf = aafcon.client(CM_VER)
                     .read("/cert/artifacts/"+mechID+'/'+machine, artifactsDF);
             if (acf.get(TIMEOUT)) {
@@ -1102,10 +1102,10 @@ public class Agent {
                             } finally {
                                 fis.close();
                             }
-                            
-                            String prop;                        
+
+                            String prop;
                             File f;
-    
+
                             if ((prop=trans.getProperty(Config.CADI_KEYFILE))==null ||
                                 !(f=new File(prop)).exists()) {
                                     trans.error().printf("Keyfile must exist to check Certificates for %s on %s",
@@ -1120,7 +1120,7 @@ public class Agent {
                                     Symm symm = ArtifactDir.getSymm(f);
 
                                     KeyStore ks = KeyStore.getInstance("JKS");
-                                    
+
                                     fis = new FileInputStream(ksf);
                                     try {
                                         ks.load(fis,symm.depass(ksps).toCharArray());
@@ -1140,21 +1140,21 @@ public class Agent {
                                         renew.setTime(cert.getNotAfter());
                                         renew.add(GregorianCalendar.DAY_OF_MONTH,-1*a.getRenewDays());
                                         if (renew.after(now)) {
-                                            msg = String.format("X509Certificate for %s on %s has been checked on %s. It expires on %s; it will not be renewed until %s.\n", 
+                                            msg = String.format("X509Certificate for %s on %s has been checked on %s. It expires on %s; it will not be renewed until %s.\n",
                                                     a.getMechid(), a.getMachine(),Chrono.dateOnlyStamp(now),cert.getNotAfter(),Chrono.dateOnlyStamp(renew));
                                             trans.info().log(msg);
                                             exitCode = 0; // OK
                                         } else {
-                                            trans.info().printf("X509Certificate for %s on %s expiration, %s, needs Renewal.\n", 
+                                            trans.info().printf("X509Certificate for %s on %s expiration, %s, needs Renewal.\n",
                                                     a.getMechid(), a.getMachine(),cert.getNotAfter());
                                             cmds.offerLast(mechID);
                                             cmds.offerLast(machine);
                                             if (placeCerts(trans,aafcon,cmds)) {
-                                                msg = String.format("X509Certificate for %s on %s has been renewed. Ensure services using are refreshed.\n", 
+                                                msg = String.format("X509Certificate for %s on %s has been renewed. Ensure services using are refreshed.\n",
                                                         a.getMechid(), a.getMachine());
                                                 exitCode = 10; // Refreshed
                                             } else {
-                                                msg = String.format("X509Certificate for %s on %s attempted renewal, but failed. Immediate Investigation is required!\n", 
+                                                msg = String.format("X509Certificate for %s on %s attempted renewal, but failed. Immediate Investigation is required!\n",
                                                         a.getMechid(), a.getMachine());
                                                 exitCode = 1; // Error Renewing
                                             }
@@ -1169,7 +1169,7 @@ public class Agent {
                                         }
                                     }
                                 }
-                                
+
                             }
                         }
                     }
@@ -1185,7 +1185,7 @@ public class Agent {
     }
 
 }
-            
-        
+
+
 
 
index 0971ae0..31a2410 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,19 +42,19 @@ public abstract class ArtifactDir implements PlaceArtifact {
 
     protected static final String C_R = "\n";
     protected File dir;
-    
+
     // This checks for multiple passes of Dir on the same objects.  Run clear after done.
     protected final static Map<String,Object> processed = new HashMap<>();
     private static final Map<String, Symm> symms = new HashMap<>();
-    
+
     /**
-     * Note:  Derived Classes should ALWAYS call "super.place(cert,arti)" first, and 
+     * Note:  Derived Classes should ALWAYS call "super.place(cert,arti)" first, and
      * then "placeProperties(arti)" just after they implement
      */
     @Override
     public final boolean place(Trans trans, CertInfo certInfo, Artifact arti, String machine) throws CadiException {
         validate(arti);
-        
+
         try {
             PropHolder cred = PropHolder.get(arti,"cred.props");
 
@@ -67,7 +67,7 @@ public abstract class ArtifactDir implements PlaceArtifact {
                         throw new CadiException("Could not create " + dir);
                     }
                 }
-                
+
                 // Obtain Issuers
                 boolean first = true;
                 StringBuilder issuers = new StringBuilder();
@@ -83,9 +83,9 @@ public abstract class ArtifactDir implements PlaceArtifact {
 
                 cred.addEnc("Challenge", certInfo.getChallenge());
             }
-                
+
             _place(trans, certInfo,arti);
-            
+
             processed.put("dir",dir);
 
         } catch (Exception e) {
@@ -106,7 +106,7 @@ public abstract class ArtifactDir implements PlaceArtifact {
     public static void write(File f, Chmod c, String ... data) throws IOException {
         System.out.println("Writing file " + f.getCanonicalPath());
         f.setWritable(true,true);
-        
+
         FileOutputStream fos = new FileOutputStream(f);
         PrintStream ps = new PrintStream(fos);
         try {
@@ -122,7 +122,7 @@ public abstract class ArtifactDir implements PlaceArtifact {
     public static void write(File f, Chmod c, byte[] bytes) throws IOException {
         System.out.println("Writing file " + f.getCanonicalPath());
         f.setWritable(true,true);
-        
+
         FileOutputStream fos = new FileOutputStream(f);
         try {
             fos.write(bytes);
@@ -131,11 +131,11 @@ public abstract class ArtifactDir implements PlaceArtifact {
             c.chmod(f);
         }
     }
-    
+
     public static void write(File f, Chmod c, KeyStore ks, char[] pass ) throws IOException, CadiException {
         System.out.println("Writing file " + f.getCanonicalPath());
         f.setWritable(true,true);
-        
+
         FileOutputStream fos = new FileOutputStream(f);
         try {
             ks.store(fos, pass);
@@ -156,7 +156,7 @@ public abstract class ArtifactDir implements PlaceArtifact {
 //            } else {
 //                System.out.println("Encryptor using " + f.getCanonicalPath());
             }
-            symm = Symm.obtain(f); 
+            symm = Symm.obtain(f);
             symms.put(f.getCanonicalPath(),symm);
         }
         return symm;
@@ -174,7 +174,7 @@ public abstract class ArtifactDir implements PlaceArtifact {
             }
             sb.append("File Artifacts require an AAF Namespace");
         }
-        
+
         if (sb.length()>0) {
             throw new CadiException(sb.toString());
         }
index 526673e..889acf1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,7 +24,7 @@ package org.onap.aaf.cadi.configure;
 public class CertException extends Exception {
 
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = 1373028409048516401L;
 
index 642b2d2..775e224 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -79,8 +79,8 @@ public class Factory {
     private static final KeyFactory keyFactory;
     private static final CertificateFactory certificateFactory;
     private static final SecureRandom random;
-    
-    
+
+
     private static final Symm base64 = Symm.base64.copy(64);
 
     static {
@@ -103,7 +103,7 @@ public class Factory {
                 e.printStackTrace(System.err);
             };
             keyFactory = tempKeyFactory;
-             
+
             CertificateFactory tempCertificateFactory;
             try {
                 tempCertificateFactory = CertificateFactory.getInstance("X.509");
@@ -113,7 +113,7 @@ public class Factory {
             }
             certificateFactory = tempCertificateFactory;
 
-         
+
     }
 
 
@@ -131,7 +131,7 @@ public class Factory {
                 tt.done();
             }
         }
-    }  
+    }
 
     private static final String LINE_END = "-----\n";
 
@@ -145,7 +145,7 @@ public class Factory {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         base64.encode(bais, baos);
         sb.append(new String(baos.toByteArray()));
-        
+
         if (sb.charAt(sb.length()-1)!='\n') {
             sb.append('\n');
         }
@@ -154,7 +154,7 @@ public class Factory {
         sb.append(LINE_END);
         return sb.toString();
     }
-    
+
     public static PrivateKey toPrivateKey(Trans trans, String pk) throws IOException, CertException {
         byte[] bytes = decode(new StringReader(pk), null);
         return toPrivateKey(trans, bytes);
@@ -202,7 +202,7 @@ public class Factory {
             tt.done();
         }
     }
-    
+
     public static String toString(Trans trans, PublicKey pk) throws IOException {
         trans.debug().log("Public Key to String");
         return textBuilder("PUBLIC KEY",pk.getEncoded());
@@ -211,7 +211,7 @@ public class Factory {
     public static Collection<? extends Certificate> toX509Certificate(String x509) throws CertificateException {
         return toX509Certificate(x509.getBytes());
     }
-    
+
     public static Collection<? extends Certificate> toX509Certificate(List<String> x509s) throws CertificateException {
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
         try {
@@ -265,7 +265,7 @@ public class Factory {
     }
 
     public static Cipher pkCipher() throws NoSuchAlgorithmException, NoSuchPaddingException {
-        return Cipher.getInstance(KEY_ALGO); 
+        return Cipher.getInstance(KEY_ALGO);
     }
 
     public static Cipher pkCipher(Key key, boolean encrypt) throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException {
@@ -277,7 +277,7 @@ public class Factory {
     public static byte[] strip(Reader rdr) throws IOException {
         return strip(rdr,null);
     }
-    
+
     public static byte[] strip(Reader rdr, Holder<String> hs) throws IOException {
         BufferedReader br = new BufferedReader(rdr);
         ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -317,7 +317,7 @@ public class Factory {
             }
             created = null;
         }
-        
+
         public StripperInputStream(File file) throws FileNotFoundException {
             this(new FileReader(file));
             created = br;
@@ -365,7 +365,7 @@ public class Factory {
         private byte duo[];
         private int idx;
 
-        
+
         public Base64InputStream(File file) throws FileNotFoundException {
             this(new FileInputStream(file));
             created = is;
@@ -390,7 +390,7 @@ public class Factory {
                 }
                 idx=0;
             }
-            
+
             return duo[idx++];
         }
 
@@ -411,7 +411,7 @@ public class Factory {
         Symm.base64.decode(bais, baos);
         return baos.toByteArray();
     }
-    
+
     public static byte[] decode(File f, Holder<String> hs) throws IOException {
         FileReader fr = new FileReader(f);
         try {
@@ -464,12 +464,12 @@ public class Factory {
             return sig.verify(signature);
         } finally {
             tt.done();
-        }    
+        }
     }
 
     /**
      * Get the Security Provider, or, if not exists yet, attempt to load
-     * 
+     *
      * @param providerType
      * @param params
      * @return
@@ -480,7 +480,7 @@ public class Factory {
         if (p!=null) {
             switch(providerType) {
                 case "PKCS12":
-                    
+
                     break;
                 case "PKCS11": // PKCS11 only known to be supported by Sun
                     try {
index 2d7d312..febe01e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 93c5a12..d3a3e39 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,11 +38,11 @@ public class PlaceArtifactInFiles extends ArtifactDir {
             File f = new File(dir,arti.getNs()+".crt");
             // In Version 1.0, App Cert is first
             write(f,Chmod.to644,certInfo.getCerts().get(0),C_R);
-            
+
             // Setup Private Key
             f = new File(dir,arti.getNs()+".key");
             write(f,Chmod.to400,certInfo.getPrivatekey(),C_R);
-            
+
         } catch (Exception e) {
             throw new CadiException(e);
         }
index 18d74fb..31ca327 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -57,12 +57,12 @@ public class PlaceArtifactInKeystore extends ArtifactDir {
             if (fks.exists()) {
                 File backup = File.createTempFile(fks.getName()+'.', ".backup",dir);
                 fks.renameTo(backup);
-            }    
+            }
 
             // Get the Cert(s)... Might include Trust store
             Collection<? extends Certificate> certColl = Factory.toX509Certificate(certInfo.getCerts());
             // find where the trusts end in 1.0 API
-        
+
             X509Certificate x509;
             List<X509Certificate> chainList = new ArrayList<>();
             Set<X509Certificate> caSet = new HashSet<>();
@@ -73,7 +73,7 @@ public class PlaceArtifactInKeystore extends ArtifactDir {
                 if (x509.getSubjectDN().equals(x509.getIssuerDN())) {
                     caSet.add(x509);
                 } else {
-                    // Expect Certs in Trust Chain Order. 
+                    // Expect Certs in Trust Chain Order.
                     if(curr==null) {
                         chainList.add(x509);
                         curr=x509;
@@ -103,12 +103,12 @@ public class PlaceArtifactInKeystore extends ArtifactDir {
             props.add(Config.CADI_KEYSTORE_PASSWORD+'_'+ext,encP);
             char[] keystorePassArray = keystorePass.toCharArray();
             jks.load(null,keystorePassArray); // load in
-            
+
             // Add Private Key/Cert Entry for App
             // Note: Java SSL security classes, while having a separate key from keystore,
-            // is documented to not actually work. 
+            // is documented to not actually work.
             // java.security.UnrecoverableKeyException: Cannot recover key
-            // You can create a custom Key Manager to make it work, but Practicality  
+            // You can create a custom Key Manager to make it work, but Practicality
             // dictates that you live with the default, meaning, they are the same
             String keyPass = keystorePass; //Symm.randomGen(CmAgent.PASS_SIZE);
             PrivateKey pk = Factory.toPrivateKey(trans, certInfo.getPrivatekey());
@@ -118,38 +118,38 @@ public class PlaceArtifactInKeystore extends ArtifactDir {
 //            if (kst.equals("pkcs12")) {
 //                // Friendly Name
 //                attribs.add(new PKCS12Attribute("1.2.840.113549.1.9.20", arti.getNs()));
-//            } 
-//            
-            KeyStore.ProtectionParameter protParam = 
+//            }
+//
+            KeyStore.ProtectionParameter protParam =
                     new KeyStore.PasswordProtection(keyPass.toCharArray());
-            
+
             Certificate[] trustChain = new Certificate[chainList.size()];
             chainList.toArray(trustChain);
-            KeyStore.PrivateKeyEntry pkEntry = 
+            KeyStore.PrivateKeyEntry pkEntry =
                 new KeyStore.PrivateKeyEntry(pk, trustChain);
-            jks.setEntry(arti.getMechid(), 
+            jks.setEntry(arti.getMechid(),
                     pkEntry, protParam);
 
             // Write out
             write(fks,Chmod.to644,jks,keystorePassArray);
-            
+
             // Change out to TrustStore
             // NOTE: PKCS12 does NOT support Trusted Entries.  Put in JKS Always
             fks = new File(dir,arti.getNs()+".trust.jks");
             if (fks.exists()) {
                 File backup = File.createTempFile(fks.getName()+'.', ".backup",dir);
                 fks.renameTo(backup);
-            }    
+            }
 
             jks = KeyStore.getInstance(Agent.JKS);
-            
+
             // Set Truststore Password
             props.add(Config.CADI_TRUSTSTORE,fks.getAbsolutePath());
             String trustStorePass = Symm.randomGen(Agent.PASS_SIZE);
             props.addEnc(Config.CADI_TRUSTSTORE_PASSWORD,trustStorePass);
             char[] truststorePassArray = trustStorePass.toCharArray();
             jks.load(null,truststorePassArray); // load in
-            
+
             // Add Trusted Certificates, but PKCS12 doesn't support
             Certificate[] trustCAs = new Certificate[caSet.size()];
             caSet.toArray(trustCAs);
index fcc1f62..2dc3882 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 05ffdbf..48f0e62 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,7 +47,7 @@ public class PlaceArtifactScripts extends ArtifactDir {
             }  else {
                 email=arti.getOsUser() + '\n';
             }
-            
+
             StringBuilder classpath = new StringBuilder();
             boolean first = true;
             for (String pth : Split.split(File.pathSeparatorChar, System.getProperty("java.class.path"))) {
@@ -59,13 +59,13 @@ public class PlaceArtifactScripts extends ArtifactDir {
                 File f = new File(pth);
                 classpath.append(f.getCanonicalPath().replaceAll("[0-9]+\\.[0-9]+\\.[0-9]+",Defaults.AAF_VERSION+".*"));
             }
-            
+
             write(f1,Chmod.to644,
                     "#!/bin/bash " + f1.getCanonicalPath()+'\n',
                     "# Certificate Manager Check Script\n",
                     "# Check on Certificate, and renew if needed.\n",
                     "# Generated by Certificate Manager " + Chrono.timeStamp()+'\n',
-                    "#   by Deployer " + trans.getProperty(Config.AAF_APPID,"") + '\n', 
+                    "#   by Deployer " + trans.getProperty(Config.AAF_APPID,"") + '\n',
                     "#\n",
                     "DIR="+arti.getDir()+'\n',
                     "APP_ID=" + arti.getMechid() + '\n',
@@ -80,7 +80,7 @@ public class PlaceArtifactScripts extends ArtifactDir {
                     "fi\n",
                     checkScript
                     );
-            
+
             // Setup check.sh script
             File f2 = new File(dir,arti.getNs()+".crontab.sh");
             write(f2,Chmod.to644,
@@ -100,9 +100,9 @@ public class PlaceArtifactScripts extends ArtifactDir {
         }
         return true;
     }
-    
+
     /**
-     * Note: java.home gets Absolute Path of Java, where we probably want soft links from 
+     * Note: java.home gets Absolute Path of Java, where we probably want soft links from
      * JAVA_HOME
      * @return
      */
@@ -110,7 +110,7 @@ public class PlaceArtifactScripts extends ArtifactDir {
         String rc = System.getenv("JAVA_HOME");
         return rc==null?System.getProperty("java.home"):rc;
     }
-    private final static String checkScript = 
+    private final static String checkScript =
             "function mailit {\n" +
             "  if [ -e /bin/mail ]; then\n" +
             "     MAILER=/bin/mail\n" +
@@ -150,8 +150,8 @@ public class PlaceArtifactScripts extends ArtifactDir {
             "    ;;\n" +
             " esac\n\n" +
             " # Note: make sure to cover this sripts' exit Code\n";
-    
-    private final static String cronScript = 
+
+    private final static String cronScript =
             "crontab -l | sed -n \"/#### BEGIN $CF/,/END $CF ####/!p\" > $TFILE\n" +
             "# Note: Randomize Minutes (0-60) and hours (1-4)\n" +
             "echo \"#### BEGIN $CF ####\" >> $TFILE\n" +
index 3140df6..a0bd6e8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -68,10 +68,10 @@ public class PropHolder {
         if(ph == null) {
             ph = new PropHolder(dir,file,new File(dir,arti.getNs()+".keyfile"));
             propHolders.put(file.getAbsolutePath(), ph);
-        } 
+        }
         return ph;
     }
-    
+
     private PropHolder(File dir, File file, File keyfile) throws IOException {
         this.dir = dir;
         this.file = file;
@@ -79,11 +79,11 @@ public class PropHolder {
         symm = null;
         props = new TreeMap<>();
     }
-    
+
     public String getPath() {
         return file.getAbsolutePath();
     }
-    
+
     public File getDir() {
         return dir;
     }
@@ -125,7 +125,7 @@ public class PropHolder {
         }
         addEnc(tag,pwd);
     }
-    
+
     public void write() throws IOException {
         if (props.size()==0) {
             return;
@@ -138,7 +138,7 @@ public class PropHolder {
         } else {
             System.out.println("Creating new " + file.getCanonicalPath());
         }
-        
+
         // Append if not first
         PrintWriter pw = new PrintWriter(new FileWriter(file));
         try {
@@ -157,7 +157,7 @@ public class PropHolder {
                 pw.print('#');
             }
             pw.println();
-            
+
              for (Map.Entry<String,String> me : props.entrySet()) {
                 String key = me.getKey();
                     pw.print(key);
@@ -169,13 +169,13 @@ public class PropHolder {
         }
         Chmod.to644.chmod(file);
     }
-    
+
     public static void writeAll() throws IOException {
         for(PropHolder ph : propHolders.values()) {
             ph.write();
         }
     }
-    
+
     @Override
     public String toString() {
         return file.getAbsolutePath() + ": " + props;
index f3ff389..099ea28 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,7 +29,7 @@ import org.onap.aaf.cadi.Hash;
 
 public class AAFToken {
     private static final int CAPACITY = (Long.SIZE*2+Byte.SIZE*3)/8;
-    private static final SecureRandom sr = new SecureRandom(); 
+    private static final SecureRandom sr = new SecureRandom();
 
     public static final String toToken(UUID uuid) {
         long lsb = uuid.getLeastSignificantBits();
@@ -67,7 +67,7 @@ public class AAFToken {
         long lsb = bb.getLong();
         byte b3 = (byte)(0x3F&bb.get());
         int sum=35;
-        
+
         for (int i=0;i<Long.SIZE;i+=8) {
             sum+=((lsb>>i) & 0xFF);
         }
@@ -78,9 +78,9 @@ public class AAFToken {
         if (b1!=((byte)sum) ||
            b2!=((byte)(sum>>8)) ||
            b3!=((byte)((sum>>16)))) {
-            return null; // not a CADI Token            
+            return null; // not a CADI Token
         }
         return new UUID(msb, lsb);
     }
-    
+
 }
index 29d0933..7dfb44d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,7 +41,7 @@ public abstract class AbsOTafLur {
     protected final PropAccess access;
     protected final String client_id;
     protected static Pool<TokenClient> tokenClientPool;
-    
+
     protected AbsOTafLur(final PropAccess access, final String token_url, final String introspect_url) throws CadiException {
         this.access = access;
         String ci;
@@ -68,18 +68,18 @@ public abstract class AbsOTafLur {
         private TokenClientFactory tcf;
         private final int timeout;
         private final String url,enc_secret;
-        
-        public TCCreator(PropAccess access) throws CadiException { 
+
+        public TCCreator(PropAccess access) throws CadiException {
             try {
                 tcf = TokenClientFactory.instance(access);
             } catch (APIException | GeneralSecurityException | IOException e1) {
                 throw new CadiException(e1);
             }
-            
+
             if ((url = access.getProperty(Config.AAF_OAUTH2_TOKEN_URL,null))==null) {
                 throw new CadiException(Config.AAF_OAUTH2_TOKEN_URL + REQUIRED_FOR_OAUTH2);
             }
-            
+
             try {
                 timeout = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF));
             } catch (NumberFormatException e) {
@@ -89,7 +89,7 @@ public abstract class AbsOTafLur {
                 throw new CadiException(Config.AAF_APPPASS + REQUIRED_FOR_OAUTH2);
             }
         }
-        
+
         @Override
         public TokenClient create() throws APIException {
             try {
@@ -121,14 +121,14 @@ public abstract class AbsOTafLur {
     public void destroy() {
         tkMgr.close();
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.cadi.Lur#clear(java.security.Principal, java.lang.StringBuilder)
      */
     public void clear(Principal p, StringBuilder report) {
         tkMgr.clear(p, report);
     }
-    
 
-    
+
+
 }
index 0e57dee..10a975b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,11 +40,11 @@ public class HRenewingTokenSS extends HAuthorizationHeader {
     private final TokenClient tc;
     private final String[] scopes;
     private final String tokenURL;
-    
+
     public HRenewingTokenSS(final PropAccess access, final String tokenURL, final String ... nss) throws CadiException, IOException, GeneralSecurityException {
         this(access,SecurityInfoC.instance(access, HttpURLConnection.class),tokenURL,nss);
     }
-    
+
     public HRenewingTokenSS(final PropAccess access, final SecurityInfoC<HttpURLConnection> si, final String tokenURL, final String ... nss) throws CadiException, IOException, GeneralSecurityException {
         super(si,null,null/*Note: HeadValue overloaded */);
         this.tokenURL = tokenURL;
@@ -62,7 +62,7 @@ public class HRenewingTokenSS extends HAuthorizationHeader {
                     }
                 }
                 if (hasDefault) {
-                    scopes=nss;        
+                    scopes=nss;
                 } else {
                     String[] nssPlus = new String[nss.length+1];
                     nssPlus[0]=defaultNS;
index 27e9214..e22eed0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,7 +48,7 @@ public class OAuth2HttpTaf implements HttpTaf {
         this.tmgr = tmgr;
         this.access = access;
     }
-    
+
     @Override
     public TafResp validate(LifeForm reading, HttpServletRequest req, HttpServletResponse resp) {
         String authz = req.getHeader("Authorization");
index 4fa5870..cc0d26b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,23 +35,23 @@ public class OAuth2HttpTafResp extends AbsTafResp implements TafResp {
     private HttpServletResponse httpResp;
     private RESP status;
     private final boolean wasFailed;
-    
+
     public OAuth2HttpTafResp(Access access, OAuth2Principal principal, String desc, RESP status, HttpServletResponse resp, boolean wasFailed) {
         super(access,tafName, principal, desc);
         httpResp = resp;
-        this.status = status; 
+        this.status = status;
         this.wasFailed = wasFailed;
     }
 
     public OAuth2HttpTafResp(Access access, TrustPrincipal principal, String desc, RESP status,HttpServletResponse resp) {
         super(access,tafName, principal, desc);
         httpResp = resp;
-        this.status = status; 
+        this.status = status;
         wasFailed = true; // if Trust Principal added, must be good
     }
 
     public RESP authenticate() throws IOException {
-        httpResp.setStatus(401); // Unauthorized    
+        httpResp.setStatus(401); // Unauthorized
         return RESP.HTTP_REDIRECT_INVOKED;
     }
 
index 1a1adcc..2c5c93d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ public class OAuth2Lur implements Lur {
     public OAuth2Lur(TokenMgr tm) {
         this.tm = tm;
     }
-    
+
     @Override
     public Permission createPerm(String p) {
         String[] params = Split.split('|', p);
@@ -54,12 +54,12 @@ public class OAuth2Lur implements Lur {
     @Override
     public boolean fish(Principal bait, Permission ... pond) {
         boolean rv = false;
-        
+
         if (bait instanceof OAuth2Principal) {
-            OAuth2Principal oap = (OAuth2Principal)bait; 
+            OAuth2Principal oap = (OAuth2Principal)bait;
             for (Permission p : pond ) {
                 AAFPermission apond = (AAFPermission)p;
-        
+
                 TokenPerm tp = oap.tokenPerm();
                 if (tp==null) {
                 } else {
index 86475d5..6d07219 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,17 +26,17 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
 public class OAuth2Principal extends TaggedPrincipal {
     private TokenPerm tp;
 //    private byte[] hash; // hashed cred for disk validation
-    
+
     public OAuth2Principal(TokenPerm tp, byte[] hash) {
         this.tp = tp;
 //        this.hash = hash;
     }
-    
+
     @Override
     public String getName() {
         return tp.getUsername();
     }
-    
+
     public TokenPerm tokenPerm() {
         return tp;
     }
@@ -50,5 +50,5 @@ public class OAuth2Principal extends TaggedPrincipal {
     public String personalName() {
         return tp.getUsername();
     }
-    
+
 }
index 38accc7..81fee11 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,16 +33,16 @@ import aafoauth.v2_0.Token;
  * TimedToken
  *   Tokens come from the Token Server with an "Expired In" setting.  This class will take that, and
  *   create a date from time of Creation, which works with local code.
- *   
+ *
  * We create a Derived class, so that it can be used as is the originating Token type.
- * 
- * "expired" is local computer time 
+ *
+ * "expired" is local computer time
  * @author Jonathan
  *
  */
 // Package on purpose
 public class TimedToken extends Token implements Persistable<Token> {
-    private Persisting<Token> cacheable; // no double inheritance... 
+    private Persisting<Token> cacheable; // no double inheritance...
 
 //    public TimedToken(Token t, byte[] hash) {
 //        this(t,(System.currentTimeMillis()/1000)+t.getExpiresIn(),hash,null);
@@ -51,7 +51,7 @@ public class TimedToken extends Token implements Persistable<Token> {
     public TimedToken(Persist<Token,?> p, Token t, byte[] hash, Path path){
         this(p,t,t.getExpiresIn()+(System.currentTimeMillis()/1000),hash, path);
     }
-    
+
     public TimedToken(Persist<Token,?> p, Token t, long expires_secsFrom1970, byte[] hash, Path path) {
         cacheable = new Persisting<Token>(p, t,expires_secsFrom1970, hash, path);
         accessToken=t.getAccessToken();
index 58ecaa8..0ebd8ac 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -85,18 +85,18 @@ public class TokenClient {
                 introspectDF = tkCon.env().newDataFactory(Introspect.class);
             }
         }
+
     }
 
     public void client_id(String client_id) {
         this.client_id = client_id;
         default_scope = FQI.reverseDomain(client_id);
     }
-    
+
     public String client_id() {
         return client_id;
     }
-    
+
     /**
      * This scope based on client_id... the App configured for call
      * @return
@@ -121,9 +121,9 @@ public class TokenClient {
     /**
      * Note: OAuth2 provides for normal Authentication parameters when getting tokens.  Basic Auth is one such valid
      * way to get Credentials.  However, support is up to the OAuth2 Implementation
-     * 
+     *
      * This method is for setting an App's creds (client) to another App.
-     * 
+     *
      * @param client_id
      * @param client_secret
      * @throws IOException
@@ -170,13 +170,13 @@ public class TokenClient {
                         return con.x509Alias(client_id);// no password, assume Cert
                     } catch (APIException e) {
                         throw new CadiException(e);
-                    } 
-                }                
+                    }
+                }
             };
             authn_method = AUTHN_METHOD.client_credentials;
         }
     }
-    
+
     public void username(String username) {
         this.username = username;
     }
@@ -184,9 +184,9 @@ public class TokenClient {
     /**
      * Note: OAuth2 provides for normal Authentication parameters when getting tokens.  Basic Auth is one such valid
      * way to get Credentials.  However, support is up to the OAuth2 Implementation
-     * 
+     *
      * This method is for setting the End-User's Creds
-     * 
+     *
      * @param client_id
      * @param client_secret
      * @throws IOException
@@ -222,7 +222,7 @@ public class TokenClient {
             }
         }
     }
-    
+
     public void clearEndUser() {
         username = null;
         enc_password = null;
@@ -254,9 +254,9 @@ public class TokenClient {
     }
     /**
      * Get AuthToken
-     * @throws APIException 
-     * @throws CadiException 
-     * @throws LocatorException 
+     * @throws APIException
+     * @throws CadiException
+     * @throws LocatorException
      */
     public Result<TimedToken> getToken(final char kind, final String ... scopes) throws LocatorException, CadiException, APIException {
         final String scope = addScope(scopes);
@@ -270,14 +270,14 @@ public class TokenClient {
         if (ss==null) {
             throw new APIException("client_creds(...) must be set before obtaining Access Tokens");
         }
-        
+
         Result<TimedToken> rtt = factory.get(key,hash,new Loader<TimedToken>() {
             @Override
             public Result<TimedToken> load(final String key) throws APIException, CadiException, LocatorException {
                 final List<String> params = new ArrayList<>();
                 params.add(scope);
                 addSecurity(params,authn_method);
-            
+
                 final String paramsa[] = new String[params.size()];
                 params.toArray(paramsa);
                 Result<Token> rt = tkCon.best(new Retryable<Result<Token>>() {
@@ -292,7 +292,7 @@ public class TokenClient {
                         }
                     }
                 });
-                
+
                 if (rt.isOK()) {
                     try {
                         return Result.ok(rt.code,factory.putTimedToken(key,rt.value, hash));
@@ -326,7 +326,7 @@ public class TokenClient {
         }
         return Result.err(404,"Not Found");
     }
-    
+
     public Result<TimedToken> refreshToken(Token token) throws APIException, LocatorException, CadiException {
         if (ss==null) {
             throw new APIException("client_creds(...) must be set before obtaining Access Tokens");
@@ -336,7 +336,7 @@ public class TokenClient {
         addSecurity(params,AUTHN_METHOD.refresh_token);
         final String scope="scope="+token.getScope().replace(' ', '+');
         params.add(scope);
-    
+
         final String paramsa[] = new String[params.size()];
         params.toArray(paramsa);
         Result<Token> rt = tkCon.best(new Retryable<Result<Token>>() {
@@ -389,7 +389,7 @@ public class TokenClient {
             }
         );
     }
-    
+
     private String addScope(String[] scopes) {
         String rv = null;
         StringBuilder scope=null;
@@ -428,14 +428,14 @@ public class TokenClient {
                 // Nothing to do
                 break;
         }
-        
-        // Set Credentials appropriate 
+
+        // Set Credentials appropriate
         switch(authn_method) {
             case client_credentials:
                 if (client_id!=null) {
                     params.add("client_id="+client_id);
                 }
-        
+
                 if (enc_client_secret!=null) {
                     try {
                         params.add("client_secret="+URLEncoder.encode(new String(factory.symm.decode(enc_client_secret)),UTF_8));
@@ -443,7 +443,7 @@ public class TokenClient {
                         throw new APIException("Error Decrypting Password",e);
                     }
                 }
-                
+
                 if (username!=null) {
                     params.add("username="+username);
                 }
@@ -453,7 +453,7 @@ public class TokenClient {
                 if (client_id!=null) {
                     params.add("client_id="+client_id);
                 }
-        
+
                 if (enc_client_secret!=null) {
                     try {
                         params.add("client_secret="+URLEncoder.encode(new String(factory.symm.decode(enc_client_secret)),UTF_8));
@@ -467,7 +467,7 @@ public class TokenClient {
                 if (client_id!=null) {
                     params.add("client_id="+client_id);
                 }
-        
+
                 if (enc_client_secret!=null) {
                     try {
                         params.add("client_secret="+ URLEncoder.encode(new String(factory.symm.decode(enc_client_secret)),UTF_8));
@@ -478,7 +478,7 @@ public class TokenClient {
                 if (username!=null) {
                     params.add("username="+username);
                 }
-        
+
                 if (enc_password!=null) {
                     try {
                         params.add("password="+ URLEncoder.encode(new String(factory.symm.decode(enc_password)),UTF_8));
@@ -486,7 +486,7 @@ public class TokenClient {
                         throw new APIException("Error Decrypting Password",e);
                     }
                 }
-    
+
                 break;
             default:
                 // Nothing to do
index 8c47b6c..6d2fd7f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -65,18 +65,18 @@ public class TokenClientFactory extends Persist<Token,TimedToken> {
 
     private TokenClientFactory(Access pa) throws APIException, GeneralSecurityException, IOException, CadiException {
         super(pa, new RosettaEnv(pa.getProperties()),Token.class,"outgoing");
-        
+
         Map<String, String> aaf_urls = Agent.loadURLs(pa);
         alts = new TreeSet<>();
-        
+
         if (access.getProperty(Config.AAF_OAUTH2_TOKEN_URL,null)==null) {
             access.getProperties().put(Config.AAF_OAUTH2_TOKEN_URL, aaf_urls.get(Config.AAF_OAUTH2_TOKEN_URL)); // Default to AAF
         }
-        
+
         if (access.getProperty(Config.AAF_OAUTH2_INTROSPECT_URL,null)==null) {
             access.getProperties().put(Config.AAF_OAUTH2_INTROSPECT_URL, aaf_urls.get(Config.AAF_OAUTH2_INTROSPECT_URL)); // Default to AAF);
         }
-        
+
         for(String tag : new String[] {Config.AAF_ALT_OAUTH2_TOKEN_URL, Config.AAF_ALT_OAUTH2_INTROSPECT_URL}) {
             String value = access.getProperty(tag, null);
             if(value!=null) {
@@ -84,21 +84,21 @@ public class TokenClientFactory extends Persist<Token,TimedToken> {
                 alts.add(value);
             }
         }
-        
+
         symm = Symm.encrypt.obtain();
         hsi = SecurityInfoC.instance(access, HttpURLConnection.class);
     }
-    
+
     public synchronized static final TokenClientFactory instance(Access access) throws APIException, GeneralSecurityException, IOException, CadiException {
         if (instance==null) {
             instance = new TokenClientFactory(access);
         }
         return instance;
     }
-    
+
     /**
      * Pickup Timeout from Properties
-     * 
+     *
      * @param tagOrURL
      * @return
      * @throws CadiException
@@ -108,7 +108,7 @@ public class TokenClientFactory extends Persist<Token,TimedToken> {
     public<INTR> TokenClient newClient(final String tagOrURL) throws CadiException, LocatorException, APIException {
         return newClient(tagOrURL,Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF)));
     }
-    
+
     public<INTR> TokenClient newClient(final String tagOrURL, final int timeout) throws CadiException, LocatorException, APIException {
         AAFConHttp ach;
         if (tagOrURL==null) {
@@ -134,7 +134,7 @@ public class TokenClientFactory extends Persist<Token,TimedToken> {
         tci.client_creds(access);
         return tci;
     }
-    
+
     public TzClient newTzClient(final String locatorURL) throws CadiException, LocatorException {
         try {
             return new TzHClient(access,hsi,bestLocator(locatorURL));
@@ -180,7 +180,7 @@ public class TokenClientFactory extends Persist<Token,TimedToken> {
         put(key,tt);
         return tt;
     }
-    
+
     private static final Pattern locatePattern = Pattern.compile("https://.*/locate/.*");
     public Locator<URI> bestLocator(final String locatorURL ) throws LocatorException, URISyntaxException {
         if (locatorURL==null) {
index 5a4e7f0..89d5c1a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -51,7 +51,7 @@ public class TokenMgr extends Persist<Introspect, TokenPerm> {
     public static RosettaDF<Introspect> introspectDF;
 
     private final TokenPermLoader tpLoader;
-    
+
     private TokenMgr(PropAccess access, String tokenURL, String introspectURL) throws APIException, CadiException {
         super(access,new RosettaEnv(access.getProperties()),Introspect.class,"introspect");
         synchronized(access) {
@@ -99,7 +99,7 @@ public class TokenMgr extends Persist<Introspect, TokenPerm> {
         }
         return tm;
     }
-    
+
     public Result<OAuth2Principal> toPrincipal(final String accessToken, final byte[] hash) throws APIException, CadiException, LocatorException {
         Result<TokenPerm> tp = get(accessToken, hash, new Loader<TokenPerm>() {
             @Override
@@ -117,14 +117,14 @@ public class TokenMgr extends Persist<Introspect, TokenPerm> {
             return Result.err(tp);
         }
     }
-    
+
     public Result<TokenPerm> get(final String accessToken, final byte[] hash) throws APIException, CadiException, LocatorException {
         return get(accessToken,hash,new Loader<TokenPerm>() {
             @Override
             public Result<TokenPerm> load(String key) throws APIException, CadiException, LocatorException {
                 return tpLoader.load(key,hash);
             }
-            
+
         });
 //        return tpLoader.load(accessToken,hash);
     }
@@ -132,7 +132,7 @@ public class TokenMgr extends Persist<Introspect, TokenPerm> {
     public interface TokenPermLoader{
         public Result<TokenPerm> load(final String accessToken, final byte[] cred) throws APIException, CadiException, LocatorException;
     }
-    
+
     private class RemoteTokenPermLoader implements TokenPermLoader {
         private TokenClientFactory tcf;
         private TokenClient tokenCL, introCL;
@@ -141,12 +141,12 @@ public class TokenMgr extends Persist<Introspect, TokenPerm> {
             try {
                 tcf = TokenClientFactory.instance(access);
                 int timeout = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF));
-                tokenCL = tcf.newClient(tokenURL, 
+                tokenCL = tcf.newClient(tokenURL,
                                         timeout);
                 if (introspectURL.equals(tokenURL)) {
                     introCL = tokenCL;
                 } else {
-                    introCL = tcf.newClient(introspectURL, 
+                    introCL = tcf.newClient(introspectURL,
                             timeout);
                 }
 
@@ -154,7 +154,7 @@ public class TokenMgr extends Persist<Introspect, TokenPerm> {
                 throw new CadiException(e);
             }
         }
-         
+
         public Result<TokenPerm> load(final String accessToken, final byte[] cred) throws APIException, CadiException, LocatorException {
             long start = System.currentTimeMillis();
             try {
index 6efd9ce..23153c2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -62,23 +62,23 @@ public class TokenPerm extends Persisting<Introspect>{
         }
         scopes = ti.getScope();
     }
-    
+
     public List<AAFPermission> perms() {
         return perms;
     }
-    
+
     public String getClientId() {
         return introspect.getClientId();
     }
-    
+
     public String getUsername() {
         return introspect.getUsername();
     }
-    
+
     public String getToken() {
         return introspect.getAccessToken();
     }
-    
+
     public synchronized String getScopes() {
         return scopes;
     }
@@ -86,7 +86,7 @@ public class TokenPerm extends Persisting<Introspect>{
     public Introspect getIntrospect() {
         return introspect;
     }
-    
+
     // Direct Parse Perms into List
     public static class LoadPermissions {
         public List<AAFPermission> perms;
@@ -138,7 +138,7 @@ public class TokenPerm extends Persisting<Introspect>{
             }
         }
     }
-    
+
     // Gathering object for parsing objects, then creating AAF Permission
     private static class PermInfo {
         public String ns,type,instance,action;
index 1ebbe87..2afc4b5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,7 +30,7 @@ import org.onap.aaf.misc.env.APIException;
 
 /**
  * TimedToken Client
- * 
+ *
  * @author Jonathan
  *
  */
index c07332d..241abf4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,7 +40,7 @@ import org.onap.aaf.misc.env.APIException;
 
 /**
  * Tokenized HClient
- * 
+ *
  * @author Jonathan
  *
  */
@@ -62,7 +62,7 @@ public class TzHClient extends TzClient {
         si = hsi;
         hman = new HMangr(access, loc);
     }
-    
+
     public void setToken(final String client_id, TimedToken token) throws IOException {
         this.token = token;
         tokenSS = new HTokenSS(si, client_id, token.getAccessToken());
index 4ae8ba5..0f3b458 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,31 +55,31 @@ import org.onap.aaf.misc.env.util.Pool.Pooled;
 
 /**
  * BasicHttpTaf
- * 
- * This TAF implements the "Basic Auth" protocol.  
- * 
- * WARNING! It is true for any implementation of "Basic Auth" that the password is passed unencrypted.  
- * This is because the expectation, when designed years ago, was that it would only be used in 
+ *
+ * This TAF implements the "Basic Auth" protocol.
+ *
+ * WARNING! It is true for any implementation of "Basic Auth" that the password is passed unencrypted.
+ * This is because the expectation, when designed years ago, was that it would only be used in
  * conjunction with SSL (https).  It is common, however, for users to ignore this on the assumption that
  * their internal network is secure, or just ignorance.  Therefore, a WARNING will be printed
  * when the HTTP Channel is not encrypted (unless explicitly turned off).
- * 
+ *
  * @author Jonathan
  *
  */
 public class OBasicHttpTaf extends AbsOTafLur implements HttpTaf {
     private final String realm;
     private final CredVal rbac;
-    
-    
+
+
     public OBasicHttpTaf(final PropAccess access, final CredVal rbac, final String realm, final String token_url, final String introspect_url) throws CadiException {
         super(access, token_url,introspect_url);
         this.rbac = rbac;
         this.realm = realm;
     }
-    
+
     /**
-     * Note: BasicHttp works for either Carbon Based (Humans) or Silicon Based (machine) Lifeforms.  
+     * Note: BasicHttp works for either Carbon Based (Humans) or Silicon Based (machine) Lifeforms.
      * @see Taf
      */
     public TafResp validate(Taf.LifeForm reading, HttpServletRequest req, HttpServletResponse resp) {
@@ -109,7 +109,7 @@ public class OBasicHttpTaf extends AbsOTafLur implements HttpTaf {
                         return new BasicHttpTafResp(access,user,"Malformed BasicAuth entry",RESP.FAIL,resp,realm,false);
                     }
                     if (!rbac.validate(user,Type.PASSWORD,password.getBytes(),req)) {
-                        return new BasicHttpTafResp(access,user,buildMsg(null,req,"user/pass combo invalid for ",user,"from",req.getRemoteAddr()), 
+                        return new BasicHttpTafResp(access,user,buildMsg(null,req,"user/pass combo invalid for ",user,"from",req.getRemoteAddr()),
                                 RESP.TRY_AUTHENTICATING,resp,realm,true);
                     }
                 } catch (IOException e) {
@@ -150,13 +150,13 @@ public class OBasicHttpTaf extends AbsOTafLur implements HttpTaf {
                 }
             } finally {
                 pclient.done();
-            }                
+            }
         } catch (APIException | CadiException | LocatorException | NoSuchAlgorithmException e) {
             access.log(e, ERROR_GETTING_TOKEN_CLIENT);
             return new BasicHttpTafResp(access,user,ERROR_GETTING_TOKEN_CLIENT,RESP.TRY_ANOTHER_TAF,resp,realm,false);
         }
     }
-    
+
     protected String buildMsg(Principal pr, HttpServletRequest req, Object ... msg) {
         StringBuilder sb = new StringBuilder();
         if (pr!=null) {
@@ -189,7 +189,7 @@ public class OBasicHttpTaf extends AbsOTafLur implements HttpTaf {
 //        }
         return Resp.NOT_MINE;
     }
-    
+
     public String toString() {
         return "Basic Auth enabled on realm: " + realm;
     }
index b85e311..5b78585 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -62,7 +62,7 @@ public class OLur extends AbsOTafLur implements Lur {
         } else {
             tp=null;
         }
-        if (tp==null) { 
+        if (tp==null) {
             // if no Token Perm preset, get
             try {
                 Pooled<TokenClient> tcp = tokenClientPool.get();
@@ -80,7 +80,7 @@ public class OLur extends AbsOTafLur implements Lur {
                     }
                     String[] scopes = new String[scopeSet.size()];
                     scopeSet.toArray(scopes);
-                    
+
                     Result<TimedToken> rtt = tc.getToken(Kind.getKind(bait),scopes);
                     if (rtt.isOK()) {
                         Result<TokenPerm> rtp = tkMgr.get(rtt.value.getAccessToken(), bait.getName().getBytes());
@@ -95,18 +95,18 @@ public class OLur extends AbsOTafLur implements Lur {
                 access.log(e, "Unable to Get a Token");
             }
         }
-        
+
         boolean rv = false;
         if (tp!=null) {
             if (tkMgr.access.willLog(Level.DEBUG)) {
                 StringBuilder sb = new StringBuilder("AAF Permissions for user ");
                 sb.append(bait.getName());
-                sb.append(", from token ");            
+                sb.append(", from token ");
                 sb.append(tp.get().getAccessToken());
                 for (AAFPermission p : tp.perms()) {
                     sb.append("\n\t[");
                     sb.append(p.getNS());
-                    sb.append(']');                    
+                    sb.append(']');
                     sb.append(p.getType());
                     sb.append('|');
                     sb.append(p.getInstance());
@@ -139,7 +139,7 @@ public class OLur extends AbsOTafLur implements Lur {
             for (AAFPermission p : ((OAuth2Principal)bait).tokenPerm().perms()) {
                 permissions.add(p);
             }
-        }        
+        }
     }
 
     /* (non-Javadoc)
index 472bb52..ea53927 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,12 +55,12 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
     // store all the directories to review
     // No Concurrent HashSet, or at least, it is all implemented with HashMap in older versions
     private static Queue<Persist<?,?>> allPersists = new ConcurrentLinkedQueue<Persist<?,?>>();
-    
+
     private Map<String,CT> tmap;
     protected RosettaEnv env;
     private RosettaDF<T> df;
 
-    
+
     public Persist(Access access, RosettaEnv env, Class<T> cls, String sub_dir) throws CadiException, APIException {
         super(access, sub_dir);
         this.env = env;
@@ -74,11 +74,11 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
         }
         allPersists.add(this);
     }
-    
+
     public void close() {
         allPersists.remove(this);
     }
-    
+
     protected abstract CT newCacheable(T t, long expires_secsFrom1970, byte[] hash, Path path) throws APIException, IOException;
 
     public RosettaDF<T> getDF() {
@@ -113,7 +113,7 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
                     access.log(e,"Reading Token from",key);
                 }
             } // if not read, then ct still==null
-            
+
             // If not in memory, or on disk, get from Remote... IF reloadable (meaning, isn't hitting too often, etc).
             if (ct==null || ct.checkReloadable()) {
                 // Load from external (if makes sense)
@@ -133,7 +133,7 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
                     return Result.err(rtp);
                 }
             }
-            
+
             if (ct!=null) {
                 tmap.put(key, ct);
             }
@@ -149,39 +149,39 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
         writeDisk(df, ct.get(), ct.getHash(), key, ct.expires());
         tmap.put(key,ct);
     }
-    
+
     public void delete(String key) {
         tmap.remove(key);
         deleteFromDisk(key);
     }
 
     public interface Loader<CT> {
-        Result<CT> load(String key) throws APIException, CadiException, LocatorException;  
+        Result<CT> load(String key) throws APIException, CadiException, LocatorException;
     }
 
     /**
      * Clean will examine resources, and remove those that have expired.
-     * 
+     *
      * If "highs" have been exceeded, then we'll expire 10% more the next time.  This will adjust after each run
      * without checking contents more than once, making a good average "high" in the minimum speed.
-     * 
+     *
      * @author Jonathan
      *
      */
     private static final class Clean extends TimerTask {
         private final Access access;
         private long hourly;
-        
+
         public Clean(Access access) {
             this.access = access;
             hourly=0;
         }
-        
+
         private static class Metrics {
             public int mexists = 0, dexists=0;
             public int mremoved = 0, dremoved=0;
         }
-        
+
         public void run() {
             final long now = System.currentTimeMillis();
             final long dayFromNow = now + ONE_DAY;
@@ -203,7 +203,7 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
                             p.clearCount();
                         }
                     } else if (Files.exists(p.path())) {
-                        
+
                     }
                 }
                 // Clear disk
@@ -246,7 +246,7 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
                                     sb.append(e.getMessage());
                                     ++metrics.dremoved;
                                 }
-                                
+
                             }
                             return FileVisitResult.CONTINUE;
                         }
@@ -262,14 +262,14 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
                             access.log(Level.DEBUG, sb);
                             return FileVisitResult.CONTINUE;
                         }
-                    
+
                     });
                 } catch (IOException e) {
                     access.log(e, "Exception while cleaning Persistance");
                 }
-                
+
             }
-            
+
             // We want to print some activity of Persistence Check at least hourly, even if no activity has occurred, but not litter the log if nothing is happening
             boolean go=false;
             Level level=Level.WARN;
@@ -279,9 +279,9 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
             } else if (access.willLog(Level.WARN)) {
                 go = metrics.mremoved>0 || metrics.dremoved>0 || --hourly <= 0;
             }
-            
+
             if (go) {
-                access.printf(level, "Persist Cache: removed %d of %d items from memory and %d of %d from disk", 
+                access.printf(level, "Persist Cache: removed %d of %d items from memory and %d of %d from disk",
                     metrics.mremoved, metrics.mexists, metrics.dremoved, metrics.dexists);
                 hourly = 3600000/CLEAN_CHECK;
             }
@@ -296,6 +296,6 @@ public abstract class Persist<T,CT extends Persistable<T>> extends PersistFile {
         close(); // can call twice.
     }
 
-    
+
 
 }
index c7d7148..db9852e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,13 +52,13 @@ public class PersistFile {
 
     private static final String HASH_NO_MATCH = "Hash does not match in Persistence";
     private static final Object LOCK = new Object();
-    
+
     protected static Symm symm;
     public Access access;
     protected final Path tokenPath;
     protected final String tokenDir;
     private static final boolean isWindows = System.getProperty("os.name").startsWith("Windows");
-    
+
     public PersistFile(Access access, String sub_dir) throws CadiException, APIException {
         this.access = access;
         tokenPath = Paths.get(access.getProperty(Config.CADI_TOKEN_DIR,"tokens"), sub_dir);
@@ -112,7 +112,7 @@ public class PersistFile {
                             }
                             df.newData().load(t).to(os);
                         } finally {
-                            // Note: Someone on the Web noticed that using a DataOutputStream would not full close out without a flush first, 
+                            // Note: Someone on the Web noticed that using a DataOutputStream would not full close out without a flush first,
                             // leaving files open.
                             try {
                                 os.flush();
@@ -146,7 +146,7 @@ public class PersistFile {
         }
         return readDisk(df,cred,hp.get(),hl);
     }
-    
+
     public <T> T readDisk(final RosettaDF<T> df, final byte[] cred, final Path target, final Holder<Long> hexpired) throws CadiException {
         // Try from Disk
         T t = null;
@@ -160,7 +160,7 @@ public class PersistFile {
                         exp |= ((long)is.read()<<i);
                     }
                     hexpired.set(exp);
-                
+
                     t = symm.exec(new Symm.SyncExec<T>() {
                         @Override
                         public T exec(Encryption enc) throws Exception {
@@ -194,7 +194,7 @@ public class PersistFile {
                 } finally {
                     is.close();
                 }
-            } catch (NoSuchFileException e) { 
+            } catch (NoSuchFileException e) {
                 return t;
             } catch (Exception e) {
                 throw new CadiException(e);
@@ -202,7 +202,7 @@ public class PersistFile {
         }
         return t;
     }
-    
+
     public long readExpiration(final Path target) throws CadiException {
         long exp=0L;
         if (Files.exists(target)) {
@@ -243,7 +243,7 @@ public class PersistFile {
     public Path getPath(String filename) {
         return Paths.get(tokenDir,filename);
     }
-    
+
     public FileTime getFileTime(String filename, Holder<Path> hp) throws IOException {
         Path p = hp.get();
         if (p==null) {
index 1f22028..3fceb6f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index bde6077..55b013e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,7 +41,7 @@ public class Persisting<T> implements Persistable<T> {
     private T t;
     private Path path;
     private Persist<T, ?> persist;
-    
+
     public Persisting(Persist<T,?> p, T t, long expiresSecsFrom1970, byte[] hash, Path path) {
         persist = p;
         this.t=t;
@@ -110,7 +110,7 @@ public class Persisting<T> implements Persistable<T> {
      */
     @Override
     public boolean checkReloadable() {
-        //TODO other elements to add here... 
+        //TODO other elements to add here...
         // Ideas:  Is it valid?
         //         if not, How many times has it been checked in the last minute
         return expired();
index 4bbe5ff..fea6c1b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 18eb735..4555171 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,8 +43,8 @@ public class Registrar<ENV extends BasicEnv> {
 
         erroringTimer = null;
         timer = new Timer(REGISTRAR,true);
-        timer.schedule(new RegistrationTimerTask(env), START, INTERVAL); 
-        
+        timer.schedule(new RegistrationTimerTask(env), START, INTERVAL);
+
         if (shutdownHook) {
             Runtime.getRuntime().addShutdownHook(new Thread() {
                 public void run() {
@@ -53,7 +53,7 @@ public class Registrar<ENV extends BasicEnv> {
             });
         }
     }
-    
+
     private class RegistrationTimerTask extends TimerTask {
         private final ENV env;
         public RegistrationTimerTask(ENV env) {
@@ -82,11 +82,11 @@ public class Registrar<ENV extends BasicEnv> {
             }
         }
     }
-    
+
     public void register(Registrant<ENV> r) {
         registrants.addLast(r);
     }
-    
+
     public void deregister(Registrant<ENV> r) {
         registrants.remove(r);
     }
index 80fc1a4..de006ae 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,11 +37,11 @@ import locate.v1_0.MgmtEndpoints;
 
 public class RegistrationCreator {
     private Access access;
-    
+
     public RegistrationCreator(Access access) {
         this.access = access;
     }
-    
+
     public MgmtEndpoints create(final int port) throws CadiException {
         MgmtEndpoints me = new MgmtEndpoints();
         List<MgmtEndpoint> lme = me.getMgmtEndpoint();
@@ -52,9 +52,9 @@ public class RegistrationCreator {
             String dot_le;
             String version=null;
             String defProtocol="https";
-            
+
             RegistrationPropHolder ph = new RegistrationPropHolder(access, port);
-            
+
             String firstPrivateHostname = null;
             // Now, loop through by Container
             for(String le : Split.splitTrim(',', ph.lcontainer)) {
@@ -72,7 +72,7 @@ public class RegistrationCreator {
                         locate.setProtocol(defProtocol = access.getProperty(Config.AAF_LOCATOR_PROTOCOL,defProtocol));
                         List<String> ls = locate.getSubprotocol();
                         for(String sp : Split.splitTrim(',', access.getProperty(Config.AAF_LOCATOR_SUBPROTOCOL,""))) {
-                            ls.add(sp);    
+                            ls.add(sp);
                         }
                         locate.setLatitude(ph.latitude);
                         locate.setLongitude(ph.longitude);
@@ -80,27 +80,27 @@ public class RegistrationCreator {
                     } else {
                         locate = copy(defData);
                     }
-                    
+
                     locate.setName(ph.getEntryName(entry,dot_le));
                     /* Cover the situation where there is a Container, and multiple locator Entries,
                      * the first of which is the only real private FQDN
                      * example: oauth
                      *      aaf_locator_entries=oauth,token,introspect
-                     *      
+                     *
                      *      Entries for token and introspect, but they point to oauth service.
                      */
                     String locateHostname;
-                    if(le.isEmpty()) {                
+                    if(le.isEmpty()) {
                         locateHostname=ph.getEntryFQDN(entry, dot_le);
                     } else if(firstPrivateHostname==null) {
                         firstPrivateHostname=locateHostname=ph.getEntryFQDN(entry, dot_le);
                     } else {
                         locateHostname=firstPrivateHostname;
                     }
-                    
+
                     locate.setHostname(locateHostname);
                     locate.setPort(ph.getEntryPort(dot_le));
-                    
+
                     String specificVersion = access.getProperty(Config.AAF_LOCATOR_VERSION + dot_le,null);
                     if(specificVersion == null && locate == defData) {
                         specificVersion = version;
@@ -142,13 +142,13 @@ public class RegistrationCreator {
         } catch (NumberFormatException | UnknownHostException e) {
             throw new CadiException("Error extracting Data from Properties for Registrar",e);
         }
-        
+
         if(access.willLog(Level.INFO)) {
             access.log(Level.INFO, print(new StringBuilder(),me.getMgmtEndpoint()));
         }
         return me;
     }
-    
+
     /*
      * Find the best version between Actual Interface and Deployed version
      */
@@ -165,8 +165,8 @@ public class RegistrationCreator {
                     break;
                 }
             }
-        }    
-        
+        }
+
         if(sb.length()==0 && deploy.length>i) {
             s=deploy[i];
             for(int j=0;j<s.length();++j) {
@@ -177,7 +177,7 @@ public class RegistrationCreator {
                 }
             }
         }
-        
+
         return sb.length()==0?0:Integer.parseInt(sb.toString());
     }
 
@@ -242,7 +242,7 @@ public class RegistrationCreator {
             out.append(s);
         }
     }
-    
+
     private MgmtEndpoint copy(MgmtEndpoint mep) {
         MgmtEndpoint out = new MgmtEndpoint();
         out.setName(mep.getName());
index b49b911..49af80f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -79,11 +79,11 @@ public class RemoteRegistrant<ENV extends BasicEnv> implements Registrant<ENV> {
                 throw new CadiException(e);
             }
         }
-        
+
         RegistrationCreator rcreator = new RegistrationCreator(access);
         meps = rcreator.create(port);
     }
-    
+
 
 
     @Override
@@ -103,7 +103,7 @@ public class RemoteRegistrant<ENV extends BasicEnv> implements Registrant<ENV> {
                 access.log(e, "Error registering service to AAF Locator");
                 return Result.err(503,e.getMessage());
             }
-            
+
         } catch (CadiException e) {
             return Result.err(503,e.getMessage());
         }
@@ -125,7 +125,7 @@ public class RemoteRegistrant<ENV extends BasicEnv> implements Registrant<ENV> {
                 access.log(e, "Error deregistering service on AAF Locator");
                 return Result.err(503,e.getMessage());
             }
-            
+
         } catch (CadiException e) {
             return Result.err(503,e.getMessage());
         }
index c9b21b2..a6a7410 100644 (file)
@@ -83,7 +83,7 @@ public class AAFSSO {
     public AAFSSO(String[] args) throws IOException, CadiException {
         this(args,new Properties());
     }
-    
+
     public AAFSSO(String[] args, ProcessArgs pa) throws IOException, CadiException {
         this(args,pa.process(args, new Properties()));
     }
@@ -114,7 +114,7 @@ public class AAFSSO {
                 propStream.close();
             }
         }
-        
+
         File dot_aaf_kf = new File(dot_aaf, "keyfile");
 
         if (removeSSO) {
@@ -143,7 +143,7 @@ public class AAFSSO {
             System.out.println("AAF SSO information removed");
         } else {
             //    Config.setDefaultRealm(access);
-    
+
             if (!dot_aaf_kf.exists()) {
                 // This will create, as required, or reuse
                 ArtifactDir.getSymm(dot_aaf_kf);
@@ -155,9 +155,9 @@ public class AAFSSO {
             String[] naargs = new String[nargs.size()];
             nargs.toArray(naargs);
             access = new PropAccess(os, naargs);
-            
+
             if (loginOnly) {
-                for (String tag : new String[] {Config.AAF_APPID, Config.AAF_APPPASS, 
+                for (String tag : new String[] {Config.AAF_APPID, Config.AAF_APPPASS,
                         Config.CADI_ALIAS, Config.CADI_KEYSTORE,Config.CADI_KEYSTORE_PASSWORD,Config.CADI_KEY_PASSWORD}) {
                     access.getProperties().remove(tag);
                     diskprops.remove(tag);
@@ -171,14 +171,14 @@ public class AAFSSO {
 //                }
 //                touchDiskprops=true;
             }
-    
+
             String keyfile = access.getProperty(Config.CADI_KEYFILE); // in case its CertificateMan props
             if (keyfile == null) {
                 access.setProperty(Config.CADI_KEYFILE, dot_aaf_kf.getAbsolutePath());
                 addProp(Config.CADI_KEYFILE,dot_aaf_kf.getAbsolutePath());
             }
-    
-    
+
+
             String alias, appID;
             alias = access.getProperty(Config.CADI_ALIAS);
             if (alias==null) {
@@ -188,7 +188,7 @@ public class AAFSSO {
                 user=alias;
                 appID=null;
             }
-            
+
             String aaf_container_ns = "";
             if (appID!=null) {
                 if( access.getProperty(Config.AAF_APPPASS)==null) {
@@ -204,10 +204,10 @@ public class AAFSSO {
                 }
                  diskprops.setProperty(Config.AAF_APPID,appID);
             }
-            
+
             String keystore=access.getProperty(Config.CADI_KEYSTORE);
             String keystore_pass=access.getProperty(Config.CADI_KEYSTORE_PASSWORD);
-            
+
             if (user==null || (alias!=null && (keystore==null || keystore_pass==null))) {
                 String select = null;
                 String name;
@@ -224,7 +224,7 @@ public class AAFSSO {
                             encrypted_pass= access.encrypt(new String(password));
                             access.setProperty(Config.CADI_KEYSTORE_PASSWORD, encrypted_pass);
                             addProp(Config.CADI_KEYSTORE_PASSWORD, encrypted_pass);
-                            
+
                             // TODO READ Aliases out of Keystore?
                             user = alias = cons.readLine("Keystore alias: ");
                             access.setProperty(Config.CADI_ALIAS, user);
@@ -251,8 +251,8 @@ public class AAFSSO {
                     keystore_pass = encrypted_pass;
                 }
             }
-            
-    
+
+
             if (alias!=null) {
                 use_X509 = true;
             } else {
@@ -302,7 +302,7 @@ public class AAFSSO {
             if (user == null) {
                 err = new StringBuilder("Add -D" + Config.AAF_APPID + "=<id> ");
             }
-    
+
             if (encrypted_pass == null && alias == null) {
                 if (err == null) {
                     err = new StringBuilder();
@@ -311,7 +311,7 @@ public class AAFSSO {
                 }
                 err.append("-D" + Config.AAF_APPPASS + "=<passwd> ");
             }
-            
+
             String cadiLatitude = access.getProperty(Config.CADI_LATITUDE);
             if (cadiLatitude==null) {
                 System.out.println("# If you do not know your Global Coordinates, we suggest bing.com/maps");
@@ -321,7 +321,7 @@ public class AAFSSO {
                 }
                 access.setProperty(Config.CADI_LATITUDE, cadiLatitude);
                 addProp(Config.CADI_LATITUDE, cadiLatitude);
-                
+
             }
             String cadiLongitude = access.getProperty(Config.CADI_LONGITUDE);
             if (cadiLongitude==null) {
@@ -332,14 +332,14 @@ public class AAFSSO {
                 access.setProperty(Config.CADI_LONGITUDE, cadiLongitude);
                 addProp(Config.CADI_LONGITUDE, cadiLongitude);
             }
-    
+
             String cadi_truststore = access.getProperty(Config.CADI_TRUSTSTORE);
             if (cadi_truststore==null) {
-                String name; 
+                String name;
                 String select;
                 for (File tsf : dot_aaf.listFiles()) {
                     name = tsf.getName();
-                    if (name.contains("trust") && 
+                    if (name.contains("trust") &&
                             (name.endsWith(".jks") || name.endsWith(".p12"))) {
                         select = cons.readLine("Use %s for TrustStore? (y/n):",tsf.getName());
                         if ("y".equalsIgnoreCase(select)) {
@@ -401,7 +401,7 @@ public class AAFSSO {
                 access.log(e);
             }
         }
-        
+
         final String apiVersion = access.getProperty(Config.AAF_API_VERSION, Config.AAF_DEFAULT_API_VERSION);
         final String aaf_root_ns = access.getProperty(Config.AAF_ROOT_NS);
         String locateRoot;
@@ -521,7 +521,7 @@ public class AAFSSO {
         }
         return larg;
     }
-    
+
     private void setReadonly(File file) {
         file.setExecutable(false, false);
         file.setWritable(false, false);
@@ -532,7 +532,7 @@ public class AAFSSO {
     public boolean ok() {
         return ok;
     }
-    
+
     public static interface ProcessArgs {
         public Properties process(final String[] args, final Properties props);
     }
index b7dfec4..a58edc2 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -44,29 +44,29 @@ import org.onap.aaf.misc.rosetta.env.RosettaEnv;
 import aaf.v2_0.Error;
 
 public class JU_ErrMessageTest {
-    
+
     @Mock
     private RosettaEnv env;
-    
+
     @Mock(answer=Answers.RETURNS_DEEP_STUBS)
     private RosettaDF<Object> errDF;
 
     private ErrMessage errMessage;
 
     private String attErrJson = "key:value";
-    
+
     private Error error;
 
     private Future<?> future;
 
     private ByteArrayOutputStream errStream;
-    
+
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        
+
         when(env.newDataFactory(Error.class)).thenReturn(errDF);
-        
+
         future = new Future<Error>() {
 
             @Override
@@ -89,47 +89,47 @@ public class JU_ErrMessageTest {
                 return "header";
             }
         };
-        
+
         error = new Error();
         error.setMessageId("Error Message Id");
         error.setText("Error Text");
         errMessage = new ErrMessage(env);
-        
+
         errStream = new ByteArrayOutputStream();
     }
 
     @Test
     public void testPrintErrMessage() throws APIException {
         when(errDF.newData().in(TYPE.JSON).load(attErrJson).asObject()).thenReturn(error);
-        
+
         errMessage.printErr(new PrintStream(errStream), attErrJson);
         assertEquals("Error Message Id Error Text" + System.lineSeparator(), errStream.toString());
     }
-    
+
     @Test
     public void testToMsgJsonErrAttribute() throws APIException {
         when(errDF.newData().in(TYPE.JSON).load(attErrJson).asObject()).thenReturn(error);
-        
+
         StringBuilder sb = new StringBuilder();
         errMessage.toMsg(sb,attErrJson);
-        
+
         assertEquals(sb.toString(),"Error Message Id Error Text");
     }
-    
+
     @Test
     public void testToMsgFuture() {
         StringBuilder sb = errMessage.toMsg(future);
-        
+
         assertEquals(sb.toString(), "0: Body");
     }
 
-    
+
     @Test
     public void testToMsgFutureWithoutException() throws APIException {
         when(errDF.newData().in(TYPE.JSON).load(future.body()).asObject()).thenReturn(error);
-        
+
         StringBuilder sb = errMessage.toMsg(future);
-        
+
         assertEquals(sb.toString(), "Error Message Id Error Text");
     }
 }
index 5d24200..d39cbdb 100644 (file)
@@ -211,7 +211,7 @@ public class JU_PermEval {
         @SuppressWarnings("unused")
         PermEval pe = new PermEval();
     }
-    
+
     @Test
     public void pathTest() {
         assertTrue(PermEval.evalInstance("/","/"));
index 5e642c6..18e72b4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,14 +54,14 @@ public class TestHClient {
                     for (Item item = loc.first(); item!=null; item=loc.next(item)) {
                         System.out.println(loc.get(item));
                     }
-                    
+
                     hman = new HMangr(access,loc);
                     final String path = String.format("/authz/perms/user/%s",
                             access.getProperty(Config.AAF_APPID,"xx9999@people.osaaf.org"));
                     hman.best(si.defSS, new Retryable<Void>() {
                         @Override
                         public Void code(Rcli<?> cli) throws APIException, CadiException {
-                            Future<String> ft = cli.read(path,"application/json");  
+                            Future<String> ft = cli.read(path,"application/json");
                             if (ft.get(10000)) {
                                 System.out.println("Hurray,\n"+ft.body());
                             } else {
@@ -79,5 +79,5 @@ public class TestHClient {
             e.printStackTrace();
         }
     }
-    
+
 }
index 7dccc8c..51ed8de 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,13 +42,13 @@ public class JU_AAFAuthn {
 
     @Mock
     AAFCon con;
-    
+
     @Mock
     AbsUserCache<AAFPermission> cache;
-    
+
     @Mock
     PropAccess propaccess;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
@@ -60,7 +60,7 @@ public class JU_AAFAuthn {
         String realm = authnObj.getRealm();
         assertNull(realm);
     }
-    
+
     @Test
     public void testValidateFailure() {
         AAFAuthnImplWithGetUserNull authnObj = new AAFAuthnImplWithGetUserNull(con, cache);
@@ -74,7 +74,7 @@ public class JU_AAFAuthn {
             assertNull( e.getLocalizedMessage());
         }
     }
-    
+
     @Test
     public void testValidate() {
         AAFAuthnImpl authnObj = new AAFAuthnImpl(con);
@@ -93,7 +93,7 @@ public class JU_AAFAuthn {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testValidateRevalidate() {
         AAFAuthnImpl authnObj = new AAFAuthnImpl(con);
@@ -113,7 +113,7 @@ public class JU_AAFAuthn {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testValidateValidUser() {
         AAFAuthnImplWithGetUser authnObj = new AAFAuthnImplWithGetUser(con);
@@ -127,7 +127,7 @@ public class JU_AAFAuthn {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testValidateValidUserNull() {
         AAFAuthnImplWithGetUserNull authnObj = new AAFAuthnImplWithGetUserNull(con);
@@ -147,48 +147,48 @@ public class JU_AAFAuthn {
             this.access = propaccess;
             // TODO Auto-generated constructor stub
         }
-        
+
         AAFAuthnImpl(AAFCon con, AbsUserCache cache) {
             super(con, cache);
             this.access = propaccess;
             // TODO Auto-generated constructor stub
         }
-        
-        
+
+
     }
-    
+
     class AAFAuthnImplWithGetUser extends AAFAuthn{
         AAFAuthnImplWithGetUser(AAFCon con) {
             super(con);
             this.access = propaccess;
             // TODO Auto-generated constructor stub
         }
-        
+
         AAFAuthnImplWithGetUser(AAFCon con, AbsUserCache cache) {
             super(con, cache);
             this.access = propaccess;
             // TODO Auto-generated constructor stub
         }
-        
+
         @Override
         protected User getUser(String user, byte[] cred) {
             return new User<>("test",new byte[] {});
         }
     }
-    
+
     class AAFAuthnImplWithGetUserNull extends AAFAuthn{
         AAFAuthnImplWithGetUserNull(AAFCon con) {
             super(con);
             this.access = propaccess;
             // TODO Auto-generated constructor stub
         }
-        
+
         AAFAuthnImplWithGetUserNull(AAFCon con, AbsUserCache cache) {
             super(con, cache);
             this.access = propaccess;
             // TODO Auto-generated constructor stub
         }
-        
+
         @Override
         protected User getUser(String user, byte[] cred) {
             User user1 = null;
index 89066c9..10b8948 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,16 +44,16 @@ public class JU_AAFSingleLocator {
 
     @Mock
     AAFCon con;
-    
+
     @Mock
     AbsUserCache<AAFPermission> cache;
-    
+
     @Mock
     PropAccess propaccess;
-    
+
 
     AAFSingleLocator authnObj;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
@@ -62,7 +62,7 @@ public class JU_AAFSingleLocator {
         } catch (URISyntaxException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
 
     @Test
@@ -75,13 +75,13 @@ public class JU_AAFSingleLocator {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testHasItem() {
             boolean retVal = authnObj.hasItems();
             assertTrue(retVal);
     }
-    
+
     @Test
     public void testInvalidate() {
         try {
@@ -91,7 +91,7 @@ public class JU_AAFSingleLocator {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testBest() {
         try {
@@ -122,17 +122,17 @@ public class JU_AAFSingleLocator {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testRefres() {
             boolean retVal = authnObj.refresh();
             assertFalse(retVal);
     }
-    
+
     @Test
     public void testdestroy() {
         authnObj.destroy();
     }
-    
-    
+
+
 }
index c76d178..3771013 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,43 +56,43 @@ import locate.v1_0.Endpoint;
 import locate.v1_0.Endpoints;
 
 public class JU_AAFLocator {
-    
+
     @Mock private HClient clientMock;
     @Mock private Future<Endpoints> futureMock;
     @Mock private Endpoints endpointsMock;
-    
+
     private PropAccess access;
-    
+
     private ByteArrayOutputStream errStream;
-    
+
     private static final String uriString = "https://example.com";
 
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
-        
+
         doReturn(futureMock).when(clientMock).futureRead((RosettaDF<?>)any(), eq(TYPE.JSON));
         when(clientMock.timeout()).thenReturn(1);
         when(clientMock.getURI()).thenReturn(new URI(uriString));
         when(futureMock.get(1)).thenReturn(true);
-        
+
         futureMock.value = endpointsMock;
         List<Endpoint> endpoints = new ArrayList<>();
         endpoints.add(new Endpoint());
         when(endpointsMock.getEndpoint()).thenReturn(endpoints);
 
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
-        
+
         errStream = new ByteArrayOutputStream();
 
         System.setErr(new PrintStream(errStream));
     }
-    
+
     @After
     public void tearDown() {
         System.setErr(System.err);
     }
-    
+
     @AfterClass
     public static void tearDownAfterClass() throws Exception {
         Field field = SecurityInfoC.class.getDeclaredField("sicMap");
index 004eed3..5f5858c 100644 (file)
@@ -149,7 +149,7 @@ public class JU_AbsAAFLocator {
         assertThat(loc.setPathInfo("pathInfo"), is(not(nullValue())));
         assertThat(loc.setQuery("query"), is(not(nullValue())));
         assertThat(loc.setFragment("fragment"), is(not(nullValue())));
-        
+
         assertThat(loc.exposeGetURI(uri), is(not(uri)));
     }
 
index 8bb873b..ab37718 100644 (file)
@@ -55,7 +55,7 @@ public class JU_ArtifactDir {
     @Mock private Trans transMock;
     @Mock private CertInfo certInfoMock;
     @Mock private Artifact artiMock;
-    
+
     private static final String dirName = "src/test/resources/artifacts";
     private static final String nsName = "org.onap.test";
     private static final String luggagePassword = "12345";  // That's the stupidest combination I've ever heard in my life
@@ -65,17 +65,17 @@ public class JU_ArtifactDir {
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        
+
         issuers = new ArrayList<>();
         issuers.add("issuer1");
         issuers.add("issuer2");
     }
-    
+
     @After
     public void tearDown() {
         ArtifactDir.clear();
     }
-    
+
     @AfterClass
     public static void tearDownOnce() {
         cleanup();
@@ -91,7 +91,7 @@ public class JU_ArtifactDir {
         } catch (CadiException e) {
             assertThat(e.getMessage(), is("File Artifacts require a path\nFile Artifacts require an AAF Namespace"));
         }
-        
+
         when(artiMock.getDir()).thenReturn(dirName);
         try {
             artiDir.place(transMock, certInfoMock, artiMock, "machine");
@@ -99,12 +99,12 @@ public class JU_ArtifactDir {
         } catch (CadiException e) {
             assertThat(e.getMessage(), is("File Artifacts require an AAF Namespace"));
         }
-        
+
         when(artiMock.getNs()).thenReturn(nsName);
         when(certInfoMock.getCaIssuerDNs()).thenReturn(issuers);
         when(certInfoMock.getChallenge()).thenReturn(luggagePassword);
         artiDir.place(transMock, certInfoMock, artiMock, "machine");
-        
+
         File writableFile = new File(dirName + '/' + nsName + "writable.txt");
         ArtifactDir.write(writableFile, Chmod.to755, "first data point", "second data point");
         try {
@@ -112,17 +112,17 @@ public class JU_ArtifactDir {
             fail("Should've thrown an exception");
         } catch (NullPointerException e) {
         }
-        
+
         KeyStore ks = KeyStore.getInstance(Agent.PKCS12);
         try {
             ArtifactDir.write(writableFile, Chmod.to755, ks, luggagePassword.toCharArray());
             fail("Should've thrown an exception");
         } catch (CadiException e) {
         }
-        
+
         ks.load(null, null);
         ArtifactDir.write(writableFile, Chmod.to755, ks, luggagePassword.toCharArray());
-        
+
         ArtifactDirStud artiDir2 = new ArtifactDirStud();
         artiDir2.place(transMock, certInfoMock, artiMock, "machine");
 
@@ -131,7 +131,7 @@ public class JU_ArtifactDir {
 
         ArtifactDir.clear();
         artiDir.place(transMock, certInfoMock, artiMock, "machine");
-    
+
     }
 
     public void throwsTest() throws CadiException {
index 177ad3a..36b3f22 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 6bb31b2..f8b082f 100644 (file)
@@ -78,7 +78,7 @@ public class JU_PlaceArtifactInFiles {
         assertThat(placer._place(transMock, certInfoMock, artiMock), is(true));
         assertThat(new File(dirName + '/' + nsName + ".crt").exists(), is(true));
         assertThat(new File(dirName + '/' + nsName + ".key").exists(), is(true));
-        
+
         when(certInfoMock.getCerts()).thenReturn(null);
         try {
             placer._place(transMock, certInfoMock, artiMock);
index a2782e7..237e0f6 100644 (file)
@@ -114,7 +114,7 @@ public class JU_PlaceArtifactInKeystore {
 
         // coverage
         assertThat(placer.place(transMock, certInfoMock, artiMock, "machine"), is(true));
-        
+
         when(certInfoMock.getCerts()).thenReturn(null);
         try {
             placer._place(transMock, certInfoMock, artiMock);
index d66546b..18292b2 100644 (file)
@@ -47,7 +47,7 @@ public class JU_PlaceArtifactOnStream {
 
     private static final String luggagePassword = "12345";  // That's the stupidest combination I've ever heard in my life
     private static final String privateKeyString = "I'm a private key!";
-    
+
     private ByteArrayOutputStream outStream;
 
     private List<String> certs;
@@ -63,7 +63,7 @@ public class JU_PlaceArtifactOnStream {
         when(certInfoMock.getChallenge()).thenReturn(luggagePassword);
         when(certInfoMock.getCerts()).thenReturn(certs);
         when(certInfoMock.getPrivatekey()).thenReturn(privateKeyString);
-        
+
         outStream = new ByteArrayOutputStream();
     }
 
@@ -71,9 +71,9 @@ public class JU_PlaceArtifactOnStream {
     public void test() {
         PlaceArtifactOnStream placer = new PlaceArtifactOnStream(new PrintStream(outStream));
         placer.place(transMock, certInfoMock, artiMock, "machine");
-        
+
         String[] output = outStream.toString().split(System.lineSeparator(), 0);
-        
+
         String[] expected = {
                 "Challenge:  " + luggagePassword,
                 "PrivateKey:",
@@ -82,7 +82,7 @@ public class JU_PlaceArtifactOnStream {
                 "cert1",
                 "cert2"
         };
-        
+
         assertThat(output.length, is(expected.length));
         for (int i = 0; i < output.length; i++) {
             assertThat(output[i], is(expected[i]));
index 24e30a4..f94da88 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,7 +38,7 @@ public class JU_AAFToken {
         UUID uuid2 = AAFToken.fromToken(token);
         assertEquals(uuid, uuid2);
     }
-    
+
     @Test
     public void testMin() throws CadiException {
         UUID uuid = new UUID(Long.MIN_VALUE,Long.MIN_VALUE);
@@ -61,7 +61,7 @@ public class JU_AAFToken {
     public void nullTest() {
         // Invalid characters
         assertNull(AAFToken.fromToken("~~invalid characters~~"));
-        
+
         // Invalid CADI tokens
         assertNull(AAFToken.fromToken("ABCDEF"));
         assertNull(AAFToken.fromToken("12345678901234567890123456789012345678"));
index 3864cc2..ba83102 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,17 +42,17 @@ import org.onap.aaf.cadi.oauth.TokenPerm;
 import org.onap.aaf.cadi.principal.BearerPrincipal;
 
 public class JU_OAuth2Lur {
-    
+
     private List<AAFPermission> aafPerms;
     private List<Permission> perms;
-    
+
     @Mock private TokenMgr tmMock;
     @Mock private AAFPermission pondMock;
     @Mock private Principal princMock;
     @Mock private OAuth2Principal oauthPrincMock;
     @Mock private BearerPrincipal bearPrincMock;
     @Mock private TokenPerm tpMock;
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
@@ -66,10 +66,10 @@ public class JU_OAuth2Lur {
 
         assertThat(lur.fish(princMock, pondMock), is(false));
         assertThat(lur.fish(oauthPrincMock, pondMock), is(false));
-        
+
         when(oauthPrincMock.tokenPerm()).thenReturn(tpMock);
         assertThat(lur.fish(oauthPrincMock, pondMock), is(false));
-        
+
         aafPerms = new ArrayList<>();
         aafPerms.add(pondMock);
         aafPerms.add(pondMock);
@@ -84,9 +84,9 @@ public class JU_OAuth2Lur {
 
         when(oauthPrincMock.tokenPerm()).thenReturn(null);
         lur.fishAll(oauthPrincMock, perms);
-        
+
         assertThat(lur.handlesExclusively(pondMock), is(false));
-        
+
         assertThat(lur.handles(null), is(false));
         assertThat(lur.handles(princMock), is(false));
         assertThat(lur.handles(bearPrincMock), is(false));
index 630adac..5cc15e2 100644 (file)
@@ -22,7 +22,7 @@
 package org.onap.aaf.cadi.oauth.test;
 
 import static org.junit.Assert.assertThat;
-import static org.hamcrest.CoreMatchers.is; 
+import static org.hamcrest.CoreMatchers.is;
 import static org.mockito.Mockito.when;
 
 import org.junit.Before;
@@ -35,16 +35,16 @@ import org.onap.aaf.cadi.oauth.TokenPerm;
 public class JU_OAuth2Principal {
 
     @Mock TokenPerm tpMock;
-    
-    
+
+
     private static final String username = "username";
-    
+
     private static final byte[] hash = "hashstring".getBytes();
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        
+
         when(tpMock.getUsername()).thenReturn(username);
     }
 
index 6759d31..a0a6c10 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -145,7 +145,7 @@ public class JU_OAuthTest {
                     Assert.fail(rtt.code + ' ' + rtt.error);
                 }
             }
-        
+
             // ISAM Test
             if (true) {
                 System.out.println("**** ISAM TEST ****");
@@ -156,7 +156,7 @@ public class JU_OAuthTest {
                     tc = tcf.newClient(tokenServiceURL, 3000);
                     tc.client_creds(client_id, client_secret);
                     int at = username.indexOf('@');
-                    
+
                     tc.password(at>=0?username.substring(0, at):username,access.getProperty("cadi_password"));
                     rtt = tc.getToken("org.osaaf.aaf","org.osaaf.test");
                     if (rtt.isOK()) {
@@ -164,7 +164,7 @@ public class JU_OAuthTest {
                         rtt = tc.refreshToken(rtt.value);
                         if (rtt.isOK()) {
                             print(rtt.value);
-                            
+
                             tc = tcf.newClient(tokenAltIntrospectURL, 3000);
                             tc.client_creds(client_id, client_secret);
                             Result<Introspect> rti = tc.introspect(rtt.value.getAccessToken());
@@ -211,8 +211,8 @@ public class JU_OAuthTest {
 //            Assert.fail();
         }
     }
-    
-    
+
+
 //    private TokenClient testROPCFlow(final String url, final String client_id, final String client_secret, String user, String password, final String ... scope) throws Exception {
 //        TokenClient tclient = tcf.newClient(url,3000);
 //        tclient.client_creds(client_id, client_secret);
@@ -233,7 +233,7 @@ public class JU_OAuthTest {
 //        }
 //        return tclient;
 //    }
-    
+
     private String serviceCall(TzClient tzClient) throws Exception {
         return tzClient.best(new Retryable<String>() {
             @Override
@@ -263,7 +263,7 @@ public class JU_OAuthTest {
         t.getScope(),
         t.getRefreshToken());
     }
-    
+
     private void print(Introspect ti) {
         if (ti==null || ti.getClientId()==null) {
             System.out.println("Empty Introspect");
@@ -288,7 +288,7 @@ public class JU_OAuthTest {
         Chrono.timeStamp(exp),
         ti.getScope(),
         ti.getContent()==null?"":ti.getContent());
-        
+
         System.out.println();
     }
 }
index e8fbbbd..bc0ddc1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index c40e4eb..f2d4603 100644 (file)
@@ -98,7 +98,7 @@ public class JU_TokenPerm {
         String json;
         LoadPermissions lp;
         Permission p;
-        
+
         json = "{\"perm\":[" +
             "  {\"ns\":\"com\",\"type\":\"access\",\"instance\":\"*\",\"action\":\"read,approve\"}," +
             "]}";
index 805b13f..504fa42 100644 (file)
@@ -53,32 +53,32 @@ import org.onap.aaf.cadi.oauth.TzHClient;
 import org.onap.aaf.misc.env.APIException;
 
 public class JU_TzHClient {
-    
+
     @Mock private Retryable<Integer> retryableMock;
     @Mock private TimedToken tokenMock;
     @Mock private SecurityInfoC<HttpURLConnection> siMock;
     @Mock private Locator<URI> locMock;
     @Mock private Item itemMock;
     @Mock private Rcli<HttpURLConnection> clientMock;
-    
+
     private PropAccess access;
-    
+
     private ByteArrayOutputStream errStream;
-    
+
     private final static String client_id = "id";
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
         access.setProperty(Config.CADI_LATITUDE, "38.62");  // St Louis approx lat
         access.setProperty(Config.CADI_LONGITUDE, "90.19");  // St Louis approx long
-       //access.setProperty("tag", "http://aaf.something.com");
-       
+        //access.setProperty("tag", "http://aaf.something.com");
+
         errStream = new ByteArrayOutputStream();
         System.setErr(new PrintStream(errStream));
     }
-    
+
     @After
     public void tearDown() {
         System.setErr(System.err);
index 0394be9..74f2cf4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -46,7 +46,7 @@ public class JU_RegistrationCreator {
         pa.setProperty(Config.CADI_LATITUDE, "32.7");
         pa.setProperty(Config.CADI_LONGITUDE, "-72.0");
         pa.setProperty(Config.AAF_LOCATOR_NAME, "");
-        
+
         try {
             String hostname = Inet4Address.getLocalHost().getHostName();
             String entry = "";
@@ -82,7 +82,7 @@ public class JU_RegistrationCreator {
                 assertEquals(protocol,me.getProtocol());
                 assertEquals(0,me.getSpecialPorts().size());
             }
-            
+
             pa.setProperty(Config.AAF_LOCATOR_ENTRIES, "service");
             rc = new RegistrationCreator(pa);
             for(MgmtEndpoint me : rc.create(port).getMgmtEndpoint()) {
@@ -141,7 +141,7 @@ public class JU_RegistrationCreator {
             pa.setProperty(Config.AAF_LOCATOR_CONTAINER_NS+DOT_OOM, "onap");
             String k8s_public_hostname="k8s.public.com";
             int public_port = 30001;
-            
+
             pa.setProperty(Config.AAF_LOCATOR_PUBLIC_FQDN,k8s_public_hostname);
             pa.setProperty(Config.AAF_LOCATOR_PUBLIC_PORT+DOT_OOM,Integer.toString(public_port));
             pa.setProperty(Config.AAF_LOCATOR_APP_NS, Config.AAF_ROOT_NS_DEF);
@@ -173,7 +173,7 @@ public class JU_RegistrationCreator {
         } catch (CadiException | UnknownHostException e) {
             Assert.fail(e.getMessage());
         }
-        
+
 
     }
 
index 9871c47..407a4ff 100644 (file)
@@ -60,8 +60,8 @@ public class JU_AAFSSO {
 
     @Test
     public void test()  {
-        
-    // Note  this is desctructive of personal dirs, and doesn't really test anything.  Needs redoing. 
+
+    // Note  this is desctructive of personal dirs, and doesn't really test anything.  Needs redoing.
 //        AAFSSO sso;
 //        String[] args;
 //
@@ -71,7 +71,7 @@ public class JU_AAFSSO {
 //        };
 //        try {
 //            sso = new AAFSSO(args);
-//        
+//
 //        assertThat(new File(aafDir).exists(), is(true));
 //        assertThat(new File(aafDir + "/.aaf").exists(), is(true));
 //        assertThat(new File(aafDir + "/.aaf/keyfile").exists(), is(true));
@@ -80,7 +80,7 @@ public class JU_AAFSSO {
 //
 //// Not necessarily true
 ////        assertThat(new File(aafDir + "/.aaf/sso.props").exists(), is(true));
-//        
+//
 //        sso.setLogDefault();
 //        sso.setStdErrDefault();
 //
@@ -104,7 +104,7 @@ public class JU_AAFSSO {
 //
 //        sso.addProp("key", "value");
 //        assertThat(sso.err(), is(nullValue()));
-//        
+//
 //        assertThat(sso.useX509(), is(false));
 ////
 ////        sso.close();
index 4e51579..5e715b2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,7 +44,7 @@ public class Sample {
     final private AAFConHttp aafcon;
     final private AAFLurPerm aafLur;
     final private AAFAuthn<?> aafAuthn;
-    
+
     /**
      * This method is to emphasize the importance of not creating the AAFObjects over and over again.
      * @return
@@ -58,15 +58,15 @@ public class Sample {
         aafLur = aafcon.newLur();
         aafAuthn = aafcon.newAuthn(aafLur);
     }
-    
+
     /**
      * Checking credentials outside of HTTP/S presents fewer options initially. There is not, for instance,
-     * the option of using 2-way TLS HTTP/S. 
-     *  
-     *  However, Password Checks are still useful, and, if the Client Certificate could be obtained in other ways, the 
+     * the option of using 2-way TLS HTTP/S.
+     *
+     *  However, Password Checks are still useful, and, if the Client Certificate could be obtained in other ways, the
      *  Interface can be expanded in the future to include Certificates.
-     * @throws CadiException 
-     * @throws IOException 
+     * @throws CadiException
+     * @throws IOException
      */
     public Principal checkUserPass(String fqi, String pass) throws IOException, CadiException {
         String ok = aafAuthn.validate(fqi, pass);
@@ -76,7 +76,7 @@ public class Sample {
              UnAuthPrincipal means that it is not coming from the official Authorization chain.
              This is useful for Security Plugins which don't use Principal as the tie between
              Authentication and Authorization
-            
+
              You can also use this if you want to check Authorization without actually Authenticating, as may
              be the case with certain Onboarding Tooling.
             */
@@ -85,64 +85,64 @@ public class Sample {
             System.out.printf("Failure: %s\n",ok);
             return null;
         }
-        
+
 
     }
 
     /**
      * An example of looking for One Permission within all the permissions user has.  CADI does cache these,
      * so the call is not expensive.
-     * 
-     * Note: If you are using "J2EE" (Servlets), CADI ties this function to the method: 
+     *
+     * Note: If you are using "J2EE" (Servlets), CADI ties this function to the method:
      *    HttpServletRequest.isUserInRole(String user)
-     *    
+     *
      *  The J2EE user can expect that his servlet will NOT be called without a Validated Principal, and that
      *  "isUserInRole()" will validate if the user has the Permission designated.
-     *  
+     *
      */
     public boolean oneAuthorization(Principal fqi, Permission p) {
         return aafLur.fish(fqi, p);
     }
-    
+
     public List<Permission> allAuthorization(Principal fqi) {
         List<Permission> pond = new ArrayList<>();
         aafLur.fishAll(fqi, pond);
         return pond;
     }
-    
-    
+
+
     public static void main(String[] args) {
         // Note: you can pick up Properties from Command line as well as VM Properties
         // Code "user_fqi=... user_pass=..." (where user_pass can be encrypted) in the command line for this sample.
         // Also code "perm=<perm type>|<instance>|<action>" to test a specific Permission
-        PropAccess myAccess = new PropAccess(args); 
+        PropAccess myAccess = new PropAccess(args);
         try {
             /*
              * NOTE:  Do NOT CREATE new aafcon, aafLur and aafAuthn each transaction.  They are built to be
              * reused!
-             * 
+             *
              * This is why this code demonstrates "Sample" as a singleton.
              */
             singleton = new Sample(myAccess);
             String user = myAccess.getProperty("user_fqi");
             String pass= myAccess.getProperty("user_pass");
-            
+
             if (user==null || pass==null) {
                 System.err.println("This Sample class requires properties user_fqi and user_pass");
             } else {
                 pass =  myAccess.decrypt(pass, false); // Note, with "false", decryption will only happen if starts with "enc:"
                 // See the CODE for Java Methods used
                 Principal fqi = Sample.singleton().checkUserPass(user,pass);
-                
+
                 if (fqi==null) {
                     System.out.println("OK, normally, you would cease processing for an "
                             + "unauthenticated user, but for the purpose of Sample, we'll keep going.\n");
                     fqi=new UnAuthPrincipal(user);
                 }
-                
+
                 // AGAIN, NOTE: If your client fails Authentication, the right behavior 99.9%
                 // of the time is to drop the transaction.  We continue for sample only.
-                
+
                 // note, default String for perm
                 String permS = myAccess.getProperty("perm","org.osaaf.aaf.access|*|read");
                 String[] permA = Split.splitTrim('|', permS);
@@ -155,8 +155,8 @@ public class Sample {
                         System.out.printf("%s does NOT have %s\n",fqi.getName(),permS);
                     }
                 }
-                
-                
+
+
                 // Another form, you can get ALL permissions in a list
                 // See the CODE for Java Methods used
                 List<Permission> permL = singleton().allAuthorization(fqi);
index 41be6df..efa0106 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -48,13 +48,13 @@ public class JU_Content {
             "\"m55555@jr583u.cred.test.com 1 Thu Oct 09 12:54:46 CDT 2014\"," +
             "\"m55555@jr583u.cred.test.com 1 Tue Jan 06 05:00:00 CST 2015\"," +
             "\"m55555@jr583u.cred.test.com 1 Wed Jan 07 05:00:00 CST 2015\"]}";
-        
+
         Error err = new Error();
         err.setText("Hello");
         err.getVariables().add("I'm a teapot");
         err.setMessageId("12");
-        
-        
+
+
 //        System.out.println(msg);
         RosettaEnv env = new RosettaEnv();
         RosettaDF<aaf.v2_0.Error> errDF = env.newDataFactory(aaf.v2_0.Error.class);
@@ -62,16 +62,16 @@ public class JU_Content {
         errDF.out(RosettaData.TYPE.JSON);
         RosettaData<Error> data = errDF.newData();
         data.load(err);
-        
+
         @SuppressWarnings("unused")
         String output = data.asString();
 //        System.out.println(output);
-        
+
         data.load(new StringReader(msg));
         err = data.asObject();
         output = err.getText();
 //        System.out.println(output);
     }
-        
+
 
 }
index da85702..1db9317 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,19 +29,19 @@ import org.onap.aaf.cadi.config.SecurityInfoC;
 
 /**
  * AbsAuthentication is a class representing how to Authenticate onto a Client.
- * 
+ *
  * Methods of setting Authentication on a Client vary, so CLIENT is a Generic Type
- * This allows the ability to apply security onto Different Client Types, as they come 
+ * This allows the ability to apply security onto Different Client Types, as they come
  * into vogue, or change over time.
- * 
+ *
  * Password is encrypted at rest.
- *  
+ *
  * @author Jonathan
  *
  * @param <CLIENT>
  */
 public abstract class AbsAuthentication<CLIENT> implements SecuritySetter<CLIENT> {
-    // HTTP Header for Authentication is "Authorization".  This was from an early stage of internet where 
+    // HTTP Header for Authentication is "Authorization".  This was from an early stage of internet where
     // Access by Credential "Authorized" you for everything on the site.  Since those early days, it became
     // clear that "full access" wasn't appropriate, so the split between Authentication and Authorization
     // came into being... But the Header remains.
@@ -57,14 +57,14 @@ public abstract class AbsAuthentication<CLIENT> implements SecuritySetter<CLIENT
     protected final SecurityInfoC<CLIENT> securityInfo;
     protected long lastMiss;
     protected int count;
-    
+
     static {
         try {
             symm = Symm.encrypt.obtain();
         } catch (IOException e) {
             throw new RuntimeException("Cannot create critical internal encryption key",e);
         }
-        
+
     }
 
     public AbsAuthentication(final SecurityInfoC<CLIENT> securityInfo, final String user, final byte[] headValue) throws IOException {
@@ -82,11 +82,11 @@ public abstract class AbsAuthentication<CLIENT> implements SecuritySetter<CLIENT
             return new String(symm.decode(headValue));
         }
     }
-    
+
     protected void setUser(String id) {
         user = id;
     }
-    
+
     @Override
     public String getID() {
         return user;
index baac6da..8023446 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,10 +29,10 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
 
 /**
  * This client represents the ability to Transfer the Identity of the caller to the authenticated
- * user being transferred to.  This ability is critical for App-to-App communication to ensure that 
+ * user being transferred to.  This ability is critical for App-to-App communication to ensure that
  * Authorization can happen on the End-Users' credentials when appropriate, even though Authentication
  * to App1 by App2 must be by App2's credentials.
- *  
+ *
  * @author Jonathan
  *
  * @param <CLIENT>
@@ -59,8 +59,8 @@ public abstract class AbsTransferSS<CLIENT> implements SecuritySetter<CLIENT> {
         if (principal==null) {
             return;
         } else  {
-            value = principal.getName() + ':' + 
-                    app + ':' + 
+            value = principal.getName() + ':' +
+                    app + ':' +
                     principal.tag() + ':' +
                     "AS";
         }
index 1eb8d7c..021229c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 9aa9cad..7a437e3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,7 +44,7 @@ public interface EClient<CT> {
     public<T> Future<T> futureRead(RosettaDF<T> df,Data.TYPE type);
     public<T> Future<T> future(T t);
     public Future<Void> future(HttpServletResponse resp, int expected) throws APIException;
-    
+
     public interface Transfer {
         public void transfer(OutputStream os) throws IOException, APIException;
     }
index 39f8868..de32d95 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,7 +26,7 @@ import org.onap.aaf.cadi.CadiException;
 public abstract class Future<T> {
     public T value;
     public abstract boolean get(int timeout) throws CadiException;
-    
+
     public abstract int code();
     public abstract String body();
     public abstract String header(String tag);
index af97c46..8744e89 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,7 +36,7 @@ public class Holder<T> {
         value = t;
         return t;
     }
-    
+
     public T get() {
         return value;
     }
index 6b486b8..cfc52fb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -94,9 +94,9 @@ public abstract class Rcli<CT> {
         rv.apiVersion = apiVersion;
         return rv;
     }
-    
+
     protected abstract Rcli<CT> clone(URI uri, SecuritySetter<CT> ss);
-    
+
     public abstract void invalidate() throws CadiException;
 
     public Rcli<CT> readTimeout(int millis) {
@@ -118,7 +118,7 @@ public abstract class Rcli<CT> {
         this.apiVersion = apiVersion;
         return this;
     }
-    
+
     public boolean isApiVersion(String prospective) {
         return apiVersion.equals(prospective);
     }
@@ -294,7 +294,7 @@ public abstract class Rcli<CT> {
 
     /**
      * Read String, using POST for keyInfo
-     * 
+     *
      * @param pathinfo
      * @param df
      * @param t
@@ -335,7 +335,7 @@ public abstract class Rcli<CT> {
      */
     public<T,R> Future<R> readPost(String pathinfo, final RosettaDF<T> df, final T t, final RosettaDF<R> resp) throws APIException, CadiException {
         final ParsePath pp = new ParsePath(pathinfo);
-        
+
         EClient<CT> client = client();
         client.setMethod(POST);
         client.addHeader(CONTENT_TYPE,typeString(df.getTypeClass()));
@@ -371,11 +371,11 @@ public abstract class Rcli<CT> {
 
     public Future<String> read(String pathinfo, String accept, String ... headers) throws APIException, CadiException {
         final ParsePath pp = new ParsePath(pathinfo);
-    
+
         EClient<CT> client = client();
         client.setMethod(GET);
         client.addHeader(ACCEPT, accept);
-        
+
         for (int i=1;i<headers.length;i=i+2) {
             client.addHeader(headers[i-1],headers[i]);
         }
@@ -416,7 +416,7 @@ public abstract class Rcli<CT> {
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
         client.setFragment(pp.frag());
-        
+
         client.setPayload(null);
         client.send();
         return client.futureRead(df,type);
@@ -430,7 +430,7 @@ public abstract class Rcli<CT> {
         client.addHeader(ACCEPT, typeString(cls));
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());        
+        client.setFragment(pp.frag());
 
         client.setPayload(null);
         client.send();
@@ -445,7 +445,7 @@ public abstract class Rcli<CT> {
         client.addHeader(CONTENT_TYPE,contentType);
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());        
+        client.setFragment(pp.frag());
         client.setPayload(new EClient.Transfer() {
             @Override
             public void transfer(OutputStream os) throws IOException, APIException {
@@ -455,16 +455,16 @@ public abstract class Rcli<CT> {
         client.send();
         return client.future(t);
     }
-    
+
     public<T> Future<String> updateRespondString(String pathinfo, final RosettaDF<T> df, final T t) throws APIException, CadiException {
         final ParsePath pp = new ParsePath(pathinfo);
-        
+
         EClient<CT> client = client();
         client.setMethod(PUT);
         client.addHeader(CONTENT_TYPE, typeString(df.getTypeClass()));
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());        
+        client.setFragment(pp.frag());
 
         client.setPayload(new EClient.Transfer() {
             @Override
@@ -476,7 +476,7 @@ public abstract class Rcli<CT> {
         client.send();
         return client.futureReadString();
     }
-    
+
     public Future<String> update(String pathinfo, String contentType, EClient.Transfer content) throws APIException, CadiException {
         final ParsePath pp = new ParsePath(pathinfo);
 
@@ -502,8 +502,8 @@ public abstract class Rcli<CT> {
         client.addHeader(CONTENT_TYPE, typeString(df.getTypeClass()));
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());    
-        
+        client.setFragment(pp.frag());
+
         client.setPayload(new EClient.Transfer() {
             @Override
             public void transfer(OutputStream os) throws IOException, APIException {
@@ -513,16 +513,16 @@ public abstract class Rcli<CT> {
         client.send();
         return client.future(t);
     }
-    
+
     public<T> Future<T> update(String pathinfo, Class<?> cls, final RosettaDF<T> df, final T t) throws APIException, CadiException {
         final ParsePath pp = new ParsePath(pathinfo);
-        
+
         EClient<CT> client = client();
         client.setMethod(PUT);
         client.addHeader(CONTENT_TYPE, typeString(cls));
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());    
+        client.setFragment(pp.frag());
 
         client.setPayload(new EClient.Transfer() {
             @Override
@@ -533,7 +533,7 @@ public abstract class Rcli<CT> {
         client.send();
         return client.future(t);
     }
-    
+
 
 
     /**
@@ -553,7 +553,7 @@ public abstract class Rcli<CT> {
         client.addHeader(CONTENT_TYPE, typeString(Void.class));
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());    
+        client.setFragment(pp.frag());
 
 //        client.setPayload(new EClient.Transfer() {
 //            @Override
@@ -563,7 +563,7 @@ public abstract class Rcli<CT> {
         client.send();
         return client.future(null);
     }
-    
+
 
     public<T> Future<T> delete(String pathinfo, String contentType, final RosettaDF<T> df, final T t) throws APIException, CadiException {
         final ParsePath pp = new ParsePath(pathinfo);
@@ -573,7 +573,7 @@ public abstract class Rcli<CT> {
         client.addHeader(CONTENT_TYPE, contentType);
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());    
+        client.setFragment(pp.frag());
 
         client.setPayload(new EClient.Transfer() {
             @Override
@@ -593,7 +593,7 @@ public abstract class Rcli<CT> {
         client.addHeader(CONTENT_TYPE, typeString(cls));
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());    
+        client.setFragment(pp.frag());
         client.setPayload(new EClient.Transfer() {
             @Override
             public void transfer(OutputStream os) throws IOException, APIException {
@@ -612,7 +612,7 @@ public abstract class Rcli<CT> {
         client.addHeader(CONTENT_TYPE, typeString(df.getTypeClass()));
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());    
+        client.setFragment(pp.frag());
         client.setPayload(new EClient.Transfer() {
             @Override
             public void transfer(OutputStream os) throws IOException, APIException {
@@ -633,7 +633,7 @@ public abstract class Rcli<CT> {
         client.addHeader(CONTENT_TYPE, typeString(cls));
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());    
+        client.setFragment(pp.frag());
 
         client.setPayload(null);
         client.send();
@@ -648,7 +648,7 @@ public abstract class Rcli<CT> {
         client.addHeader(CONTENT_TYPE, contentType);
         client.setPathInfo(pp.path());
         client.setQueryParams(pp.query());
-        client.setFragment(pp.frag());    
+        client.setFragment(pp.frag());
 
         client.setPayload(null);
         client.send();
@@ -681,7 +681,7 @@ public abstract class Rcli<CT> {
                     int read;
                     // reuse Buffers
                     Pooled<byte[]> pbuff = buffPool.get();
-                    try { 
+                    try {
                         while ((read=is.read(pbuff.content))>=0) {
                             os.write(pbuff.content,0,read);
                         }
@@ -713,13 +713,13 @@ public abstract class Rcli<CT> {
                 queryEnd = pound>=0?pound:path.length();
                 if (oneCallQueryParams==null) {
                     if (query>=0) {
-                        queryParams = path.substring(query+1,queryEnd); 
+                        queryParams = path.substring(query+1,queryEnd);
                     } else {
                         queryParams=null;
                     }
                 } else {
                     if (query>=0) {
-                        queryParams = oneCallQueryParams + '&' + path.substring(query+1,queryEnd); 
+                        queryParams = oneCallQueryParams + '&' + path.substring(query+1,queryEnd);
                     } else {
                         queryParams = oneCallQueryParams;
                     }
@@ -727,7 +727,7 @@ public abstract class Rcli<CT> {
                 }
             }
         }
-        
+
         public String path() {
             if (query>=0) {
                 if (pound>=0) {
@@ -740,11 +740,11 @@ public abstract class Rcli<CT> {
                 return path;
             }
         }
-        
+
         public String query() {
             return queryParams;
         }
-        
+
         public String frag() {
             if (pound>=0) {
                 return path.substring(pound+1);
index 0e2a4b1..5b8bf92 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,7 +35,7 @@ public class Result<T> {
     public static<T> Result<T> ok(int code,T t) {
         return new Result<T>(code,t,null);
     }
-    
+
     public static<T> Result<T> err(int code,String body) {
         return new Result<T>(code,null,body);
     }
@@ -47,7 +47,7 @@ public class Result<T> {
     public boolean isOK() {
         return error==null;
     }
-    
+
     public String toString() {
         StringBuilder sb = new StringBuilder("Code: ");
         sb.append(code);
index 58e7718..6d85a42 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,7 +28,7 @@ import org.onap.aaf.cadi.Locator;
 import org.onap.aaf.misc.env.APIException;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  * @param <RT>
@@ -38,7 +38,7 @@ public abstract class Retryable<RET> {
     // be able to hold state for consistent Connections.  Not required for all connection types.
     public Rcli<?> lastClient;
     private Locator.Item item;
-    
+
     public Retryable() {
         lastClient = null;
         item = null;
@@ -57,7 +57,7 @@ public abstract class Retryable<RET> {
     public Locator.Item item() {
         return item;
     }
-    
+
     public abstract RET code(Rcli<?> client) throws CadiException, ConnectException, APIException;
 
     /**
index c2f5645..744aba4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,7 +31,7 @@ import org.onap.aaf.cadi.client.AbsAuthentication;
 import org.onap.aaf.cadi.config.SecurityInfoC;
 
 public class HAuthorizationHeader extends AbsAuthentication<HttpURLConnection> {
-    
+
     public HAuthorizationHeader(SecurityInfoC<HttpURLConnection> si, String user, String headValue) throws IOException {
         super(si,user,headValue==null?null:headValue.getBytes());
     }
index 38465da..d280b9c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,12 +42,12 @@ public class HBasicAuthSS extends HAuthorizationHeader implements BasicAuth {
         this(si,si.access.getProperty(Config.AAF_APPID, null),
                 si.access.decrypt(si.access.getProperty(Config.AAF_APPPASS, null), false));
     }
-    
+
     public HBasicAuthSS(SecurityInfoC<HttpURLConnection> si, boolean setDefault) throws IOException {
         this(si,si.access.getProperty(Config.AAF_APPID, null),
                 si.access.decrypt(si.access.getProperty(Config.AAF_APPPASS, null), false),setDefault);
     }
-    
+
 
     public HBasicAuthSS(SecurityInfoC<HttpURLConnection> si, String user, String pass, boolean asDefault) throws IOException {
         this(si, user,pass);
@@ -55,11 +55,11 @@ public class HBasicAuthSS extends HAuthorizationHeader implements BasicAuth {
             si.set(this);
         }
     }
-    
+
     public HBasicAuthSS(BasicPrincipal bp, SecurityInfoC<HttpURLConnection> si) throws IOException {
         this(si, bp.getName(),new String(bp.getCred()));
     }
-    
+
     public HBasicAuthSS(BasicPrincipal bp, SecurityInfoC<HttpURLConnection> si, boolean asDefault) throws IOException {
         this(si, bp.getName(),new String(bp.getCred()));
         if (asDefault) {
index 61112c4..cef4ae4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -49,7 +49,7 @@ import org.onap.aaf.misc.rosetta.env.RosettaDF;
 /**
  * Low Level Http Client Mechanism. Chances are, you want the high level "HRcli"
  * for Rosetta Object Translation
- * 
+ *
  * @author Jonathan
  *
  */
@@ -72,7 +72,7 @@ public class HClient implements EClient<HttpURLConnection> {
         this.uri = uri;
         this.ss = ss;
         this.connectTimeout = connectTimeout;
-        pathinfo = query = fragment = null; 
+        pathinfo = query = fragment = null;
     }
 
     @Override
@@ -89,7 +89,7 @@ public class HClient implements EClient<HttpURLConnection> {
     public void setPayload(Transfer transfer) {
         this.transfer = transfer;
     }
-    
+
     @Override
     public void addHeader(String tag, String value) {
         if (headers == null)
@@ -133,10 +133,10 @@ public class HClient implements EClient<HttpURLConnection> {
             huc = getConnection(sendURI, pi);
             huc.setRequestMethod(meth);
             if (ss!=null) {
-                ss.setSecurity(huc); 
+                ss.setSecurity(huc);
             }
             if (headers != null)
-                for (Header d : headers) {                    
+                for (Header d : headers) {
                     huc.addRequestProperty(d.tag, d.value);
                 }
             huc.setDoInput(true);
@@ -164,11 +164,11 @@ public class HClient implements EClient<HttpURLConnection> {
             pathinfo = query = fragment = "";
         }
     }
-    
+
     public URI getURI() {
         return uri;
     }
-    
+
     public void setURI(URI uri) {
         this.uri = uri;
     }
@@ -176,31 +176,31 @@ public class HClient implements EClient<HttpURLConnection> {
     public int timeout() {
         return connectTimeout;
     }
-    
+
     protected HttpURLConnection getConnection(URI uri, StringBuilder pi) throws IOException, URISyntaxException {
         URL url = new URI(
-                uri.getScheme(), 
+                uri.getScheme(),
                 uri.getAuthority(),
-                pi==null?uri.getPath():pi.toString(), 
+                pi==null?uri.getPath():pi.toString(),
                 query,
                 fragment).toURL();
         return (HttpURLConnection) url.openConnection();
     }
-    
+
      public abstract class HFuture<T> extends Future<T> {
         protected HttpURLConnection huc;
         protected int respCode;
         protected IOException exception;
         protected StringBuilder errContent;
-    
+
         public HFuture(final HttpURLConnection huc) {
             this.huc = huc;
         }
-    
+
         protected boolean evalInfo(HttpURLConnection huc) throws APIException, IOException{
             return respCode == 200;
         };
-    
+
         @Override
         public final boolean get(int timeout) throws CadiException {
             try {
@@ -219,7 +219,7 @@ public class HClient implements EClient<HttpURLConnection> {
                 close();
             }
         }
-    
+
         private void extractError() {
             InputStream is = huc.getErrorStream();
             try {
@@ -237,7 +237,7 @@ public class HClient implements EClient<HttpURLConnection> {
                 exception = e;
             }
         }
-    
+
         // Typically only used by Read
         public StringBuilder inputStreamToString(InputStream is) {
             // Avoids Carriage returns, and is reasonably efficient, given
@@ -260,26 +260,26 @@ public class HClient implements EClient<HttpURLConnection> {
                 return null;
             }
         }
-    
-    
+
+
         @Override
         public int code() {
             return respCode;
         }
-    
+
         public HttpURLConnection huc() {
             return huc;
         }
-    
+
         public IOException exception() {
             return exception;
         }
-    
+
         @Override
         public String header(String tag) {
             return huc.getHeaderField(tag);
         }
-    
+
         public void close() {
             if (huc!=null) {
                 huc.disconnect();
@@ -393,7 +393,7 @@ public class HClient implements EClient<HttpURLConnection> {
                     is = huc.getInputStream();
                     // reuse Buffers
                     Pooled<byte[]> pbuff = Rcli.buffPool.get();
-                    try { 
+                    try {
                         while ((read=is.read(pbuff.content))>=0) {
                             os.write(pbuff.content,0,read);
                         }
@@ -409,7 +409,7 @@ public class HClient implements EClient<HttpURLConnection> {
                     if (is!=null) {
                         errContent = new StringBuilder();
                         Pooled<byte[]> pbuff = Rcli.buffPool.get();
-                        try { 
+                        try {
                             while ((read=is.read(pbuff.content))>=0) {
                                 os.write(pbuff.content,0,read);
                             }
@@ -436,12 +436,12 @@ public class HClient implements EClient<HttpURLConnection> {
             this.tag = t;
             this.value = v;
         }
-        
+
         public String toString() {
             return tag + '=' + value;
         }
     }
-    
+
     public String toString() {
         return "HttpURLConnection Client configured to " + uri.toString();
     }
index 19e40b3..1d1f273 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -46,7 +46,7 @@ public class HMangr {
     private int readTimeout, connectionTimeout;
     public final Locator<URI> loc;
     private Access access;
-    
+
     public HMangr(Access access, Locator<URI> loc) throws LocatorException {
         readTimeout = 10000;
         connectionTimeout=3000;
@@ -58,18 +58,18 @@ public class HMangr {
     }
 
     /**
-     * Reuse the same service.  This is helpful for multiple calls that change service side cached data so that 
+     * Reuse the same service.  This is helpful for multiple calls that change service side cached data so that
      * there is not a speed issue.
-     * 
+     *
      * If the service goes down, another service will be substituted, if available.
-     * 
+     *
      * @param access
      * @param loc
      * @param ss
      * @param item
      * @param retryable
      * @return
-     * @throws URISyntaxException 
+     * @throws URISyntaxException
      * @throws Exception
      */
     public<RET> RET same(SecuritySetter<HttpURLConnection> ss, Retryable<RET> retryable) throws APIException, CadiException, LocatorException {
@@ -107,7 +107,7 @@ public class HMangr {
                 } else {
                     client.setSecuritySetter(ss);
                 }
-                
+
                 retry = false;
                 try {
                     ret = retryable.code(client);
@@ -118,14 +118,14 @@ public class HMangr {
                     try {
                         Throwable ec = e.getCause();
                         if (ec instanceof java.net.ConnectException) {
-                            if (client!=null && loc.hasItems()) { 
+                            if (client!=null && loc.hasItems()) {
                                 access.log(Level.WARN,"Connection refused, trying next available service");
                                 retry = true;
                             } else {
                                 throw new CadiException("Connection refused, no more services to try");
                             }
                         } else if (ec instanceof java.net.SocketException) {
-                            if (client!=null && loc.hasItems()) { 
+                            if (client!=null && loc.hasItems()) {
                                 access.log(Level.WARN,"Socket prematurely closed, trying next available service");
                                 retry = true;
                             } else {
@@ -155,8 +155,8 @@ public class HMangr {
         }
         return ret;
     }
-    
-    
+
+
     public<RET> RET best(SecuritySetter<HttpURLConnection> ss, Retryable<RET> retryable) throws LocatorException, CadiException, APIException {
         retryable.item(loc.best());
         return same(ss,retryable);
@@ -168,7 +168,7 @@ public class HMangr {
     public<RET> RET all(SecuritySetter<HttpURLConnection> ss, Retryable<RET> retryable,boolean notify) throws LocatorException, CadiException, APIException {
         return call(ss,retryable,notify,null);
     }
-    
+
     public <RET> RET allExcept(SecuritySetter<HttpURLConnection> ss, Retryable<RET> retryable,boolean notify, String selfHost) throws LocatorException, CadiException, APIException {
         return call(ss,retryable,notify,selfHost);
     }
@@ -211,12 +211,12 @@ public class HMangr {
                 access.log(Level.ERROR,"Connection to",uri,"refused during call to all services");
             }
         }
-            
-        if (ret == null && notify) 
+
+        if (ret == null && notify)
             throw new LocatorException("No available clients to call");
         return ret;
     }
-    
+
 
     public void close() {
         // TODO Anything here?
@@ -230,7 +230,7 @@ public class HMangr {
     public int readTimeout() {
         return readTimeout;
     }
-    
+
     public void connectionTimeout(int t) {
         connectionTimeout = t;
     }
index 1fecce2..2b6a9ac 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index cbd7b33..70ca490 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,9 +36,9 @@ import org.onap.aaf.misc.env.Data.TYPE;
 
 /**
  * Rosetta Client
- * 
+ *
  * JAXB defined JSON or XML over HTTP/S
- * 
+ *
  * @author Jonathan
  *
  * @param <T>
@@ -74,10 +74,10 @@ public class HRcli extends Rcli<HttpURLConnection> {
 
 
     /**
-     * 
+     *
      * @return
-     * @throws APIException 
-     * @throws DME2Exception 
+     * @throws APIException
+     * @throws DME2Exception
      */
     protected EClient<HttpURLConnection> client() throws CadiException {
         try {
@@ -93,7 +93,7 @@ public class HRcli extends Rcli<HttpURLConnection> {
             throw new CadiException(e);
         }
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.cadi.client.Rcli#setSecuritySetter(org.onap.aaf.cadi.SecuritySetter)
      */
@@ -117,7 +117,7 @@ public class HRcli extends Rcli<HttpURLConnection> {
             throw new CadiException(e);
         }
     }
-    
+
     public HRcli setManager(HMangr hman) {
         this.hman = hman;
         return this;
@@ -126,5 +126,5 @@ public class HRcli extends Rcli<HttpURLConnection> {
     public String toString() {
         return uri.toString();
     }
-    
+
 }
index 7c7d391..0da76e9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,7 @@ import org.onap.aaf.misc.env.APIException;
 
 /**
  * This class will pick out the best default SS for Clients per Client type
- * 
+ *
  * @author Instrumental
  *
  */
index cd20585..99b73ed 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index f68c1f6..d8c8d5a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ public class HTransferSS extends AbsTransferSS<HttpURLConnection> {
     public HTransferSS(TaggedPrincipal principal, String app) throws IOException {
         super(principal, app);
     }
-    
+
     public HTransferSS(TaggedPrincipal principal, String app, SecurityInfoC<HttpURLConnection> si) {
         super(principal, app, si);
     }
@@ -55,7 +55,7 @@ public class HTransferSS extends AbsTransferSS<HttpURLConnection> {
             securityInfo.setSocketFactoryOn((HttpsURLConnection)huc);
         }
     }
-    
+
     @Override
     public int setLastResponse(int respCode) {
         return 0;
index f441186..89c11b6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -57,11 +57,11 @@ public class HX509SS implements SecuritySetter<HttpURLConnection> {
     public HX509SS(SecurityInfoC<HttpURLConnection> si) throws APIException, CadiException {
         this(null,si,false);
     }
-    
+
     public HX509SS(SecurityInfoC<HttpURLConnection> si, boolean asDefault) throws APIException, CadiException {
         this(null,si,asDefault);
     }
-    
+
     public HX509SS(final String sendAlias, SecurityInfoC<HttpURLConnection> si) throws APIException, CadiException {
         this(sendAlias, si, false);
     }
@@ -75,7 +75,7 @@ public class HX509SS implements SecuritySetter<HttpURLConnection> {
                 alias = si.defaultAlias;
             }
         }
-        
+
         priv=null;
         X509KeyManager[] xkms = si.getKeyManagers();
         if (xkms==null || xkms.length==0) {
@@ -88,9 +88,9 @@ public class HX509SS implements SecuritySetter<HttpURLConnection> {
             for (int i=0;cert==null&&i<xkms.length;++i) {
                 X509Certificate[] chain = xkms[i].getCertificateChain(alias);
                 if (chain!=null&&chain.length>0) {
-                    algo = chain[0].getSigAlgName(); 
+                    algo = chain[0].getSigAlgName();
                     pub = chain[0].getEncoded();
-                    ByteArrayOutputStream baos = new ByteArrayOutputStream(pub.length*2); 
+                    ByteArrayOutputStream baos = new ByteArrayOutputStream(pub.length*2);
                     ByteArrayInputStream bais = new ByteArrayInputStream(pub);
                     Symm.base64noSplit.encode(bais,baos,X509);
                     cert = baos.toString();
@@ -111,32 +111,32 @@ public class HX509SS implements SecuritySetter<HttpURLConnection> {
         }
         if (alias==null) { // must be a one-way
             huc.setRequestProperty(AbsAuthentication.AUTHORIZATION, cert);
-            
+
             // Test Signed content
             try {
                 String data = "SignedContent["+ inc() + ']' + Chrono.dateTime();
                 huc.setRequestProperty("Data", data);
-                
+
                 Signature sig = Signature.getInstance(algo);
                 sig.initSign(priv);
                 sig.update(data.getBytes());
                 byte[] signature = sig.sign();
-                
+
                 ByteArrayOutputStream baos = new ByteArrayOutputStream((int)(signature.length*1.3));
                 ByteArrayInputStream bais = new ByteArrayInputStream(signature);
                 Symm.base64noSplit.encode(bais, baos);
                 huc.setRequestProperty("Signature", new String(baos.toByteArray()));
-                
+
             } catch (Exception e) {
                 throw new CadiException(e);
             }
         }
     }
-    
+
     private synchronized int inc() {
         return ++count;
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.cadi.SecuritySetter#getID()
      */
@@ -144,7 +144,7 @@ public class HX509SS implements SecuritySetter<HttpURLConnection> {
     public String getID() {
         return alias;
     }
-    
+
     @Override
     public int setLastResponse(int respCode) {
         return 0;
index 8053dab..c0b9f37 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ import org.onap.aaf.cadi.LocatorException;
 public class DNSLocator implements SizedLocator<URI> {
     private static enum Status {UNTRIED, OK, INVALID, SLOW};
     private static final int CHECK_TIME = 3000;
-    
+
     private String host, protocol;
     private Access access;
     private Host[] hosts;
@@ -41,7 +41,7 @@ public class DNSLocator implements SizedLocator<URI> {
     private String suffix;
 
     private int size = 1; // initial, until refreshed.
-    
+
     public DNSLocator(Access access, String protocol, String host, String range) {
         this.host = host;
         this.protocol = protocol;
@@ -164,7 +164,7 @@ public class DNSLocator implements SizedLocator<URI> {
         }
         return false;
     }
-    
+
     private String parseHostAndPorts(String aaf_locate, int _start, int defaultPort) throws LocatorException {
         int slash, start;
         int colon = aaf_locate.indexOf(':',_start);
@@ -193,7 +193,7 @@ public class DNSLocator implements SizedLocator<URI> {
                 if(slash>=0) {
                     suffix = aaf_locate.substring(slash);
                 }
-                
+
             } else {
                 slash = aaf_locate.indexOf('/', start);
                 if (slash == start) {
@@ -211,7 +211,7 @@ public class DNSLocator implements SizedLocator<URI> {
             host = slash<_start?aaf_locate.substring(_start):aaf_locate.substring(_start,slash);
             startPort = endPort = defaultPort;
         }
-        
+
         return host;
     }
 
@@ -219,18 +219,18 @@ public class DNSLocator implements SizedLocator<URI> {
         private URI uri;
         private InetAddress ia;
         private Status status;
-        
+
         public Host(InetAddress inetAddress, int port, String suffix) throws URISyntaxException {
             ia = inetAddress;
             uri = new URI(protocol,null,inetAddress.getCanonicalHostName(),port,suffix,null,null);
             status = Status.UNTRIED;
         }
-        
+
         public String toString() {
             return uri.toString() + " - " + status.name();
         }
     }
-    
+
     private class DLItem implements Item {
         public DLItem(int i) {
             cnt = i;
@@ -238,7 +238,7 @@ public class DNSLocator implements SizedLocator<URI> {
 
         private int cnt;
     }
-    
+
     public void destroy() {}
 
     public int size() {
index 488d35d..57eca41 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,7 +35,7 @@ public class HClientHotPeerLocator extends HotPeerLocator<HClient> {
     public HClientHotPeerLocator(Access access, String urlstr, long invalidateTime, String localLatitude,
             String localLongitude, HX509SS ss) throws LocatorException {
         super(access, urlstr, invalidateTime, localLatitude, localLongitude);
-        
+
         this.ss = ss;
     }
 
index 3488913..d332a7f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -54,7 +54,7 @@ public class PropertyLocator implements Locator<URI> {
     }
     /**
      * comma delimited root url list
-     * 
+     *
      * @param locList
      * @throws LocatorException
      */
@@ -67,9 +67,9 @@ public class PropertyLocator implements Locator<URI> {
         }
         String[] locarray = Split.split(',',locList);
         List<URI> uriList = new ArrayList<>();
-        
+
         random = new SecureRandom();
-        
+
         for (int i=0;i<locarray.length;++i) {
             try {
                 int range = locarray[i].indexOf(":[");
@@ -234,7 +234,7 @@ public class PropertyLocator implements Locator<URI> {
             } else {
                 newCurrent = current;
             }
-    
+
             for (int i=0; i< end; ++i) {
                 if (newCurrent[i]==null){
                     newCurrent[i]=new PLItem(i);
@@ -257,14 +257,14 @@ public class PropertyLocator implements Locator<URI> {
     protected Socket createSocket() {
         return new Socket();
     }
-    
+
     private class PLItem implements Item {
         public int idx,order;
-        
+
         public PLItem(int i) {
             idx = order =i;
         }
-        
+
         public String toString() {
             return "Item: " + idx + " order: " + order;
         }
@@ -294,7 +294,7 @@ public class PropertyLocator implements Locator<URI> {
         }
         return sb.toString();
     }
-    
+
     public void destroy() {
     }
 }
index b0654cf..862868f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,19 +28,19 @@ import org.onap.aaf.cadi.LocatorException;
 
 public class SingleEndpointLocator implements SizedLocator<URI> {
     private final URI uri;
-    private final static Item item = new Item() {};  
+    private final static Item item = new Item() {};
     private Date noRetryUntil;
-    
+
     public SingleEndpointLocator(final URI uri) {
         this.uri = uri;
     }
-    
+
     public SingleEndpointLocator(final String endpoint) throws LocatorException {
         try {
-                       this.uri = new URI(endpoint);
-               } catch (URISyntaxException e) {
-                       throw new LocatorException(e);
-               }
+            this.uri = new URI(endpoint);
+        } catch (URISyntaxException e) {
+            throw new LocatorException(e);
+        }
     }
 
     @Override
@@ -63,7 +63,7 @@ public class SingleEndpointLocator implements SizedLocator<URI> {
     @Override
     public void invalidate(Item item) throws LocatorException {
         // one minute timeout, because there is no other item
-        noRetryUntil = new Date(System.currentTimeMillis()+60000); 
+        noRetryUntil = new Date(System.currentTimeMillis()+60000);
     }
 
     @Override
@@ -87,10 +87,10 @@ public class SingleEndpointLocator implements SizedLocator<URI> {
         // Never refreshed
         return true;
     }
-    
+
     @Override
     public int size() {
-       return 1;
+        return 1;
     }
 
     @Override
index 65a3473..4079264 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,5 +24,5 @@ package org.onap.aaf.cadi.locator;
 import org.onap.aaf.cadi.Locator;
 
 public interface SizedLocator<T> extends Locator<T> {
-       public abstract int size();
+    public abstract int size();
 }
index 27eb507..f72e529 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,33 +24,33 @@ package org.onap.aaf.cadi.routing;
 import org.onap.aaf.misc.env.util.Split;
 
 public class GreatCircle {
-    // Note: multiplying by this constant is faster than calling Math equivalent function 
+    // Note: multiplying by this constant is faster than calling Math equivalent function
     private static final double DEGREES_2_RADIANS = Math.PI/180.0;
-    
+
     public static final double DEGREES_2_NM = 60;
     public static final double DEGREES_2_KM = DEGREES_2_NM * 1.852; // 1.852 is exact ratio per 1929 Standard Treaty, adopted US 1954
-    public static final double DEGREES_2_MI = DEGREES_2_NM * 1.1507795; 
-    
+    public static final double DEGREES_2_MI = DEGREES_2_NM * 1.1507795;
+
     /**
-     * 
+     *
      * Calculate the length of an arc on a perfect sphere based on Latitude and Longitudes of two points
      *    Parameters are in Degrees (i.e. the coordinate system you get from GPS, Mapping WebSites, Phones, etc)
-     *    
+     *
      *         L1 = Latitude of point A
      *      G1 = Longitude of point A
      *         L2 = Latitude of point B
      *      G2 = Longitude of point B
-     *      
+     *
      *      d  = acos (sin(L1)*sin(L2) + cos(L1)*cos(L2)*cos(G1 - G2))
-     * 
+     *
         * Returns answer in Degrees
-        * 
+        *
      * Since there are 60 degrees per nautical miles, you can convert to NM by multiplying by 60
-     * 
-     * Essential formula from a Princeton website, the "Law of Cosines" method.  
-     * 
+     *
+     * Essential formula from a Princeton website, the "Law of Cosines" method.
+     *
      * Refactored cleaned up for speed Jonathan 3/8/2013
-     * 
+     *
      * @param latA
      * @param lonA
      * @param latB
@@ -66,19 +66,19 @@ public class GreatCircle {
         lonB *= DEGREES_2_RADIANS;
 
         return Math.acos(
-                Math.sin(latA) * Math.sin(latB) + 
+                Math.sin(latA) * Math.sin(latB) +
                 Math.cos(latA) * Math.cos(latB) * Math.cos(lonA-lonB)
             )
             / DEGREES_2_RADIANS;
     }
-    
-    /** 
+
+    /**
      * Convert from "Lat,Long Lat,Long" String format
      *              "Lat,Long,Lat,Long" Format
      *           or all four entries "Lat Long Lat Long"
-     * 
+     *
      * (Convenience function)
-     * 
+     *
      * Since Distance is positive, a "-1" indicates an error in String formatting
      */
     public static double calc(String ... coords) {
@@ -111,7 +111,7 @@ public class GreatCircle {
                     Double.parseDouble(coords[2]),
                     Double.parseDouble(coords[3])
                     );
-                
+
             default:
                 return -1;
             }
@@ -124,7 +124,7 @@ public class GreatCircle {
 
 ///**
 //* Haverside method, from Princeton
-//* 
+//*
 //* @param alat
 //* @param alon
 //* @param blat
@@ -169,16 +169,16 @@ public class GreatCircle {
 //    alon *= DEGREES_2_RADIANS;
 //    blat *= DEGREES_2_RADIANS;
 //    blon *= DEGREES_2_RADIANS;
-//    
+//
 //    // Reused values
 //    double cosAlat,cosBlat;
-//    
+//
 //    return Math.acos(
 //        ((cosAlat=Math.cos(alat))*Math.cos(alon)*(cosBlat=Math.cos(blat))*Math.cos(blon)) +
 //        (cosAlat*Math.sin(alon)*cosBlat*Math.sin(blon)) +
 //        (Math.sin(alat)*Math.sin(blat))
 //        )/DEGREES_2_RADIANS;
-//    
+//
 //}
 
 /*
index 65daa7b..9c293c9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,20 +34,20 @@ import java.io.PrintStream;
 import java.net.HttpURLConnection;
 
 public class JU_AbsAuthentication {
-    
+
     private final static String ID = "id";
     private final static String PASSWORD = "password";
     private final static String WARNING = "Your service has 1000 consecutive bad service " +
                                             "logins to AAF. AAF Access will be disabled after 10000\n";
-    
+
     private static ByteArrayOutputStream errStream;
-    
+
     @Before
     public void setup() {
         errStream = new ByteArrayOutputStream();
         System.setErr(new PrintStream(errStream));
     }
-    
+
     @After
     public void tearDown() {
         System.setErr(System.err);
@@ -59,7 +59,7 @@ public class JU_AbsAuthentication {
         assertThat(stub.getID(), is(nullValue()));
         assertThat(stub.headValue(), is(""));
         assertThat(stub.count(), is(0));
-        
+
         stub.setUser(ID);
         assertThat(stub.getID(), is(ID));
 
@@ -67,7 +67,7 @@ public class JU_AbsAuthentication {
         assertThat(stub.getID(), is(ID));
         assertThat(stub.headValue(), is(PASSWORD));
         assertThat(stub.count(), is(0));
-        
+
         assertThat(stub.setLastResponse(200), is(0));
         assertThat(stub.isDenied(), is(false));
 
@@ -81,12 +81,12 @@ public class JU_AbsAuthentication {
         stub.setCount(999);
         assertThat(stub.setLastResponse(401), is(1000));
         assertThat(errStream.toString(), is(WARNING));
-        
+
         // coverage...
         stub.setLastMiss(1);
         assertThat(stub.isDenied(), is(false));
     }
-    
+
     private class AuthStub extends AbsAuthentication<HttpURLConnection> {
 
         public AuthStub(SecurityInfoC<HttpURLConnection> securityInfo, String user, byte[] headValue)
@@ -95,7 +95,7 @@ public class JU_AbsAuthentication {
         @Override public void setSecurity(HttpURLConnection client) throws CadiException { }
         @Override public void setUser(String id) { super.setUser(id); }
         @Override public String headValue() throws IOException { return super.headValue(); }
-        
+
         public void setLastMiss(long lastMiss) { this.lastMiss = lastMiss; }
         public void setCount(int count) { this.count = count; }
     }
index c772077..6d09b37 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,18 +34,18 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
 import java.net.HttpURLConnection;
 
 public class JU_AbsTransferSS {
-    
+
     @Mock TaggedPrincipal princMock;
     @Mock SecurityInfoC<HttpURLConnection> siMock;
-    
+
     private static final String princName = "name";
     private static final String princTag = "tag";
     private static final String app = "app";
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
-        
+
         when(princMock.getName()).thenReturn(princName);
         when(princMock.tag()).thenReturn(princTag);
     }
@@ -55,12 +55,12 @@ public class JU_AbsTransferSS {
         TransferSSStub stub = new TransferSSStub(princMock, app);
         assertThat(stub.getID(), is(princName));
         assertThat(stub.getValue(), is(princName + ':' + app + ':' + princTag + ':' + "AS"));
-        
+
         stub = new TransferSSStub(null, app, siMock);
         assertThat(stub.getID(), is(""));
         assertThat(stub.getValue(), is(nullValue()));
     }
-    
+
     private class TransferSSStub extends AbsTransferSS<HttpURLConnection> {
         public TransferSSStub(TaggedPrincipal principal, String app) { super(principal, app); }
         public TransferSSStub(TaggedPrincipal principal, String app, SecurityInfoC<HttpURLConnection> si) { super(principal, app, si); }
index 97fa9d2..a631dfb 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,11 +34,11 @@ public class JU_Future {
         @SuppressWarnings("unused")
         Future<Integer> f = new FutureStub();
     }
-    
+
     private class FutureStub extends Future<Integer> {
-        @Override public boolean get(int timeout) throws CadiException { return false; } 
-        @Override public int code() { return 0; } 
-        @Override public String body() { return null; } 
+        @Override public boolean get(int timeout) throws CadiException { return false; }
+        @Override public int code() { return 0; }
+        @Override public String body() { return null; }
         @Override public String header(String tag) { return null; }
     }
 
index 6412d24..d8c5a59 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -37,7 +37,7 @@ public class JU_Holder {
         Holder<String> holder = new Holder<String>(str1);
         assertThat(holder.get(), is(str1));
         assertThat(holder.toString(), is(str1));
-        
+
         holder.set(str2);
         assertThat(holder.get(), is(str2));
         assertThat(holder.toString(), is(str2));
index d33811e..8fe0190 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -61,24 +61,24 @@ public class JU_Rcli {
     @Mock HttpServletRequest reqMock;
     @Mock HttpServletResponse respMock;
     @Mock ServletInputStream isMock;
-    
+
     private final static String uriString = "example.com";
     private final static String apiVersion = "v1.0";
     private final static String contentType = "contentType";
-    
+
     private static URI uri;
     private static Enumeration<String> enumeration;
 
     private Client client;
-    
+
     @Before
     public void setup() throws URISyntaxException, IOException {
         MockitoAnnotations.initMocks(this);
-        
+
         when(dfMock.getTypeClass()).thenReturn(HttpURLConnection.class);
         when(dfMock.newData()).thenReturn(dataMock);
         when(dataMock.out((TYPE) any())).thenReturn(dataMock);
-        
+
         when(reqMock.getInputStream()).thenReturn(isMock);
         when(isMock.read((byte[]) any())).thenReturn(-1);
 
@@ -86,7 +86,7 @@ public class JU_Rcli {
         enumeration = new CustomEnumeration();
         client = new Client();
     }
-    
+
     @Test
     public void createTest() throws APIException, CadiException {
         RcliStub rcli = new RcliStub(uri);
@@ -112,7 +112,7 @@ public class JU_Rcli {
         rcli.create("No question mark", contentType);
         rcli.create("question?mark", contentType);
     }
-    
+
     @Test
     public void postFormTest() throws APIException, CadiException {
         RcliStub rcli = new RcliStub(uri);
@@ -121,7 +121,7 @@ public class JU_Rcli {
         rcli.postForm(null, dfMock);
         rcli.postForm("No question mark", dfMock);
         rcli.postForm("question?mark", dfMock);
-        
+
         rcli.type(Data.TYPE.JSON);
         rcli.postForm("question?mark", dfMock);
 
@@ -145,7 +145,7 @@ public class JU_Rcli {
 
         rcli.readPost("First string", "Second string");
     }
-    
+
     @Test
     public void readTest() throws APIException, CadiException {
         RcliStub rcli = new RcliStub(uri);
@@ -189,7 +189,7 @@ public class JU_Rcli {
         when(reqMock.getRequestURI()).thenReturn(uriString);
         when(reqMock.getHeaderNames()).thenReturn(enumeration);
         rcli.transfer(reqMock, respMock, "string", 200);
-        
+
         // coverage...
         when(reqMock.getMethod()).thenReturn("GET");
         rcli.transfer(reqMock, respMock, "string", 200);
@@ -207,13 +207,13 @@ public class JU_Rcli {
     public void accessorMutatorTest() throws URISyntaxException {
         RcliStub rcli = new RcliStub();
         Rcli<?> rcliClone = rcli.forUser(null);
-        
+
         rcli = new RcliStub(uri);
         assertThat(rcli.toString(), is(uriString));
         assertThat(rcli.getURI(), is(uri));
         assertThat(rcli.getReadTimeout(), is(5000));
         assertThat(rcli.getConnectionTimeout(), is(3000));
-        
+
         rcli.connectionTimeout(3001);
         assertThat(rcli.getConnectionTimeout(), is(3001));
         rcli.readTimeout(5001);
@@ -224,7 +224,7 @@ public class JU_Rcli {
         assertThat(rcli.typeString(HttpURLConnection.class), is("application/HttpURLConnection+xml;version=" + apiVersion));
         rcli.apiVersion(null);
         assertThat(rcli.typeString(HttpURLConnection.class), is("application/HttpURLConnection+xml"));
-        
+
         rcliClone = rcli.forUser(null);
         assertThat(rcliClone.toString(), is(uriString));
     }
@@ -232,15 +232,15 @@ public class JU_Rcli {
     private class RcliStub extends Rcli<HttpURLConnection> {
         public RcliStub() { super(); }
         public RcliStub(URI uri) { this.uri = uri; }
-        @Override public void setSecuritySetter(SecuritySetter<HttpURLConnection> ss) { } 
-        @Override public SecuritySetter<HttpURLConnection> getSecuritySetter() { return null; } 
-        @Override protected Rcli<HttpURLConnection> clone(URI uri, SecuritySetter<HttpURLConnection> ss) { return this; } 
-        @Override public void invalidate() throws CadiException { } 
-        @Override protected EClient<HttpURLConnection> client() throws CadiException { return client; } 
+        @Override public void setSecuritySetter(SecuritySetter<HttpURLConnection> ss) { }
+        @Override public SecuritySetter<HttpURLConnection> getSecuritySetter() { return null; }
+        @Override protected Rcli<HttpURLConnection> clone(URI uri, SecuritySetter<HttpURLConnection> ss) { return this; }
+        @Override public void invalidate() throws CadiException { }
+        @Override protected EClient<HttpURLConnection> client() throws CadiException { return client; }
         public int getReadTimeout() { return readTimeout; }
         public int getConnectionTimeout() { return connectionTimeout; }
     }
-    
+
     private class CustomEnumeration implements Enumeration<String> {
         private int idx = 0;
         private final String[] elements = {"This", "is", "a", "test"};
@@ -257,11 +257,11 @@ public class JU_Rcli {
     private class Client implements EClient<HttpURLConnection> {
         private Transfer transfer;
         @Override public void setPayload(Transfer transfer) { this.transfer = transfer; }
-        @Override public void setMethod(String meth) { } 
-        @Override public void setPathInfo(String pathinfo) { } 
-        @Override public void addHeader(String tag, String value) { } 
-        @Override public void setQueryParams(String q) { } 
-        @Override public void setFragment(String f) { } 
+        @Override public void setMethod(String meth) { }
+        @Override public void setPathInfo(String pathinfo) { }
+        @Override public void addHeader(String tag, String value) { }
+        @Override public void setQueryParams(String q) { }
+        @Override public void setFragment(String f) { }
         @Override public void send() throws APIException {
             try {
                 if (transfer != null) {
@@ -269,14 +269,14 @@ public class JU_Rcli {
                 }
             } catch (IOException e) {
             }
-        } 
-        @Override public <T> Future<T> futureCreate(Class<T> t) { return null; } 
-        @Override public Future<String> futureReadString() { return null; } 
-        @Override public <T> Future<T> futureRead(RosettaDF<T> df, TYPE type) { return null; } 
-        @Override public <T> Future<T> future(T t) { return null; } 
-        @Override public Future<Void> future(HttpServletResponse resp, int expected) throws APIException { return null; } 
+        }
+        @Override public <T> Future<T> futureCreate(Class<T> t) { return null; }
+        @Override public Future<String> futureReadString() { return null; }
+        @Override public <T> Future<T> futureRead(RosettaDF<T> df, TYPE type) { return null; }
+        @Override public <T> Future<T> future(T t) { return null; }
+        @Override public Future<Void> future(HttpServletResponse resp, int expected) throws APIException { return null; }
     }
-    
+
     //private class FutureStub implements Future<String> {
     //}
 }
index 4157098..1da0406 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,7 +28,7 @@ import org.junit.*;
 import org.onap.aaf.cadi.client.Result;
 
 public class JU_Result {
-    
+
     private static final int OK = 200;
     private static final int NOT_FOUND = 404;
 
@@ -38,7 +38,7 @@ public class JU_Result {
         result = Result.ok(OK, 10);
         assertThat(result.toString(), is("Code: 200"));
         assertThat(result.isOK(), is(true));
-        
+
         result = Result.err(NOT_FOUND, "File not found");
         assertThat(result.toString(), is("Code: 404 = File not found"));
         assertThat(result.isOK(), is(false));
@@ -47,5 +47,5 @@ public class JU_Result {
         assertThat(result.toString(), is("Code: 404 = File not found"));
         assertThat(result.isOK(), is(false));
     }
-    
+
 }
index 200b393..b876710 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,10 +40,10 @@ public class JU_Retryable {
         RetryableStub retry = new RetryableStub();
         assertThat(retry.item(), is(nullValue()));
         assertThat(retry.lastClient(), is(nullValue()));
-        
+
         Locator.Item item = null;
         assertThat(retry.item(item), is(item));
-        
+
         retry = new RetryableStub(retry);
         assertThat(retry.item(), is(nullValue()));
         assertThat(retry.lastClient(), is(nullValue()));
index 4bb44e1..c2f7500 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,10 +41,10 @@ public class JU_HAuthorizationHeader {
 
     @Mock
     HttpsURLConnection hucsMock;
-    
+
     @Mock
     HttpURLConnection hucMock;
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
@@ -59,7 +59,7 @@ public class JU_HAuthorizationHeader {
         header = new HAuthorizationHeader(null, null, null);
         header.setSecurity(hucsMock);
     }
-    
+
     @Test(expected = CadiException.class)
     public void throwsWhenDeniedTest() throws CadiException, IOException {
         HAuthorizationHeader header = new HAuthorizationHeader(siMock, "string1", "string2") {
index d065597..9d3b5a4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,23 +39,23 @@ import org.onap.aaf.cadi.http.HSecurityInfoInit;
 import org.onap.aaf.cadi.principal.BasicPrincipal;
 
 public class JU_HBasicAuthSS {
-    
+
     @Mock
     BasicPrincipal bpMock;
-    
+
     private SecurityInfoC<HttpURLConnection> si;
     private PropAccess access;
-    
+
     private final static String id = "id";
     private final static String password = "password";
-    
+
     @Before
     public void setup() throws CadiException, IOException {
         MockitoAnnotations.initMocks(this);
-        
+
         when(bpMock.getName()).thenReturn(id);
         when(bpMock.getCred()).thenReturn(password.getBytes());
-        
+
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
         access.setProperty(Config.AAF_APPID, id);
         access.setProperty(Config.AAF_APPPASS, access.encrypt(password));
@@ -68,7 +68,7 @@ public class JU_HBasicAuthSS {
         // All the constructors accomplish the same thing
         @SuppressWarnings("unused")
         HBasicAuthSS auth = new HBasicAuthSS(si);
-        
+
         // TODO: While these test _should_ pass, and they _do_ pass on my local machine, they won't
         //       pass when then onap jobbuilder runs them. Good luck!
 //        assertThat(auth.getID(), is(id));
@@ -84,10 +84,10 @@ public class JU_HBasicAuthSS {
 
         auth = new HBasicAuthSS(bpMock, si);
 //        assertThat(auth.getID(), is(id));
-        
+
         auth = new HBasicAuthSS(bpMock, si, false);
 //        assertThat(auth.getID(), is(id));
-        
+
         auth = new HBasicAuthSS(bpMock, si, true);
 //        assertThat(auth.getID(), is(id));
     }
index c32abe4..c224676 100644 (file)
@@ -99,7 +99,7 @@ public class JU_HClient {
         HClientStub client;
         client = new HClientStub(ssMock, uri, 0, null);
         client.send();
-        
+
         client.setPathInfo("/pathinfo");
         client.send();
 
@@ -116,7 +116,7 @@ public class JU_HClient {
         client.setPayload(transferMock);
         client.send();
     }
-    
+
     @Test(expected = APIException.class)
     public void sendThrows1Test() throws APIException, LocatorException, URISyntaxException {
         HClientStub client = new HClientStub(ssMock, new URI("mailto:me@domain.com"), 0, null);
index 10eb818..98070d6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,14 +58,14 @@ import org.onap.aaf.misc.env.APIException;
 import junit.framework.Assert;
 
 public class JU_HMangr {
-    
+
     @Mock Locator<URI> locMock;
     @Mock SecuritySetter<HttpURLConnection> ssMock;
     @Mock Retryable<Void> retryableMock;
     @Mock Retryable<Integer> goodRetry;
     @Mock Locator.Item itemMock;
     @Mock Rcli<Object> clientMock;
-    
+
     private PropAccess access;
     private URI uri;
     private final static String uriString = "http://example.com";
@@ -84,11 +84,11 @@ public class JU_HMangr {
         when(retryableMock.item()).thenReturn(itemMock);
         when(locMock.get(itemMock)).thenReturn(uri);
         assertThat(hman.same(ssMock, retryableMock), is(nullValue()));
-        
+
         //coverage...
         when(retryableMock.lastClient()).thenReturn(clientMock);
         assertThat(hman.same(ssMock, retryableMock), is(nullValue()));
-        
+
         CadiException cadiException;
 
         ConnectException connectException = new ConnectException();
@@ -210,7 +210,7 @@ public class JU_HMangr {
         assertThat(hman.oneOf(ssMock, retryableMock, false, "host"), is(nullValue()));
 
         assertThat(hman.oneOf(ssMock, retryableMock, false, uriString.substring(7)), is(nullValue()));
-        
+
         CadiException cadiException;
 
         cadiException = new CadiException(new ConnectException());
@@ -244,7 +244,7 @@ public class JU_HMangr {
             fail("Should've thrown an exception");
         } catch (CadiException e) {
         }
-        
+
         doThrow(new ConnectException()).when(retryableMock).code((Rcli<?>) any());
         assertThat(hman.oneOf(ssMock, retryableMock, false, uriString.substring(7)), is(nullValue()));
 
@@ -274,5 +274,5 @@ public class JU_HMangr {
             return null;
         }
     }
-        
+
 }
\ No newline at end of file
index 923dd1a..e1a1e70 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,21 +33,21 @@ import org.onap.aaf.cadi.config.SecurityInfoC;
 import org.onap.aaf.cadi.http.HNoAuthSS;
 
 public class JU_HNoAuthSS {
-    
+
     @Mock
     SecurityInfoC<HttpURLConnection> siMock;
-    
+
     @Mock
     HttpURLConnection httpMock;
 
     @Mock
     HttpsURLConnection httpsMock;
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
     }
-    
+
     @Test
     public void test() throws IOException, CadiException {
         HNoAuthSS noAuth = new HNoAuthSS(null);
index ab6a39c..92f7dd6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,22 +44,22 @@ import org.onap.aaf.cadi.http.HMangr;
 import org.onap.aaf.cadi.http.HRcli;
 
 public class JU_HRcli {
-    
+
     @Mock
     SecuritySetter<HttpURLConnection> ssMock;
-    
+
     @Mock
     Locator<URI> locMock;
-    
+
     @Mock
     Locator.Item itemMock;
-    
+
     private HMangr hman;
     private PropAccess access;
     private static URI uri;
-    
+
     private static final String uriString = "example.com";
-    
+
     @Before
     public void setup() throws LocatorException, URISyntaxException {
         MockitoAnnotations.initMocks(this);
@@ -79,20 +79,20 @@ public class JU_HRcli {
 
         hrcli.setSecuritySetter(ssMock);
         assertThat(hrcli.getSecuritySetter(), is(ssMock));
-        
+
         // No throw
         hrcli.invalidate();
         // Throw
         doThrow(CadiException.class).when(locMock).invalidate(itemMock);
         hrcli.invalidate();
     }
-    
+
     @Test(expected = CadiException.class)
     public void protectedInterfaceTest() throws CadiException, LocatorException {
         HRcliStub hrcli = new HRcliStub(hman, uri, itemMock, ssMock);
         HRcli clone = hrcli.clone(uri, ssMock);
         assertThat(clone.toString(), is(hrcli.toString()));
-        
+
         EClient<HttpURLConnection> eclient = hrcli.client();
         assertThat(eclient, is(not(nullValue())));
 
@@ -105,7 +105,7 @@ public class JU_HRcli {
         when(locMock.best()).thenReturn(null);
         eclient = hrcli.client();
     }
-    
+
     private class HRcliStub extends HRcli {
         public HRcliStub(HMangr hman, URI uri, Item locItem, SecuritySetter<HttpURLConnection> secSet) {
             super(hman, uri, locItem, secSet);
index 9f2c9a7..eaf668e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,7 +36,7 @@ public class JU_HTokenSS {
 
     @Mock
     SecurityInfoC<HttpURLConnection> siMock;
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
index 77fac56..809863e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,10 +41,10 @@ import org.onap.aaf.cadi.http.HTransferSS;
 import org.onap.aaf.cadi.principal.TaggedPrincipal;
 
 public class JU_HTransferSS {
-    
+
     @Mock
     TaggedPrincipal princMock;
-    
+
     @Mock
     HttpURLConnection hucMock;
 
@@ -53,15 +53,15 @@ public class JU_HTransferSS {
 
     @Mock
     SecurityInfoC<HttpURLConnection> siMock;
-    
+
     @Mock
     SecurityInfoC<HttpURLConnection> siMockNoDefSS;
 
     @Mock
     SecuritySetter<HttpURLConnection> ssMock;
-    
+
     private static final String princName = "name";
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
@@ -73,7 +73,7 @@ public class JU_HTransferSS {
     public void test() throws IOException, CadiException {
         HTransferSS transfer = new HTransferSS(princMock, "string1");
         assertThat(transfer.setLastResponse(0), is(0));
-        
+
         transfer = new HTransferSS(princMock, "string1", siMock);
         transfer.setSecurity(hucsMock);
         assertThat(transfer.getID(), is(princName));
index fd102a9..f85697a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,33 +48,33 @@ import org.onap.aaf.cadi.http.HX509SS;
 import org.onap.aaf.misc.env.APIException;
 
 public class JU_HX509SS {
-    
+
     @Mock X509Certificate x509Mock;
     @Mock X509KeyManager keyManagerMock;
     @Mock PrivateKey privateKeyMock;
     @Mock SecurityInfoC<HttpURLConnection> siMock;
     @Mock HttpURLConnection hucMock;
     @Mock HttpsURLConnection hucsMock;
-    
+
     private final static String alias = "Some alias";
     private final static String algName = "Some algName";
     private final static byte[] publicKeyBytes = "a public key".getBytes();
-    
+
     private PropAccess access;
     private SecurityInfoC<HttpURLConnection> si;
-    
+
     @Before
     public void setup() throws IOException, CadiException, CertificateEncodingException {
         MockitoAnnotations.initMocks(this);
-        
+
         when(x509Mock.getSigAlgName()).thenReturn(algName);
         when(x509Mock.getEncoded()).thenReturn(publicKeyBytes);
-        
+
         when(keyManagerMock.getCertificateChain(alias)).thenReturn(new X509Certificate[] {x509Mock});
         when(keyManagerMock.getPrivateKey(alias)).thenReturn(privateKeyMock);
 
         when(siMock.getKeyManagers()).thenReturn(new X509KeyManager[] {keyManagerMock});
-        
+
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
         access.setProperty(Config.CADI_ALIAS, alias);
         // si = SecurityInfoC.instance(access, HttpURLConnectionStub.class);
@@ -87,12 +87,12 @@ public class JU_HX509SS {
         assertThat(x509.setLastResponse(0), is(0));
         assertThat(x509.setLastResponse(1), is(0));
         assertThat(x509.setLastResponse(2), is(0));
-        
+
         // coverage...
         x509.setSecurity(hucMock);
         x509.setSecurity(hucsMock);
     }
-    
+
     // TODO: Test the setSecurity method - Ian
     // @Test
     // public void test2() throws APIException, CadiException {
@@ -100,7 +100,7 @@ public class JU_HX509SS {
         // x509.setSecurity(hucMock);
         // x509.setSecurity(hucsMock);
     // }
-    
+
     @Test(expected = APIException.class)
     public void throws1Test() throws APIException, CadiException {
         @SuppressWarnings("unused")
@@ -113,5 +113,5 @@ public class JU_HX509SS {
         @SuppressWarnings("unused")
         HX509SS x509 = new HX509SS(alias, siMock);
     }
-    
+
 }
index b786cf6..e2c8f82 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,9 +38,9 @@ import org.onap.aaf.cadi.PropAccess;
 import org.onap.aaf.cadi.locator.DNSLocator;
 
 public class JU_DNSLocator {
-    
+
     private PropAccess access;
-    
+
     @Before
     public void setup() {
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
@@ -53,7 +53,7 @@ public class JU_DNSLocator {
         URI uri;
 
         dl = new DNSLocator(access, "https", "localhost", "8100-8101");
-        
+
         item = dl.best();
         uri = dl.get(item);
         assertThat(uri.toString(), is("https://localhost:8100"));
@@ -66,10 +66,10 @@ public class JU_DNSLocator {
         }
         assertThat(dl.hasItems(), is(false));
 
-        // This doesn't actually do anything besides increase coverage 
+        // This doesn't actually do anything besides increase coverage
         dl.destroy();
     }
-    
+
     @Test
     public void constructorTest() throws LocatorException {
         // For coverage
@@ -84,20 +84,20 @@ public class JU_DNSLocator {
         new DNSLocator(access, "https://localhost:8000/");
         new DNSLocator(access, "https://aaf-locatexx.onapxxx:8095/locate");
         try {
-               new DNSLocator(access, "https:localhost:8000");
-               fail("Invalid URL should not pass");
+            new DNSLocator(access, "https:localhost:8000");
+            fail("Invalid URL should not pass");
         } catch (LocatorException e) {
-               access.log(Level.DEBUG, "Valid Exception");
-               
+            access.log(Level.DEBUG, "Valid Exception");
+
         }
     }
-    
+
     @Test
     public void refreshTest() throws LocatorException {
         DNSLocator dl = new DNSLocator(access, "https", "bogushost", "8100-8101");
         assertThat(dl.refresh(), is(false));
     }
-    
+
     @Test(expected = LocatorException.class)
     public void throws1Test() throws LocatorException {
         new DNSLocator(access, null);
index d85a84a..496017a 100644 (file)
@@ -86,7 +86,7 @@ public class JU_HClientHotPeerLocator {
 
         item = loc.first();
         loc.invalidate(item);
-        
+
         loc.invalidate(loc.bestClient());
         loc.invalidate(loc.get(loc.next(item)));
         loc.destroy();
@@ -106,13 +106,13 @@ public class JU_HClientHotPeerLocator {
         assertThat(alternate2, is("Alternate Client is " + goodURL2));
 
         outStream.reset();
-        
+
         loc.invalidate(loc.first());
 
         loc.destroy();
         loc.best();
     }
-    
+
     @Test
     public void hasNoItemTest() throws LocatorException {
         HClientHotPeerLocator loc;
@@ -134,7 +134,7 @@ public class JU_HClientHotPeerLocator {
         loc = new CoverageLocator(access, urlStr, 0, "38.627", "-90.199", ssMock);
         assertThat(loc._invalidate(null), is(nullValue()));
         loc._destroy(null);
-        
+
         loc._newClient("bad string");
     }
 
index 0eae119..26673dd 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -85,7 +85,7 @@ public class JU_PropertyLocator {
         pl.refresh();
 
         assertThat(pl.hasItems(), is(true));
-        
+
         assertThat(pl.next(null), is(nullValue()));
 
         // coverage...
@@ -97,7 +97,7 @@ public class JU_PropertyLocator {
         pl.destroy();
 
         pl = new PropertyLocator(uris);
-        
+
     }
 
     @Test(expected=LocatorException.class)
index 31fda50..1cc74e5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 575bc2e..ef26f47 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -52,7 +52,7 @@ public class JU_ResultTest {
         assertFalse(t.isOK());
         assertThat(t.toString(), is("Code: 1 = Error Body"));
     }
-    
+
     @Test
     public void testOk1() {
         Result<String> t = Result.ok(1, "Ok");
@@ -70,7 +70,7 @@ public class JU_ResultTest {
         assertFalse(t.isOK());
         assertThat(t.toString(), is("Code: 1 = Error Body"));
     }
-    
+
     @Test
     public void testOk2() {
         Result<String> t = Result.ok(1, "Ok");
@@ -88,7 +88,7 @@ public class JU_ResultTest {
         assertFalse(t.isOK());
         assertThat(t.toString(), is("Code: 1 = Error Body"));
     }
-    
+
     @Test
     public void testOk3() {
         Result<String> t = Result.ok(1, "Ok");
index 4ec5168..d32df88 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,14 +47,14 @@ import org.onap.aaf.cadi.util.Chmod;
  * AES Class wraps Cipher AES, 128
  * NOTE: While not explicitly stated in JavaDocs, Ciphers AND SecretKeySpecs are NOT ThreadSafe
  * Ciphers take time to create, therefore, we have pooled them.
- * 
+ *
  * @author Jonathan
  *
  */
 public class AES implements Encryption {
     public static final String AES = AES.class.getSimpleName();
     public static final int AES_KEY_SIZE = 128; // 256 isn't supported on all JDKs.
-        
+
     private SecretKeySpec aeskeySpec;
 
     public static SecretKey newKey() throws NoSuchAlgorithmException {
@@ -66,7 +66,7 @@ public class AES implements Encryption {
     public AES(byte[] aeskey, int offset, int len){
         aeskeySpec = new SecretKeySpec(aeskey,offset,len,AES);
     }
-    
+
     public byte[] encrypt(byte[] in) throws CadiException {
         try {
             Cipher c = Cipher.getInstance(AES);
@@ -76,17 +76,17 @@ public class AES implements Encryption {
             throw new CadiException(e);
         }
     }
-    
+
     public byte[] decrypt(byte[] in) throws CadiException {
         try {
             Cipher c = Cipher.getInstance(AES);
-            c.init(Cipher.DECRYPT_MODE,aeskeySpec); 
+            c.init(Cipher.DECRYPT_MODE,aeskeySpec);
             return c.doFinal(in);
         } catch (InvalidKeyException | IllegalBlockSizeException | BadPaddingException | NoSuchAlgorithmException | NoSuchPaddingException e) {
             throw new CadiException(e);
         }
     }
-    
+
     public void save(File keyfile) throws IOException {
         FileOutputStream fis = new FileOutputStream(keyfile);
         try {
@@ -112,7 +112,7 @@ public class AES implements Encryption {
             return null;  // should never get here.
         }
     }
-    
+
     public CipherInputStream inputStream(InputStream is, boolean encrypt) {
         try {
             Cipher c = Cipher.getInstance(AES);
index e6d24da..561995d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,11 +39,11 @@ import org.onap.aaf.cadi.principal.CachedBasicPrincipal;
 
 /**
  * Implement Fast lookup and Cache for Local User Info
- * 
+ *
  * Include ability to add and remove Users
- * 
+ *
  * Also includes a Timer Thread (when necessary) to invoke cleanup on expiring Credentials
- * 
+ *
  * @author Jonathan
  *
  */
@@ -57,10 +57,10 @@ public abstract class AbsUserCache<PERM extends Permission> {
     private final Map<String, User<PERM>> userMap;
     private static final Map<String, Miss> missMap = new TreeMap<>();
     private final Symm missEncrypt;
-    
+
     private Clean clean;
     protected Access access;
-    
+
     protected AbsUserCache(Access access, long cleanInterval, int highCount, int usageCount) {
         this.access = access;
         Symm s;
@@ -72,29 +72,29 @@ public abstract class AbsUserCache<PERM extends Permission> {
             s = Symm.base64noSplit;
         }
         missEncrypt = s;
-        
+
         userMap = new ConcurrentHashMap<>();
 
-        
+
         if (cleanInterval>0) {
             cleanInterval = Math.max(MIN_INTERVAL, cleanInterval);
             synchronized(AbsUserCache.class) { // Lazy instantiate.. in case there is no cleanup needed
                 if (timer==null) {
                     timer = new Timer("CADI Cleanup Timer",true);
                 }
-                
+
                 timer.schedule(clean = new Clean(access, cleanInterval, highCount, usageCount), cleanInterval, cleanInterval);
                 access.log(Access.Level.INIT, "Cleaning Thread initialized with interval of",cleanInterval, "ms and max objects of", highCount);
             }
         }
     }
-    
+
     @SuppressWarnings("unchecked")
     public AbsUserCache(AbsUserCache<PERM> cache) {
         this.access = cache.access;
         userMap = cache.userMap;
         missEncrypt = cache.missEncrypt;
-        
+
         synchronized(AbsUserCache.class) {
             if (cache.clean!=null && cache.clean.lur==null && this instanceof CachingLur) {
                 cache.clean.lur=(CachingLur<PERM>)this;
@@ -104,9 +104,9 @@ public abstract class AbsUserCache<PERM extends Permission> {
 
     protected void setLur(CachingLur<PERM> lur) {
         if (clean!=null)clean.lur = lur;
-        
+
     }
-    
+
     protected void addUser(User<PERM> user) {
         Principal p = user.principal;
         String key;
@@ -132,16 +132,16 @@ public abstract class AbsUserCache<PERM extends Permission> {
     protected void addUser(String key, User<PERM> user) {
         userMap.put(key, user);
     }
-    
+
     /**
      * Add miss to missMap.  If Miss exists, or too many tries, returns false.
-     * 
+     *
      * otherwise, returns true to allow another attempt.
-     * 
+     *
      * @param key
      * @param bs
      * @return
-     * @throws IOException 
+     * @throws IOException
      */
     protected synchronized boolean addMiss(String key, byte[] bs) {
         String mkey;
@@ -156,7 +156,7 @@ public abstract class AbsUserCache<PERM extends Permission> {
             missMap.put(mkey, new Miss(bs,clean==null?MIN_INTERVAL:clean.timeInterval,key));
             return true;
         }
-        return miss.mayContinue(); 
+        return miss.mayContinue();
     }
 
     protected Miss missed(String key, byte[] bs) throws IOException {
@@ -182,11 +182,11 @@ public abstract class AbsUserCache<PERM extends Permission> {
         }
         return u;
     }
-    
+
     protected User<PERM> getUser(CachedBasicPrincipal cbp) {
         return getUser(cbp.getName(), cbp.getCred());
     }
-    
+
     protected User<PERM> getUser(String user, byte[] cred) {
         User<PERM> u;
         String key=null;
@@ -207,7 +207,7 @@ public abstract class AbsUserCache<PERM extends Permission> {
         }
         return u;
     }
-    
+
     /**
      * Removes User from the Cache
      * @param user
@@ -215,10 +215,10 @@ public abstract class AbsUserCache<PERM extends Permission> {
     protected void remove(User<PERM> user) {
         userMap.remove(user.principal.getName());
     }
-    
+
     /**
      * Removes user from the Cache
-     * 
+     *
      * @param user
      */
     public void remove(String user) {
@@ -227,14 +227,14 @@ public abstract class AbsUserCache<PERM extends Permission> {
             access.log(Level.INFO, user,"removed from Client Cache by Request");
         }
     }
-    
+
     /**
      * Clear all Users from the Client Cache
      */
     public void clearAll() {
         userMap.clear();
     }
-    
+
     public final List<DumpInfo> dumpInfo() {
         List<DumpInfo> rv = new ArrayList<>();
         for (User<PERM> user : userMap.values()) {
@@ -249,10 +249,10 @@ public abstract class AbsUserCache<PERM extends Permission> {
     public boolean handlesExclusively(Permission ... pond) {
         return false;
     }
-    
+
     /**
-     * Container calls when cleaning up... 
-     * 
+     * Container calls when cleaning up...
+     *
      * If overloading in Derived class, be sure to call "super.destroy()"
      */
     public void destroy() {
@@ -261,8 +261,8 @@ public abstract class AbsUserCache<PERM extends Permission> {
             timer.cancel();
         }
     }
-    
-    
+
+
 
     // Simple map of Group name to a set of User Names
     //    private Map<String, Set<String>> groupMap = new HashMap<>();
@@ -273,34 +273,34 @@ public abstract class AbsUserCache<PERM extends Permission> {
     public final class DumpInfo {
         public String user;
         public List<String> perms;
-        
+
         public DumpInfo(User<PERM> user) {
             this.user = user.principal.getName();
             perms = new ArrayList<>(user.perms.keySet());
         }
     }
-    
+
     /**
      * Clean will examine resources, and remove those that have expired.
-     * 
+     *
      * If "highs" have been exceeded, then we'll expire 10% more the next time.  This will adjust after each run
      * without checking contents more than once, making a good average "high" in the minimum speed.
-     * 
+     *
      * @author Jonathan
      *
      */
     private final class Clean extends TimerTask {
         private final Access access;
         private CachingLur<PERM> lur;
-        
-        // The idea here is to not be too restrictive on a high, but to Expire more items by 
+
+        // The idea here is to not be too restrictive on a high, but to Expire more items by
         // shortening the time to expire.  This is done by judiciously incrementing "advance"
         // when the "highs" are exceeded.  This effectively reduces numbers of cached items quickly.
         private final int high;
         private long advance;
         private final long timeInterval;
         private final int usageTriggerCount;
-        
+
         public Clean(Access access, long cleanInterval, int highCount, int usageTriggerCount) {
             this.access = access;
             lur = null;
@@ -342,7 +342,7 @@ public abstract class AbsUserCache<PERM extends Permission> {
                                     }
                                 }
                             }
-                        
+
                             if (!removed && lur!=null && user.permExpires<= now ) {
                                 if (lur.reload(user).equals(Resp.REVALIDATED)) {
                                     user.renewPerm();
@@ -354,7 +354,7 @@ public abstract class AbsUserCache<PERM extends Permission> {
                             if (touched) {
                                 ++renewed;
                             }
-    
+
                         } else {
                             if (user.permExpired()) {
                                 remove(user);
@@ -362,7 +362,7 @@ public abstract class AbsUserCache<PERM extends Permission> {
                             }
                         }
                 }
-                
+
                 // Clean out Misses
                 int missTotal = missMap.keySet().size();
                 int miss = 0;
@@ -385,12 +385,12 @@ public abstract class AbsUserCache<PERM extends Permission> {
                         }
                     }
                 }
-                
+
                 if (count+renewed+miss>0) {
                     access.log(Level.INFO, (lur==null?"Cache":lur.getClass().getSimpleName()), "removed",count,
                         "and renewed",renewed,"expired Permissions out of", total,"and removed", miss, "password misses out of",missTotal);
                 }
-    
+
                 // If High (total) is reached during this period, increase the number of expired services removed for next time.
                 // There's no point doing it again here, as there should have been cleaned items.
                 if (total>high) {
@@ -421,17 +421,17 @@ public abstract class AbsUserCache<PERM extends Permission> {
         private long tries;
 
         private final String name;
-        
+
         public Miss(final byte[] first, final long timeInterval, final String name) {
             timestamp = System.currentTimeMillis() + timeInterval;
             this.timetolive = timeInterval;
             tries = 0L;
             this.name = name;
         }
-        
-        
+
+
         public synchronized boolean mayContinue() {
-            long ts = System.currentTimeMillis(); 
+            long ts = System.currentTimeMillis();
             if (ts>timestamp) {
                 tries = 0;
                 timestamp = ts + timetolive;
@@ -440,20 +440,20 @@ public abstract class AbsUserCache<PERM extends Permission> {
             }
             return true;
         }
-        
+
     }
-    
+
     /**
      * Report on state
      */
     public String toString() {
-        return getClass().getSimpleName() + 
+        return getClass().getSimpleName() +
                 " Cache:\n  Users Cached: " +
                 userMap.size() +
                 "\n  Misses Saved: " +
                 missMap.size() +
                 '\n';
-                
+
     }
 
     public void clear(Principal p, StringBuilder sb) {
index a673ab4..4009521 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,8 +29,8 @@ import java.util.Properties;
  * Various Environments require different logging mechanisms, or at least allow
  * for different ones. We need the Framework to be able to hook into any particular instance of logging
  * mechanism, whether it be a Logging Object within a Servlet Context, or a direct library like log4j.
- * This interface, therefore, allows maximum pluggability in a variety of different app styles.  
- *  
+ * This interface, therefore, allows maximum pluggability in a variety of different app styles.
+ *
  * @author Jonathan
  *
  */
@@ -39,15 +39,15 @@ public interface Access {
     public enum Level {
         DEBUG(0x1), INFO(0x10), AUDIT(0x100), WARN(0x2000), ERROR(0x4000), INIT(0x8000),TRACE(0x10000),NONE(0XFFFF);
         private final int bit;
-        
+
         Level(int ord) {
             bit = ord;
         }
-        
+
         public boolean inMask(int mask) {
             return (mask & bit) == bit;
         }
-        
+
         public int addToMask(int mask) {
             return mask | bit;
         }
@@ -89,8 +89,8 @@ public interface Access {
      * @param elements
      */
     public void printf(Level level, String fmt, Object ... elements);
-    
-    /** 
+
+    /**
      * Check if message will log before constructing
      * @param level
      * @return
@@ -98,24 +98,24 @@ public interface Access {
     public boolean willLog(Level level);
 
     /**
-     * Write the contents of an exception, followed by a variable list of Object's text via the 
+     * Write the contents of an exception, followed by a variable list of Object's text via the
      * toString() method with appropriate space, etc.
-     * 
+     *
      * The Loglevel is always "ERROR"
-     * 
+     *
      * @param elements
      */
     public void log(Exception e, Object ... elements);
-    
+
     /**
      * Set the Level to compare logging too
      */
     public void setLogLevel(Level level);
-        
+
     /**
      * It is important in some cases to create a class from within the same Classloader that created
      * Security Objects.  Specifically, it's pretty typical for Web Containers to separate classloaders
-     * so as to allow Apps with different dependencies. 
+     * so as to allow Apps with different dependencies.
      * @return
      */
     public ClassLoader classLoader();
@@ -127,7 +127,7 @@ public interface Access {
     public void load(InputStream is) throws IOException;
 
     /**
-     * if "anytext" is true, then decryption will always be attempted.  Otherwise, only if starts with 
+     * if "anytext" is true, then decryption will always be attempted.  Otherwise, only if starts with
      * Symm.ENC
      * @param encrypted
      * @param anytext
index ebb41ab..bdbef71 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,7 +25,7 @@ package org.onap.aaf.cadi;
  * An Interface for testing on Requests to see if we can get a User and Password
  * It works for CadiWrap, but also, Container Specific Wraps (aka Tomcat) should also
  * implement.
- * 
+ *
  * @author Jonathan
  *
  */
index 8202183..b6aabf3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,21 +28,21 @@ import javax.servlet.ServletInputStream;
 
 /**
  * BufferedServletInputStream
- * 
+ *
  * There are cases in brain-dead middleware (SOAP) where they store routing information in the content.
- * 
+ *
  * In HTTP, this requires reading the content from the InputStream which, of course, cannot be re-read.
- * 
- * BufferedInputStream exists to implement the "Mark" protocols for Streaming, which will enable being 
+ *
+ * BufferedInputStream exists to implement the "Mark" protocols for Streaming, which will enable being
  * re-read.  Unfortunately, J2EE chose to require a "ServletInputStream" as an abstract class, rather than
- * an interface, which requires we create a delegating pattern, rather than the preferred inheriting pattern. 
- * 
+ * an interface, which requires we create a delegating pattern, rather than the preferred inheriting pattern.
+ *
  * Unfortunately, the standard "BufferedInputStream" cannot be used, because it simply creates a byte array
- * in the "mark(int)" method of that size.  This is not appropriate for this application, because the Header 
- * can be potentially huge, and if a buffer was allocated to accommodate all possibilities, the cost of memory 
+ * in the "mark(int)" method of that size.  This is not appropriate for this application, because the Header
+ * can be potentially huge, and if a buffer was allocated to accommodate all possibilities, the cost of memory
  * allocation would be too large for high performance transactions.
  *
- * 
+ *
  * @author Jonathan
  *
  */
@@ -50,7 +50,7 @@ public class BufferedServletInputStream extends ServletInputStream {
     private static final int NONE = 0;
     private static final int STORE = 1;
     private static final int READ = 2;
-    
+
     private InputStream is;
     private int state = NONE;
     private Capacitor capacitor;
@@ -81,7 +81,7 @@ public class BufferedServletInputStream extends ServletInputStream {
                         value = is.read();
                     }
             }
-        } 
+        }
         return value;
     }
 
@@ -113,7 +113,7 @@ public class BufferedServletInputStream extends ServletInputStream {
                         if (temp>0) { // watch for -1
                             count+=temp;
                         } else if (count<=0) {
-                            count = temp; // must account for Stream coming back -1  
+                            count = temp; // must account for Stream coming back -1
                         }
                     }
                     break;
@@ -134,9 +134,9 @@ public class BufferedServletInputStream extends ServletInputStream {
     public int available() throws IOException {
         int count = is.available();
         if (capacitor!=null)count+=capacitor.available();
-        return count;        
+        return count;
     }
-    
+
     /**
      * Return just amount buffered (for debugging purposes, mostly)
      * @return
@@ -156,7 +156,7 @@ public class BufferedServletInputStream extends ServletInputStream {
 
 
     /**
-     * Note: Readlimit is ignored in this implementation, because the need was for unknown buffer size which wouldn't 
+     * Note: Readlimit is ignored in this implementation, because the need was for unknown buffer size which wouldn't
      * require allocating and dumping huge chunks of memory every use, or risk overflow.
      */
     public synchronized void mark(int readlimit) {
@@ -174,10 +174,10 @@ public class BufferedServletInputStream extends ServletInputStream {
 
     /**
      * Reset Stream
-     * 
+     *
      * Calling this twice is not supported in typical Stream situations, but it is allowed in this service.  The caveat is that it can only reset
      * the data read in since Mark has been called.  The data integrity is only valid if you have not continued to read past what is stored.
-     *  
+     *
      */
     public synchronized void reset() throws IOException {
         switch(state) {
@@ -188,7 +188,7 @@ public class BufferedServletInputStream extends ServletInputStream {
             case READ:
                 capacitor.reset();
                 break;
-            case NONE: 
+            case NONE:
                 throw new IOException("InputStream has not been marked");
         }
     }
index 6f3fe12..68fa1f6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,20 +25,20 @@ import java.security.Principal;
 
 /**
  * Cached Principals need to be able to revalidate in the background.
- * 
+ *
  * @author Jonathan
  *
  */
 public interface CachedPrincipal extends Principal {
     public enum Resp {NOT_MINE,UNVALIDATED,REVALIDATED,INACCESSIBLE,DENIED};
-    
+
     /**
      * Re-validate with Creator
-     * 
+     *
      * @return
      */
     public abstract Resp revalidate(Object state);
-    
+
     /**
      * Store when last updated.
      * @return
index c790f39..6f4d8d8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 96a55f9..89d42b2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -27,7 +27,7 @@ package org.onap.aaf.cadi;
  */
 public class CadiException extends Exception {
     /**
-     *  Generated ID 
+     *  Generated ID
      */
     private static final long serialVersionUID = -4180145363107742619L;
 
index 34d1162..102782a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,23 +41,23 @@ import org.onap.aaf.cadi.util.Timing;
 /**
  * Inherit the HttpServletRequestWrapper, which calls methods of delegate it's created with, but
  * overload the key security mechanisms with CADI mechanisms
- * 
+ *
  * This works with mechanisms working strictly with HttpServletRequest (i.e. Servlet Filters)
- * 
+ *
  * Specialty cases, i.e. Tomcat, which for their containers utilize their own mechanisms and Wrappers, you may
  * need something similar.  See AppServer specific code (i.e. tomcat) for these.
- * 
+ *
  * @author Jonathan
  *
  */
 public class CadiWrap extends HttpServletRequestWrapper implements HttpServletRequest, BasicCred {
     private TaggedPrincipal principal;
     private Lur lur;
-    private String user; // used to set user/pass from brain-dead protocols like WSSE 
+    private String user; // used to set user/pass from brain-dead protocols like WSSE
     private byte[] password;
     private PermConverter pconv;
-    private Access access; 
-    
+    private Access access;
+
     /**
      * Standard Wrapper constructor for Delegate pattern
      * @param request
@@ -93,35 +93,35 @@ public class CadiWrap extends HttpServletRequestWrapper implements HttpServletRe
     }
 
     /**
-     * Part of the HTTP Security API.  Return the User Principal associated with this HTTP 
+     * Part of the HTTP Security API.  Return the User Principal associated with this HTTP
      * Transaction.
      */
     @Override
     public Principal getUserPrincipal() {
         return principal;
     }
-    
+
     /**
      * This is the key API call for AUTHZ in J2EE.  Given a Role (String passed in), is the user
      * associated with this HTTP Transaction allowed to function in this Role?
-     * 
+     *
      * For CADI, we pass the responsibility for determining this to the "LUR", which may be
      * determined by the Enterprise.
-     * 
+     *
      * Note: Role check is also done in "CadiRealm" in certain cases...
-     * 
+     *
      *
      */
     @Override
     public boolean isUserInRole(String perm) {
         return perm==null?false:checkPerm(access,"isUserInRole",principal,pconv,lur,perm);
     }
-    
+
     public static boolean checkPerm(Access access, String caller, Principal principal, PermConverter pconv, Lur lur, String perm) {
         if (principal== null) {
             access.log(Level.AUDIT,caller, "No Principal in Transaction");
             return false;
-        } else { 
+        } else {
             final long start = System.nanoTime();
             perm = pconv.convert(perm);
             if (lur.fish(principal,lur.createPerm(perm))) {
@@ -135,10 +135,10 @@ public class CadiWrap extends HttpServletRequestWrapper implements HttpServletRe
 
     }
 
-    /** 
+    /**
      * CADI Function (Non J2EE standard). GetPermissions will read the Permissions from AAF (if configured) and Roles from Local Lur, etc
      *  as implemented with lur.fishAll
-     *  
+     *
      *  To utilize, the Request must be a "CadiWrap" object, then call.
      */
     public List<Permission> getPermissions(Principal p) {
@@ -148,7 +148,7 @@ public class CadiWrap extends HttpServletRequestWrapper implements HttpServletRe
     }
     /**
      * Allow setting of tafResp and lur after construction
-     * 
+     *
      * This can happen if the CadiWrap is constructed in a Valve other than CadiValve
      */
     public void set(TafResp tafResp, Lur lur) {
@@ -175,12 +175,12 @@ public class CadiWrap extends HttpServletRequestWrapper implements HttpServletRe
     public void setCred(byte[] passwd) {
         password = passwd;
     }
-    
+
     public CadiWrap setPermConverter(PermConverter pc) {
         pconv = pc;
         return this;
     }
-    
+
     // Add a feature
     public void invalidate(String id) {
         if (lur instanceof EpiLur) {
@@ -189,11 +189,11 @@ public class CadiWrap extends HttpServletRequestWrapper implements HttpServletRe
             ((CachingLur<?>)lur).remove(id);
         }
     }
-    
+
     public Lur getLur() {
         return lur;
     }
-    
+
     public Access access() {
         return access;
     }
index f3a2a7f..57ee115 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,10 +26,10 @@ import java.util.ArrayList;
 
 /**
  * Capacitor
- * 
+ *
  * Storage mechanism for read data, specifically designed for InputStreams.
- * 
- * The Standard BufferedInputStream requires a limit to be set for buffered reading, which is 
+ *
+ * The Standard BufferedInputStream requires a limit to be set for buffered reading, which is
  * impractical for reading SOAP headers, which can be quite large.
  * @author Jonathan
  *
@@ -39,22 +39,22 @@ public class Capacitor {
     private ArrayList<ByteBuffer> bbs = new ArrayList<>();
     private ByteBuffer curr = null;
     private int idx;
-    
+
     // Maintain a private RingBuffer for Memory, for efficiency
     private static ByteBuffer[] ring = new ByteBuffer[16];
     private static int start, end;
-    
-    
+
+
     public void put(byte b) {
         if (curr == null || curr.remaining()==0) { // ensure we have a "curr" buffer ready for data
             curr = ringGet();
             bbs.add(curr);
         }
-        curr.put(b); 
+        curr.put(b);
     }
 
     public int read() {
-        if (curr!=null) { 
+        if (curr!=null) {
             if (curr.remaining()>0) { // have a buffer, use it!
                 return curr.get();
             } else if (idx<bbs.size()){ // Buffer not enough, get next one from array
@@ -64,10 +64,10 @@ public class Capacitor {
         } // if no curr buffer, treat as end of stream
         return -1;
     }
-    
+
     /**
      * read into an array like Streams
-     * 
+     *
      * @param array
      * @param offset
      * @param length
@@ -99,7 +99,7 @@ public class Capacitor {
 
     /**
      * Put an array of data into Capacitor
-     * 
+     *
      * @param array
      * @param offset
      * @param length
@@ -109,7 +109,7 @@ public class Capacitor {
             curr = ringGet();
             bbs.add(curr);
         }
-        
+
         int len;
         while (length>0) {
             if ((len=curr.remaining())>length) {
@@ -125,7 +125,7 @@ public class Capacitor {
             }
         }
     }
-     
+
     /**
      * Move state from Storage mode into Read mode, changing all internal buffers to read mode, etc
      */
@@ -141,7 +141,7 @@ public class Capacitor {
             idx=1;
         }
     }
-    
+
     /**
      * reuse all the buffers
      */
@@ -152,10 +152,10 @@ public class Capacitor {
         bbs.clear();
         curr = null;
     }
-    
+
     /**
      * Declare amount of data available to be read at once.
-     * 
+     *
      * @return
      */
     public int available() {
@@ -165,7 +165,7 @@ public class Capacitor {
         }
         return count;
     }
-    
+
     /**
      * Returns how many are left that were not skipped
      * @param n
@@ -184,7 +184,7 @@ public class Capacitor {
                 n=0;
             } else {
                 curr.position(curr.limit());
-                
+
                 skipped-=skip;
                 if (idx<bbs.size()) {
                     curr=bbs.get(idx++);
@@ -214,7 +214,7 @@ public class Capacitor {
     }
 
     /*
-     * Ring Functions.  Reuse allocated memory 
+     * Ring Functions.  Reuse allocated memory
      */
     private ByteBuffer ringGet() {
         ByteBuffer bb = null;
@@ -230,7 +230,7 @@ public class Capacitor {
         }
         return bb;
     }
-    
+
     private void ringPut(ByteBuffer bb) {
         synchronized(ring) {
             ring[end]=bb; // if null or not, BB will just be Garbage collected
index b697f37..53c35fc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ import org.onap.aaf.cadi.util.JsonOutputStream;
 
 /**
  * A Class to run on command line to determine suitability of environment for certain TAFs.
- *  * 
+ *  *
  * @author Jonathan
  *
  */
@@ -90,7 +90,7 @@ public class CmdLine {
                         System.out.println(args[1]);
                         ByteArrayOutputStream baos = new ByteArrayOutputStream();
                         b64.enpass(args[1], baos);
-                        String pass; 
+                        String pass;
                         System.out.println(pass=new String(baos.toByteArray()));
                         ByteArrayOutputStream reconstituted = new ByteArrayOutputStream();
                         b64.depass(pass, reconstituted);
@@ -104,13 +104,13 @@ public class CmdLine {
                     }
                     System.out.flush();
                     */
-                     
+
                 } catch (IOException e) {
                     System.err.println("Cannot digest password");
                     System.err.println("   \""+ e.getMessage() + '"');
                 }
 // DO NOT LEAVE THIS METHOD Compiled IN CODE... Do not want looking at passwords on disk too easy
-// Jonathan.  Oh, well, Deployment services need this behavior.  I will put this code in, but leave it undocumented. 
+// Jonathan.  Oh, well, Deployment services need this behavior.  I will put this code in, but leave it undocumented.
 // One still needs access to the keyfile to read.
 // July 2016 - thought of a tool "CMPass" to regurgitate from properties, but only if allowed.
             } else if (("regurgitate".equalsIgnoreCase(args[0]) || "undigest".equalsIgnoreCase(args[0]))
@@ -151,7 +151,7 @@ public class CmdLine {
                                     }
                                 } else {
                                     int idx;
-                                    if ((idx = line.indexOf(' '))>=0 
+                                    if ((idx = line.indexOf(' '))>=0
                                             && (idx = line.indexOf(' ',++idx))>0
                                             && (idx = line.indexOf('=',++idx))>0
                                             ) {
@@ -249,7 +249,7 @@ public class CmdLine {
                             int salt = Integer.parseInt(args[i]);
                             System.out.println(Hash.hashSHA256asStringHex(args[1],salt));
                         }
-                    } else { 
+                    } else {
                         System.out.println(Hash.hashSHA256asStringHex(args[1]));
                     }
                 } catch (NoSuchAlgorithmException e) {
@@ -280,13 +280,13 @@ public class CmdLine {
                     System.err.println("Cannot create a key " + args[0]);
                     System.err.println("   \""+ e.getMessage() + '"');
                 }
-            
+
             } else if ("passgen".equalsIgnoreCase(args[0])) {
                 int numDigits;
                 if (args.length <= 1) {
                     numDigits = 24;
                 } else {
-                    numDigits = Integer.parseInt(args[1]); 
+                    numDigits = Integer.parseInt(args[1]);
                     if (numDigits<8)numDigits = 8;
                 }
                 String pass;
@@ -305,17 +305,17 @@ public class CmdLine {
                         }
                         if (noLower) {
                             noLower=!(c>=0x61 && c<=0x7A);
-                        } 
+                        }
                         if (noUpper) {
                             noUpper=!(c>=0x41 && c<=0x5A);
-                        } 
+                        }
                         if (noDigits) {
                             noDigits=!(c>=0x30 && c<=0x39);
-                        } 
+                        }
                         if (noSpecial) {
                             noSpecial = "+!@#$%^&*(){}[]?:;,.".indexOf(c)<0;
-                        } 
-                        
+                        }
+
                         missingChars = (noLower || noUpper || noDigits || noSpecial);
                     }
                 } while (missingChars || repeatingChars);
@@ -325,7 +325,7 @@ public class CmdLine {
                 if (args.length <= 1) {
                     numDigits = 24;
                 } else {
-                    numDigits = Integer.parseInt(args[1]); 
+                    numDigits = Integer.parseInt(args[1]);
                 }
                 System.out.println(Symm.randomGen(Symm.base64url.codeset, numDigits).substring(0,numDigits));
             }
@@ -349,9 +349,9 @@ public class CmdLine {
             System.exit(1);
         }
     }
-    
+
     public static void setSystemExit(boolean shouldExit) {
         systemExit = shouldExit;
     }
-    
+
 }
index f88c3fb..88ac57e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 6019f55..dcb3008 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,16 +24,16 @@ package org.onap.aaf.cadi;
 
 /**
  * UserPass
- * 
- * The essential interface required by BasicAuth to determine if a given User/Password combination is 
+ *
+ * The essential interface required by BasicAuth to determine if a given User/Password combination is
  * valid.  This is done as an interface.
- * 
+ *
  * @author Jonathan
  */
 public interface CredVal {
     public enum Type{PASSWORD};
     /**
-     *  Validate if the User/Password combination matches records 
+     *  Validate if the User/Password combination matches records
      * @param user
      * @param pass
      * @return
index db5ab0f..4a8015a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 039ba8f..4c5ca54 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 3027fd7..26c33c8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -27,7 +27,7 @@ import java.security.NoSuchAlgorithmException;
 
 public class Hash {
     private static char hexDigit[] = "0123456789abcdef".toCharArray();
-    
+
 /////////////////////////////////
 // MD5
 /////////////////////////////////
@@ -38,9 +38,9 @@ public class Hash {
      * @throws NoSuchAlgorithmException
      */
     public static byte[] hashMD5 (byte[] input) throws NoSuchAlgorithmException {
-        // Note: Protect against Multi-thread issues with new MessageDigest 
+        // Note: Protect against Multi-thread issues with new MessageDigest
         MessageDigest md = MessageDigest.getInstance("MD5");
-        md.update(input); 
+        md.update(input);
         return md.digest();
     }
 
@@ -51,17 +51,17 @@ public class Hash {
      * @throws NoSuchAlgorithmException
      */
     public static byte[] hashMD5 (byte[] input, int offset, int length) throws NoSuchAlgorithmException {
-        // Note: Protect against Multi-thread issues with new MessageDigest 
+        // Note: Protect against Multi-thread issues with new MessageDigest
         MessageDigest md = MessageDigest.getInstance("MD5");
-        md.update(input,offset,length); 
+        md.update(input,offset,length);
         return md.digest();
     }
 
 
 
     /**
-     * Convenience Function: Encrypt MD5 from String to String Hex representation 
-     * 
+     * Convenience Function: Encrypt MD5 from String to String Hex representation
+     *
      * @param input
      * @return
      * @throws NoSuchAlgorithmException
@@ -83,9 +83,9 @@ public class Hash {
      * SHA256 Hashing
      */
     public static byte[] hashSHA256(byte[] input) throws NoSuchAlgorithmException {
-        // Note: Protect against Multi-thread issues with new MessageDigest 
+        // Note: Protect against Multi-thread issues with new MessageDigest
         MessageDigest md = MessageDigest.getInstance("SHA-256");
-        md.update(input); 
+        md.update(input);
         return md.digest();
     }
 
@@ -93,15 +93,15 @@ public class Hash {
      * SHA256 Hashing
      */
     public static byte[] hashSHA256(byte[] input, int offset, int length) throws NoSuchAlgorithmException {
-        // Note: Protect against Multi-thread issues with new MessageDigest 
+        // Note: Protect against Multi-thread issues with new MessageDigest
         MessageDigest md = MessageDigest.getInstance("SHA-256");
-        md.update(input,offset,length); 
+        md.update(input,offset,length);
         return md.digest();
     }
-    
+
     /**
      * Convenience Function: Hash from String to String Hex representation
-     * 
+     *
      * @param input
      * @return
      * @throws NoSuchAlgorithmException
@@ -112,7 +112,7 @@ public class Hash {
 
     /**
      * Convenience Function: Hash from String to String Hex representation
-     * 
+     *
      * @param input
      * @return
      * @throws NoSuchAlgorithmException
@@ -124,7 +124,7 @@ public class Hash {
         bb.put(input.getBytes());
         return toHex(Hash.hashSHA256(bb.array()));
     }
-    
+
     /**
      * Compare two byte arrays for equivalency
      * @param ba1
@@ -166,7 +166,7 @@ public class Hash {
          }
          return sb.toString();
     }
-    
+
     public static String toHex(byte[] ba, int start, int length) {
         StringBuilder sb = new StringBuilder("0x");
          for (int i=start;i<length;++i) {
@@ -176,7 +176,7 @@ public class Hash {
          return sb.toString();
     }
 
-    
+
     public static byte[] fromHex(String s)  throws CadiException{
         if (!s.startsWith("0x")) {
             throw new CadiException("HexString must start with \"0x\"");
@@ -212,7 +212,7 @@ public class Hash {
     /**
      * Does not expect to start with "0x"
      * if Any Character doesn't match, it returns null;
-     * 
+     *
      * @param s
      * @return
      */
index c40cb99..46e6f7e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,7 +30,7 @@ public interface Locator<T> {
     public Item next(Item item) throws LocatorException;
     public boolean refresh();
     public void destroy();
-    
+
     public interface Item {}
 
 }
index da56d4b..8eb0e27 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -23,7 +23,7 @@ package org.onap.aaf.cadi;
 
 public class LocatorException extends Exception {
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = -4267929804321134469L;
 
index bdc9f64..cce91e0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,37 +30,37 @@ import java.util.List;
  * LUR: Local User Registry
  *
  * Concept by Robert Garskof, Implementation by Jonathan Gathman
- * 
+ *
  * Where we can keep local copies of users and roles for faster Authorization when asked.
- * 
- * Note: Author cannot resist the mental image of using a Fishing Lure to this LUR pattern 
- * 
+ *
+ * Note: Author cannot resist the mental image of using a Fishing Lure to this LUR pattern
+ *
  * @author Jonathan
  *
  */
 public interface Lur {
     /**
-     * Allow the Lur, which has correct Permission access, to create and hand back. 
+     * Allow the Lur, which has correct Permission access, to create and hand back.
      */
     public Permission createPerm(String p);
-    
-    /** 
+
+    /**
      * Fish for Principals in a Pond
-     * 
+     *
      *   or more boringly, is the User identified within a named collection representing permission.
-     * 
+     *
      * @param principalName
      * @return
      */
     public boolean fish(Principal bait, Permission ... pond);
 
-    /** 
+    /**
      * Fish all the Principals out a Pond
-     * 
+     *
      *   For additional humor, pronounce the following with a Southern Drawl, "FishOil"
-     * 
+     *
      *   or more boringly, load the List with Permissions found for Principal
-     * 
+     *
      * @param principalName
      * @return
      */
@@ -72,19 +72,19 @@ public interface Lur {
     public void destroy();
 
     /**
-     * Does this LUR handle this pond exclusively?  Important for EpiLUR to determine whether 
-     * to try another (more expensive) LUR 
+     * Does this LUR handle this pond exclusively?  Important for EpiLUR to determine whether
+     * to try another (more expensive) LUR
      * @param pond
      * @return
      */
-    public boolean handlesExclusively(Permission ... pond);  
-    
+    public boolean handlesExclusively(Permission ... pond);
+
     /**
      *  Does the LUR support a particular kind of Principal
      *  This can be used to check name's domain, like above, or Principal type
      */
     public boolean handles(Principal principal);
-    
+
     /**
      * Clear: Clear any Caching, if exists
      */
index 2537c38..f45e5e0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 92756d8..c4719f8 100644 (file)
@@ -3,15 +3,15 @@
  * org.onap.aaf
  * ===========================================================================
  * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
- * 
+ *
  * Modifications Copyright (C) 2018 IBM.
  * ===========================================================================
  * 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.
@@ -59,7 +59,7 @@ public class PropAccess implements Access {
         logIt = new StreamLogIt(System.out);
         init(null);
     }
-    
+
     /**
      * This Constructor soly exists to instantiate Servlet Context Based Logging that will call "init" later.
      * @param sc
@@ -68,29 +68,29 @@ public class PropAccess implements Access {
         logIt = new StreamLogIt(System.out);
         props = new Properties();
     }
-    
+
     public PropAccess(String ... args) {
         this(System.out,args);
     }
-    
+
     public PropAccess(PrintStream ps, String[] args) {
         logIt = new StreamLogIt(ps==null?System.out:ps);
         init(logIt,args);
     }
-    
+
     public PropAccess(LogIt logit, String[] args) {
         init(logit, args);
     }
-    
+
     public PropAccess(Properties p) {
         this(System.out,p);
     }
-    
+
     public PropAccess(PrintStream ps, Properties p) {
         logIt = new StreamLogIt(ps==null?System.out:ps);
         init(p);
     }
-    
+
     protected void init(final LogIt logIt, final String[] args) {
         this.logIt = logIt;
         Properties nprops=new Properties();
@@ -102,7 +102,7 @@ public class PropAccess implements Access {
         }
         init(nprops);
     }
-    
+
     public static SimpleDateFormat newISO8601() {
         return new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
     }
@@ -110,7 +110,7 @@ public class PropAccess implements Access {
     protected synchronized void init(Properties p) {
         // Make sure these two are set before any changes in Logging
         name = "cadi";
-        
+
         props = new Properties();
         // First, load related System Properties
         for (Entry<Object,Object> es : System.getProperties().entrySet()) {
@@ -119,24 +119,24 @@ public class PropAccess implements Access {
                 if (key.startsWith(start)) {
                     props.put(key, es.getValue());
                 }
-            }            
+            }
         }
         // Second, overlay or fill in with Passed in Props
         if (p!=null) {
             props.putAll(p);
         }
-        
+
         // Preset LogLevel
-        String sLevel = props.getProperty(Config.CADI_LOGLEVEL); 
+        String sLevel = props.getProperty(Config.CADI_LOGLEVEL);
         // Third, load any Chained Property Files
         load(props.getProperty(Config.CADI_PROP_FILES));
-        
+
         if(sLevel==null) { // if LogLev wasn't set before, check again after Chained Load
-            sLevel = props.getProperty(Config.CADI_LOGLEVEL); 
+            sLevel = props.getProperty(Config.CADI_LOGLEVEL);
             if (sLevel==null) {
                 level=DEFAULT.maskOf();
             } else {
-                level=Level.valueOf(sLevel).maskOf(); 
+                level=Level.valueOf(sLevel).maskOf();
             }
         }
         // Setup local Symmetrical key encryption
@@ -149,21 +149,21 @@ public class PropAccess implements Access {
                 System.exit(1);
             }
         }
-        
+
         name = props.getProperty(Config.CADI_LOGNAME, name);
-        
+
         SecurityInfo.setHTTPProtocols(this);
-        
+
     }
-    
-   
+
+
     private void load(String cadi_prop_files) {
         if (cadi_prop_files==null) {
             return;
         }
         String prevKeyFile = props.getProperty(Config.CADI_KEYFILE);
 
-        
+
         for(String filename : Split.splitTrim(File.pathSeparatorChar, cadi_prop_files)) {
             Properties fileProps = new Properties();
             File file = new File(filename);
@@ -208,8 +208,8 @@ public class PropAccess implements Access {
                 printf(Level.WARN,"Warning: recursive CADI Property %s does not exist",file.getAbsolutePath());
             }
         }
-        
-        // Trim 
+
+        // Trim
         for (Entry<Object, Object> es : props.entrySet()) {
             Object value = es.getValue();
             if (value instanceof String) {
@@ -237,7 +237,7 @@ public class PropAccess implements Access {
 
             prevKeyFile=newKeyFile;
         }
-        
+
         String loglevel = props.getProperty(Config.CADI_LOGLEVEL);
         if (loglevel!=null) {
             try {
@@ -247,7 +247,7 @@ public class PropAccess implements Access {
             }
         }
     }
-    
+
     @Override
     public void load(InputStream is) throws IOException {
         props.load(is);
@@ -264,7 +264,7 @@ public class PropAccess implements Access {
     public StringBuilder buildMsg(Level level, Object[] elements) {
         return buildMsg(name,iso8601,level,elements);
     }
-    
+
     /*
      * Need to pass in DateFormat per thread, because not marked as thread safe
      */
@@ -286,7 +286,7 @@ public class PropAccess implements Access {
                 sb.append("] ");
             } else {
                 int idx = 0;
-                if(elements[idx]!=null  && 
+                if(elements[idx]!=null  &&
                     elements[idx] instanceof Integer) {
                     sb.append('-');
                     sb.append(elements[idx]);
@@ -298,7 +298,7 @@ public class PropAccess implements Access {
         }
         return sb;
     }
-    
+
     private static boolean write(boolean first, StringBuilder sb, Object[] elements) {
         String s;
         for (Object o : elements) {
@@ -374,7 +374,7 @@ public class PropAccess implements Access {
             ? symm.depass(encrypted)
             : encrypted;
     }
-    
+
     public String encrypt(String unencrypted) throws IOException {
         return Symm.ENC+symm.enpass(unencrypted);
     }
@@ -385,7 +385,7 @@ public class PropAccess implements Access {
     public String getProperty(String tag) {
         return props.getProperty(tag);
     }
-    
+
 
     public Properties getProperties() {
         return props;
@@ -410,10 +410,10 @@ public class PropAccess implements Access {
     public interface LogIt {
         public void push(Level level, Object ... elements) ;
     }
-    
+
     private class StreamLogIt implements LogIt {
         private PrintStream ps;
-        
+
         public StreamLogIt(PrintStream ps) {
             this.ps = ps;
         }
index 66ba86a..33a5bc9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,7 +25,7 @@ package org.onap.aaf.cadi;
 public interface Revalidator<TRANS> {
     /**
      * Re-Validate Credential
-     * 
+     *
      * @param prin
      * @return
      */
index 194712e..7e26383 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,17 +24,17 @@ package org.onap.aaf.cadi;
 
 /**
  *  Apply any particular security mechanism
- *  
- *  This allows the definition of various mechanisms involved outside of DRcli jars 
- *  
+ *
+ *  This allows the definition of various mechanisms involved outside of DRcli jars
+ *
  * @author Jonathan
  *
  */
 public interface SecuritySetter<CT> {
     public String getID();
-    
+
     public void setSecurity(CT client) throws CadiException;
-    
+
     /**
      * Returns number of bad logins registered
      * @param respCode
index 998b87c..be6e532 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index e753361..b1ec4ca 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,37 +43,37 @@ import org.onap.aaf.cadi.config.Config;
 
 /**
  * Key Conversion, primarily "Base64"
- * 
+ *
  * Base64 is required for "Basic Authorization", which is an important part of the overall CADI Package.
- * 
- * Note: This author found that there is not a "standard" library for Base64 conversion within Java.  
- * The source code implementations available elsewhere were surprisingly inefficient, requiring, for 
+ *
+ * Note: This author found that there is not a "standard" library for Base64 conversion within Java.
+ * The source code implementations available elsewhere were surprisingly inefficient, requiring, for
  * instance, multiple string creation, on a transaction pass.  Integrating other packages that might be
- * efficient enough would put undue Jar File Dependencies given this Framework should have none-but-Java 
+ * efficient enough would put undue Jar File Dependencies given this Framework should have none-but-Java
  * dependencies.
- * 
+ *
  * The essential algorithm is good for a symmetrical key system, as Base64 is really just
- * a symmetrical key that everyone knows the values.  
- * 
- * This code is quite fast, taking about .016 ms for encrypting, decrypting and even .08 for key 
- * generation. The speed quality, especially of key generation makes this a candidate for a short term token 
+ * a symmetrical key that everyone knows the values.
+ *
+ * This code is quite fast, taking about .016 ms for encrypting, decrypting and even .08 for key
+ * generation. The speed quality, especially of key generation makes this a candidate for a short term token
  * used for identity.
- * 
- * It may be used to easily avoid placing Clear-Text passwords in configurations, etc. and contains 
- * supporting functions such as 2048 keyfile generation (see keygen).  This keyfile should, of course, 
- * be set to "400" (Unix) and protected as any other mechanism requires. 
- * 
+ *
+ * It may be used to easily avoid placing Clear-Text passwords in configurations, etc. and contains
+ * supporting functions such as 2048 keyfile generation (see keygen).  This keyfile should, of course,
+ * be set to "400" (Unix) and protected as any other mechanism requires.
+ *
  * AES Encryption is also employed to include standards.
- * 
+ *
  * @author Jonathan
  *
  */
 public class Symm {
-    private static final byte[] DOUBLE_EQ = new byte[] {'=','='}; 
+    private static final byte[] DOUBLE_EQ = new byte[] {'=','='};
     public static final String ENC = "enc:";
     private static final Object LOCK = new Object();
     private static final SecureRandom random = new SecureRandom();
-    
+
     public final char[] codeset;
     private final int splitLinesAt;
     private final String encoding;
@@ -83,7 +83,7 @@ public class Symm {
     //Note: AES Encryption is not Thread Safe.  It is Synchronized
     //private AES aes = null;  // only initialized from File, and only if needed for Passwords
     private String name;
-    
+
     /**
      * This is the standard base64 Key Set.
      * RFC 2045
@@ -116,15 +116,15 @@ public class Symm {
      * Note, this is too large to fit into the algorithm. Only use with PassGen
      */
     private static char passChars[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+!@#$%^&*(){}[]?:;,.".toCharArray();
-            
+
 
     private static Symm internalOnly = null;
-    
+
     /**
      * Use this to create special case Case Sets and/or Line breaks
-     * 
+     *
      * If you don't know why you need this, use the Singleton Method
-     * 
+     *
      * @param codeset
      * @param split
      */
@@ -136,8 +136,8 @@ public class Symm {
         this.name = name;
         char prev = 0, curr=0, first = 0;
         int offset=Integer.SIZE; // something that's out of range for integer array
-        
-        // There can be time efficiencies gained when the underlying keyset consists mainly of ordered 
+
+        // There can be time efficiencies gained when the underlying keyset consists mainly of ordered
         // data (i.e. abcde...).  Therefore, we'll quickly analyze the keyset.  If it proves to have
         // too much entropy, the "Unordered" algorithm, which is faster in such cases is used.
         ArrayList<int[]> la = new ArrayList<>();
@@ -146,7 +146,7 @@ public class Symm {
             if (prev+1==curr) { // is next character in set
                 prev = curr;
             } else {
-                if (offset!=Integer.SIZE) { // add previous range 
+                if (offset!=Integer.SIZE) { // add previous range
                     la.add(new int[]{first,prev,offset});
                 }
                 first = prev = curr;
@@ -162,11 +162,11 @@ public class Symm {
             convert = new Ordered(range);
         }
     }
-    
+
     public Symm copy(int lines) {
         return new Symm(codeset,lines,encoding,endEquals, "Copied " + lines);
     }
-    
+
     // Only used by keygen, which is intentionally randomized. Therefore, always use unordered
     private  Symm(char[] codeset, Symm parent) {
         this.codeset = codeset;
@@ -186,7 +186,7 @@ public class Symm {
     }
 
     /**
-     * Obtain the base64() behavior of this class, for use in standard BASIC AUTH mechanism, etc.  
+     * Obtain the base64() behavior of this class, for use in standard BASIC AUTH mechanism, etc.
      * No Line Splitting
      * @return
      */
@@ -222,7 +222,7 @@ public class Symm {
         }
         return exec.exec(new AES(keyBytes,0,keyBytes.length));
     }
-    
+
     public interface Encryption {
         public CipherOutputStream outputStream(OutputStream os, boolean encrypt);
         public CipherInputStream inputStream(InputStream is, boolean encrypt);
@@ -231,7 +231,7 @@ public class Symm {
     public static interface SyncExec<T> {
         public T exec(Encryption enc) throws IOException, Exception;
     }
-    
+
     public byte[] encode(byte[] toEncrypt) throws IOException {
             if (toEncrypt==null) {
                 return EMPTY;
@@ -251,7 +251,7 @@ public class Symm {
     /**
      *  Helper function for String API of "Encode"
      *  use "getBytes" with appropriate char encoding, etc.
-     *  
+     *
      * @param str
      * @return
      * @throws IOException
@@ -259,7 +259,7 @@ public class Symm {
     public String encode(String str) throws IOException {
         byte[] array;
         boolean useDefaultEncoding = false;
-        try { 
+        try {
             array = str.getBytes(encoding);
         } catch (IOException e) {
             array = str.getBytes(); // take default
@@ -267,14 +267,14 @@ public class Symm {
         }
         // Calculate expected size to avoid any buffer expansion copies within the ByteArrayOutput code
         ByteArrayOutputStream baos = new ByteArrayOutputStream((int)(array.length*1.363)); // account for 4 bytes for 3 and a byte or two more
-        
+
         encode(new ByteArrayInputStream(array),baos);
         if (useDefaultEncoding) {
             return baos.toString();
         }
         return baos.toString(encoding);
     }
-    
+
     /**
      * Helper function for the String API of "Decode"
      * use "getBytes" with appropriate char encoding, etc.
@@ -285,7 +285,7 @@ public class Symm {
     public String decode(String str) throws IOException {
         byte[] array;
         boolean useDefaultEncoding = false;
-        try { 
+        try {
             array = str.getBytes(encoding);
         } catch (IOException e) {
             array = str.getBytes(); // take default
@@ -302,9 +302,9 @@ public class Symm {
 
     /**
      * Convenience Function
-     * 
+     *
      * encode String into InputStream and call encode(InputStream, OutputStream)
-     * 
+     *
      * @param string
      * @param out
      * @throws IOException
@@ -315,9 +315,9 @@ public class Symm {
 
     /**
      * Convenience Function
-     * 
+     *
      * encode String into InputStream and call decode(InputStream, OutputStream)
-     * 
+     *
      * @param string
      * @param out
      * @throws IOException
@@ -331,16 +331,16 @@ public class Symm {
         encode(is,os);
     }
 
-    /** 
+    /**
      * encode InputStream onto Output Stream
-     * 
+     *
      * @param is
      * @param estimate
      * @return
      * @throws IOException
      */
     public void encode(InputStream is, OutputStream os) throws IOException {
-        // StringBuilder sb = new StringBuilder((int)(estimate*1.255)); // try to get the right size of StringBuilder from start.. slightly more than 1.25 times 
+        // StringBuilder sb = new StringBuilder((int)(estimate*1.255)); // try to get the right size of StringBuilder from start.. slightly more than 1.25 times
         int prev=0;
         int read, idx=0, line=0;
         boolean go;
@@ -360,7 +360,7 @@ public class Symm {
                         os.write(codeset[((prev & 0x03)<<4) | (read>>4)]);
                         prev = read;
                         break;
-                    default: //(3+) 
+                    default: //(3+)
                             // Char 1 is last 4 bits of prev plus the first 2 bits of read
                             // Char 2 is the last 6 bits of read
                         os.write(codeset[(((prev & 0xF)<<2) | (read>>6))]);
@@ -387,7 +387,7 @@ public class Symm {
                 }
                 idx = 0;
             }
-            
+
         } while (go);
     }
 
@@ -412,7 +412,7 @@ public class Symm {
                if (index>=0) {
                 switch(++idx) { // 1 based cases, slightly faster ++
                     case 1: // index goes into first 6 bits of prev
-                        prev = index<<2; 
+                        prev = index<<2;
                         break;
                     case 2: // write second 2 bits of into prev, write byte, last 4 bits go into prev
                         os.write((byte)(prev|(index>>4)));
@@ -430,7 +430,7 @@ public class Symm {
            };
            os.flush();
    }
-   
+
    /**
     * Interface to allow this class to choose which algorithm to find index of character in Key
     * @author Jonathan
@@ -454,7 +454,7 @@ public class Symm {
        public int convert(int read) throws IOException {
            // System.out.print((char)read);
            switch(read) {
-               case -1: 
+               case -1:
                case '=':
                case ' ':
                case '\n':
@@ -469,7 +469,7 @@ public class Symm {
            throw new IOException("Unacceptable Character in Stream");
        }
    }
-   
+
    /**
     * Unordered, i.e. the key is purposely randomized, simply has to investigate each character
     * until we find a match.
@@ -483,7 +483,7 @@ public class Symm {
        }
        public int convert(int read) throws IOException {
            switch(read) {
-               case -1: 
+               case -1:
                case '=':
                  case '\n':
                  case '\r':
@@ -499,7 +499,7 @@ public class Symm {
 
    /**
     * Generate a 2048 based Key from which we extract our code base
-    * 
+    *
     * @return
     * @throws IOException
     */
@@ -510,7 +510,7 @@ public class Symm {
         base64url.encode(new ByteArrayInputStream(inkey), baos);
         return baos.toByteArray();
    }
-   
+
    // A class allowing us to be less predictable about significant digits (i.e. not picking them up from the
    // beginning, and not picking them up in an ordered row.  Gives a nice 2048 with no visible patterns.
    private class Obtain {
@@ -518,7 +518,7 @@ public class Symm {
        private int skip;
        private int length;
        private byte[] key;
-  
+
        private Obtain(Symm b64, byte[] key) {
            skip = Math.abs(key[key.length-13]%key.length);
            if ((key.length&0x1) == (skip&0x1)) { // if both are odd or both are even
@@ -528,19 +528,19 @@ public class Symm {
            last = 17+length%59; // never start at beginning
            this.key = key;
        }
-       
+
        private int next() {
              return Math.abs(key[(++last*skip)%key.length])%length;
        }
    };
-  
+
    /**
     * Obtain a Symm from "keyfile" (Config.KEYFILE) property
-    * 
+    *
     * @param acesss
     * @return
- * @throws IOException 
- * @throws CadiException 
+ * @throws IOException
+ * @throws CadiException
     */
    public static Symm obtain(Access access) throws CadiException {
         String keyfile = access.getProperty(Config.CADI_KEYFILE,null);
@@ -586,7 +586,7 @@ public class Symm {
         }
    }
   /**
-   *  Create a new random key 
+   *  Create a new random key
    */
   public Symm obtain() throws IOException {
         byte inkey[] = new byte[0x800];
@@ -595,10 +595,10 @@ public class Symm {
         s.name = "from Random";
         return s;
   }
-  
+
   /**
    * Obtain a Symm from 2048 key from a String
-   * 
+   *
    * @param key
    * @return
    * @throws IOException
@@ -608,10 +608,10 @@ public class Symm {
       s.name = "from String";
       return s;
   }
-  
+
   /**
    * Obtain a Symm from 2048 key from a Stream
-   * 
+   *
    * @param is
    * @return
    * @throws IOException
@@ -635,7 +635,7 @@ public class Symm {
 
   /**
    * Convenience for picking up Keyfile
-   * 
+   *
    * @param f
    * @return
    * @throws IOException
@@ -654,7 +654,7 @@ public class Symm {
    * Decrypt into a String
    *
    *  Convenience method
-   * 
+   *
    * @param password
    * @return
    * @throws IOException
@@ -667,7 +667,7 @@ public class Symm {
 
   /**
    * Create an encrypted password, making sure that even short passwords have a minimum length.
-   * 
+   *
    * @param password
    * @param os
    * @throws IOException
@@ -682,7 +682,7 @@ public class Symm {
         if (this.getClass().getSimpleName().startsWith("base64")) { // don't expose randomization
             dos.write(bytes);
         } else {
-            
+
             Random r = new SecureRandom();
             int start = 0;
             byte b;
@@ -710,7 +710,7 @@ public class Symm {
                 dos.write(bytes);
             }
         }
-        
+
         // 7/21/2016 Jonathan add AES Encryption to the mix
         try {
             exec(new SyncExec<Void>() {
@@ -735,9 +735,9 @@ public class Symm {
 
   /**
    * Decrypt a password into a String
-   * 
+   *
    * Convenience method
-   * 
+   *
    * @param password
    * @return
    * @throws IOException
@@ -748,12 +748,12 @@ public class Symm {
       depass(password,baos);
       return new String(baos.toByteArray());
   }
-  
+
   /**
    * Decrypt a password
-   * 
+   *
    * Skip Symm.ENC
-   * 
+   *
    * @param password
    * @param os
    * @return
@@ -803,7 +803,7 @@ public class Symm {
                 dos.writeByte(dis.readByte());
             }
           } else {
-              int pre =((Byte.SIZE*3+Integer.SIZE+Byte.SIZE)/Byte.SIZE)+start; 
+              int pre =((Byte.SIZE*3+Integer.SIZE+Byte.SIZE)/Byte.SIZE)+start;
               os.write(bytes, pre, bytes.length-pre);
           }
       }
@@ -811,9 +811,9 @@ public class Symm {
   }
 
   public static String randomGen(int numBytes) {
-      return randomGen(passChars,numBytes);  
+      return randomGen(passChars,numBytes);
   }
-  
+
   public static String randomGen(char[] chars ,int numBytes) {
         int rint;
         StringBuilder sb = new StringBuilder(numBytes);
@@ -824,11 +824,11 @@ public class Symm {
         return sb.toString();
   }
   // Internal mechanism for helping to randomize placement of characters within a Symm codeset
-  // Based on an incoming data stream (originally created randomly, but can be recreated within 
+  // Based on an incoming data stream (originally created randomly, but can be recreated within
   // 2048 key), go after a particular place in the new codeset.  If that codeset spot is used, then move
-  // right or left (depending on iteration) to find the next available slot.  In this way, key generation 
+  // right or left (depending on iteration) to find the next available slot.  In this way, key generation
   // is speeded up by only enacting N iterations, but adds a spreading effect of the random number stream, so that keyset is also
-  // shuffled for a good spread. It is, however, repeatable, given the same number set, allowing for 
+  // shuffled for a good spread. It is, however, repeatable, given the same number set, allowing for
   // quick recreation when the official stream is actually obtained.
   public Symm obtain(byte[] key) throws IOException {
       int filled = codeset.length;
@@ -844,7 +844,7 @@ public class Symm {
           if (index<0 || index>=codeset.length) {
               System.out.println("uh, oh");
           }
-          if (right) { // alternate going left or right to find the next open slot (keeps it from taking too long to hit something) 
+          if (right) { // alternate going left or right to find the next open slot (keeps it from taking too long to hit something)
               for (int j=index;j<end;++j) {
                   if (seq[j]==0) {
                       seq[j]=codeset[filled];
@@ -879,12 +879,12 @@ public class Symm {
 
       return newSymm;
   }
-  
-  /** 
+
+  /**
    * This Symm is generated for internal JVM use.  It has no external keyfile, but can be used
    * for securing Memory, as it remains the same ONLY of the current JVM
    * @return
- * @throws IOException 
+ * @throws IOException
    */
   public static synchronized Symm internalOnly() throws IOException {
       if (internalOnly==null) {
@@ -897,7 +897,7 @@ public class Symm {
       }
       return internalOnly;
   }
-  
+
   @Override
   public String toString() {
       return name;
index 771ebcf..ee9b343 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,33 +25,33 @@ import org.onap.aaf.cadi.taf.TafResp;
 
 
 /**
- * TAF - Transmutative Assertion Framework.  
- * 
+ * TAF - Transmutative Assertion Framework.
+ *
  * This main Interface embodies the essential of the assertion, where a number of different TAFs might be used to authenticate
  * and that authentication to be recognized through other elements.
- * 
+ *
  * Concept by Robert Garskof.  Implemented by Jonathan Gathman
- *  
+ *
  * @author Jonathan
  *
  */
 public interface Taf {
     enum LifeForm {CBLF, SBLF, LFN};
     /**
-     * The lifeForm param is a humorous way of describing whether the interaction is proceeding from direct Human Interaction via a browser 
+     * The lifeForm param is a humorous way of describing whether the interaction is proceeding from direct Human Interaction via a browser
      * or App which can directly query a memorized password, key sequence, bio-feedback, from that user, or a machine mechanism for which identity
-     * can more easily be determined by Certificate, Mechanical ID/Password etc.  Popularized in modern culture and Science Fiction (especially 
-     * Star Trek), we (starting with Robert Garskof) use the terms "Carbon Based Life Form" (CBLF) for mechanisms with people at the end of them, or 
+     * can more easily be determined by Certificate, Mechanical ID/Password etc.  Popularized in modern culture and Science Fiction (especially
+     * Star Trek), we (starting with Robert Garskof) use the terms "Carbon Based Life Form" (CBLF) for mechanisms with people at the end of them, or
      * "Silicon Based Life Forms" (SBLF) to indicate machine only interactions.  I have added "LFN" for (Life-Form Neutral) to aid identifying
-     * processes for which it doesn't matter whether there is a human at the immediate end of the chain, or cannot be determined mechanically.  
-     * 
+     * processes for which it doesn't matter whether there is a human at the immediate end of the chain, or cannot be determined mechanically.
+     *
      * The variable parameter is not necessarily ideal, but with too many unknown Tafs to be created, flexibility,
      * is unfortunately required at this point.  Future versions could lock this down more.  Jonathan 10/18/2012
-     * 
+     *
      * @param lifeForm
      * @param info
      * @return
      */
     public TafResp validate(LifeForm reading, String ... info);
-    
+
 }
index 1203b8d..b88591f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,18 +26,18 @@ import java.security.Principal;
 /**
  * The unique element of TAF is that we establish the relationship/mechanism to mutate the Principal derived from
  * one Authentication mechanism into a trustable Principal of another.  The mechanism needs to be decided by system
- * trusting.  
- * 
+ * trusting.
+ *
  * The Generic "T" is used so that the code used will be very specific for the implementation, enforced by Compiler
- * 
- * This interface will allow differences of trusting Transmutation of Authentication 
+ *
+ * This interface will allow differences of trusting Transmutation of Authentication
  * @author Jonathan
  *
  */
 public interface Transmutate<T> {
     /**
      * Mutate the (assumed validated) Principal into the expected Principal name to be used to construct
-     * 
+     *
      * @param p
      * @return
      */
index 6b1433f..3ab9c29 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -27,13 +27,13 @@ import org.onap.aaf.cadi.taf.TafResp;
 
 /**
  * Change to another Principal based on Trust of caller and User Chain (if desired)
- * 
+ *
  * @author Jonathan
  *
  */
 public interface TrustChecker {
     public TafResp mayTrust(TafResp tresp, HttpServletRequest req);
-    
+
     /**
      * A class that trusts no-one else, so just return same TResp
      */
index cb3b4e8..9783755 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,7 +31,7 @@ import org.onap.aaf.cadi.lur.LocalPermission;
 
 /**
  * Class to hold info from the User Perspective.
- * 
+ *
  * @author Jonathan
  *
  */
@@ -44,7 +44,7 @@ public final class User<PERM extends Permission> {
     long permExpires;
     private final long interval;
     int count;
-    
+
     // Note: This should only be used for Local RBAC (in memory)
     public User(Principal principal) {
         this.principal = principal;
@@ -86,23 +86,23 @@ public final class User<PERM extends Permission> {
         count = 0;
         renewPerm();
     }
-    
+
     public void renewPerm() {
         permExpires = System.currentTimeMillis()+interval;
     }
-    
+
     public long permExpires() {
         return permExpires;
     }
-    
+
     public boolean permExpired() {
         return System.currentTimeMillis() > permExpires;
     }
 
     public boolean noPerms() {
-        return perms==null || perms==NULL_MAP || perms.values().size()==0; 
+        return perms==null || perms==NULL_MAP || perms.values().size()==0;
     }
-    
+
     public synchronized void setNoPerms() {
         perms=NULL_MAP;
         renewPerm();
@@ -115,11 +115,11 @@ public final class User<PERM extends Permission> {
     public synchronized void incCount() {
         ++count;
     }
-    
+
     public synchronized void resetCount() {
         count=0;
     }
-    
+
     public Map<String,Permission> newMap() {
         return new ConcurrentHashMap<>();
     }
@@ -146,11 +146,11 @@ public final class User<PERM extends Permission> {
         }
         return false;
     }
-    
+
     public void copyPermsTo(List<Permission> sink) {
         sink.addAll(perms.values());
     }
-    
+
     public String toString() {
         StringBuilder sb = new StringBuilder();
         sb.append(principal.getName());
index f6a9808..f299f93 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -23,17 +23,17 @@ package org.onap.aaf.cadi;
 
 /**
  * Interface to add a User Chain String to Principal
- * 
- * 
- * 
+ *
+ *
+ *
  *  Where
- *  APP is name suitable for Logging (i.e. official App Acronym) 
+ *  APP is name suitable for Logging (i.e. official App Acronym)
  *  ID is official User or MechID, best if includes Identity Source (i.e. ab1234@people.osaaf.org)
  *  Protocol is the Security protocol,
- *  
+ *
  *  Format:<ID>:<APP>:<protocol>[:AS][,<ID>:<APP>:<protocol>]*
- *  
- * 
+ *
+ *
  * @author Jonathan
  *
  */
index 7bd578a..a231b39 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -64,7 +64,7 @@ import org.onap.aaf.cadi.util.Split;
 /**
  * Create a Consistent Configuration mechanism, even when configuration styles are as vastly different as
  * Properties vs JavaBeans vs FilterConfigs...
- * 
+ *
  * @author Jonathan
  *
  */
@@ -110,16 +110,16 @@ public class Config {
     public static final String CADI_PROTOCOLS = "cadi_protocols";
     public static final String CADI_NOAUTHN = "cadi_noauthn";
     public static final String CADI_LOC_LIST = "cadi_loc_list";
-    
+
     // Special Behaviors
     public static final String CADI_BATH_CONVERT = "cadi_bath_convert";
     public static final String CADI_API_ENFORCEMENT = "cadi_api_enforcement";
     public static final String CADI_ADD_TAFS = "cadi_add_tafs";
     public static final String CADI_ADD_LURS = "cadi_add_lurs";
-    
+
     public static final String CADI_USER_CHAIN_TAG = "cadi_user_chain";
     public static final String CADI_USER_CHAIN = "USER_CHAIN";
-    
+
     public static final String CADI_OAUTH2_URL="cadi_oauth2_url";
     public static final String CADI_TOKEN_DIR = "cadi_token_dir";
 
@@ -133,20 +133,20 @@ public class Config {
             + "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,TLS_ECDHE_RSA_WITH_RC4_128_SHA,TLS_ECDH_ECDSA_WITH_RC4_128_SHA,"
             + "TLS_ECDH_RSA_WITH_RC4_128_SHA,TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,"
             + "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV";
-             
+
 
     public static final String LOCALHOST_ALLOW = "localhost_allow";
     public static final String LOCALHOST_DENY = "localhost_deny";
-    
-    public static final String BASIC_REALM = "basic_realm";  // what is sent to the client 
-    public static final String BASIC_WARN = "basic_warn";  // Warning of insecure channel 
+
+    public static final String BASIC_REALM = "basic_realm";  // what is sent to the client
+    public static final String BASIC_WARN = "basic_warn";  // Warning of insecure channel
     public static final String USERS = "local_users";
     public static final String GROUPS = "local_groups";
     public static final String WRITE_TO = "local_writeto"; // dump RBAC to local file in Tomcat Style (some apps use)
-    
+
     public static final String OAUTH_CLIENT_ID="client_id";
     public static final String OAUTH_CLIENT_SECRET="client_secret";
-    
+
     public static final String AAF_ENV = "aaf_env";
     public static final String AAF_ROOT_NS = "aaf_root_ns";
     public static final String AAF_ROOT_NS_DEF = "org.osaaf.aaf";
@@ -159,15 +159,15 @@ public class Config {
     public static final String AAF_DEFAULT_API_VERSION = "2.1";
     public static final String AAF_DEPLOYED_VERSION="aaf_deployed_version";
     public static final String AAF_API_VERSION = "aaf_api_version";
-    public static final String AAF_URL = "aaf_url"; //URL for AAF... Use to trigger AAF configuration   
+    public static final String AAF_URL = "aaf_url"; //URL for AAF... Use to trigger AAF configuration
     public static final String AAF_LOCATOR_CLASS = "aaf_locator_class";
     // AAF Locator Entries are ADDITIONAL entries, which also gives the Property ability
     // to set these entries manually
     // example: adding a K8S name like "oom"
-    // this will allow Registrations to pick up 
+    // this will allow Registrations to pick up
     // locator_ns.oom for onap's "OOM" based k8s entries, etc.
     public static final String AAF_LOCATOR_CONTAINER="aaf_locator_container";
-    // An ID for another Container, to be used to avoid picking up the wrong internal info 
+    // An ID for another Container, to be used to avoid picking up the wrong internal info
     // for another container.
     public static final String AAF_LOCATOR_CONTAINER_ID = "aaf_locator_container_id";
     public static final String AAF_LOCATOR_CONTAINER_NS = "aaf_locator_container_ns";
@@ -181,7 +181,7 @@ public class Config {
     public static final String AAF_LOCATOR_PUBLIC_PORT = "aaf_locator_public_port";
     public static final String AAF_LOCATOR_PUBLIC_FQDN = "aaf_locator_public_fqdn";
     public static final String AAF_LOCATOR_PUBLIC_NAME = "aaf_locator_public_name";
-    
+
     // AAF Service will write to the Audit Log if a past due AAF stored Password
     // is being used within # of days specified.
     public static final String AAF_CRED_WARN_DAYS="aaf_cred_warn_days";
@@ -196,7 +196,7 @@ public class Config {
     public static final String AAF_CONN_TIMEOUT_DEF = "3000";
     public static final String AAF_CONN_IDLE_TIMEOUT = "aaf_conn_idle_timeout"; // only for Direct Jetty Access.
     public static final String AAF_CONN_IDLE_TIMEOUT_DEF = "10000"; // only for Direct Jetty Access.
-     
+
     // Default Classes: These are for Class loading to avoid direct compile links
     public static final String AAF_TAF_CLASS_DEF = "org.onap.aaf.cadi.aaf.v2_0.AAFTaf";
     public static final String AAF_LOCATOR_CLASS_DEF = "org.onap.aaf.cadi.aaf.v2_0.AAFLocator";
@@ -212,7 +212,7 @@ public class Config {
     public static final String AAF_CLEAN_INTERVAL_DEF = "30000"; // Default is 30 seconds
     public static final String AAF_REFRESH_TRIGGER_COUNT = "aaf_refresh_trigger_count";
     public static final String AAF_REFRESH_TRIGGER_COUNT_DEF = "3"; // Default is 10 mins
-    
+
     public static final String AAF_HIGH_COUNT = "aaf_high_count";
     public static final String AAF_HIGH_COUNT_DEF = "1000"; // Default is 1000 entries
     public static final String AAF_PERM_MAP = "aaf_perm_map";
@@ -251,7 +251,7 @@ public class Config {
     public static final String AAF_OAUTH2_INTROSPECT_URL = "aaf_oauth2_introspect_url";
     public static final String AAF_ALT_OAUTH2_TOKEN_URL = "aaf_alt_oauth2_token_url";
     public static final String AAF_ALT_OAUTH2_INTROSPECT_URL = "aaf_alt_oauth2_introspect_url";
-    public static final String AAF_ALT_OAUTH2_DOMAIN = "aaf_alt_oauth2_domain"; 
+    public static final String AAF_ALT_OAUTH2_DOMAIN = "aaf_alt_oauth2_domain";
     public static final String AAF_ALT_CLIENT_ID = "aaf_alt_oauth2_client_id";
     public static final String AAF_ALT_CLIENT_SECRET = "aaf_alt_oauth2_client_secret";
     public static final String AAF_OAUTH2_HELLO_URL = "aaf_oauth2_hello_url";
@@ -300,9 +300,9 @@ public class Config {
         // IMPORTANT!  Don't attempt to load AAF Connector if there is no AAF URL
         String aafURL = logProp(rph, AAF_URL,null);
         if (!hasDirectAAF && aafcon==null && aafURL!=null) {
-            aafcon = loadAAFConnector(si, aafURL);    
+            aafcon = loadAAFConnector(si, aafURL);
         }
-        
+
         HttpTaf taf;
         // Setup Host, in case Network reports an unusable Hostname (i.e. VTiers, VPNs, etc)
         String hostname = logProp(access, HOSTNAME,null);
@@ -313,7 +313,7 @@ public class Config {
                 throw new CadiException("Unable to determine Hostname",e1);
             }
         }
-        
+
         access.log(Level.INIT, "Hostname set to",hostname);
         // Get appropriate TAFs
         ArrayList<Priori<HttpTaf>> htlist = new ArrayList<>();
@@ -355,7 +355,7 @@ public class Config {
         } else {
             access.log(Level.INIT,"Certificate Authorization not enabled");
         }
-        
+
         /////////////////////////////////////////////////////
         // Configure Basic Auth (local content)
         /////////////////////////////////////////////////////
@@ -406,7 +406,7 @@ public class Config {
                 } else {
                     access.log(Level.INIT,"Local Basic Authorization is disabled.  Enable by setting basicRealm=<appropriate realm, i.e. my.att.com>");
                 }
-            
+
                 /////////////////////////////////////////////////////
                 // Configure AAF Driven Basic Auth
                 /////////////////////////////////////////////////////
@@ -414,10 +414,10 @@ public class Config {
                     access.log(Level.INIT,"AAF Connection (AAFcon) is null.  Cannot create an AAF TAF");
                 } else if (aafURL==null) {
                     access.log(Level.INIT,"No AAF URL in properties, Cannot create an AAF TAF");
-                } else {// There's an AAF_URL... try to configure an AAF 
+                } else {// There's an AAF_URL... try to configure an AAF
                     String aafTafClassName = logProp(access, AAF_TAF_CLASS,AAF_TAF_CLASS_DEF);
                     // Only 2.0 available at this time
-                    if (AAF_TAF_CLASS_DEF.equals(aafTafClassName)) { 
+                    if (AAF_TAF_CLASS_DEF.equals(aafTafClassName)) {
                         try {
                             Class<?> aafTafClass = loadClass(access,aafTafClassName);
                             if (aafTafClass!=null) {
@@ -447,7 +447,7 @@ public class Config {
                     }
                 }
             }
-            
+
             /////////////////////////////////////////////////////
             // Configure OAuth TAF
             /////////////////////////////////////////////////////
@@ -490,7 +490,7 @@ public class Config {
                     access.log(Level.INIT,"OAuth TAF is not configured");
                 }
             }
-    
+
             /////////////////////////////////////////////////////
             // Adding BasicAuth (AAF) last, after other primary Cookie Based
             // Needs to be before Cert... see below
@@ -498,7 +498,7 @@ public class Config {
             if (aaftaf!=null) {
                 htlist.add(new Priori<HttpTaf>(aaftaf,40));
             }
-        }    
+        }
 
         /////////////////////////////////////////////////////
         // Any Additional Tafs passed in Constructor
@@ -534,7 +534,7 @@ public class Config {
                 }
             }
         }
-        
+
         // Add BasicAuth, if any, to x509Taf
         if (x509TAF!=null) {
             for ( Priori<HttpTaf> ht : htlist) {
@@ -543,12 +543,12 @@ public class Config {
                 }
             }
         }
-        
+
         /////////////////////////////////////////////////////
         // Additional TAFs by Plugin
         /////////////////////////////////////////////////////
         Priori.add(access, CADI_ADD_TAFS, htlist);
-        
+
         /////////////////////////////////////////////////////
         // Create EpiTaf from configured TAFs
         /////////////////////////////////////////////////////
@@ -571,17 +571,17 @@ public class Config {
             access.log(Level.INIT, sb);
 
             Locator<URI> locator = loadLocator(si, aafURL);
-            
+
             taf = new HttpEpiTaf(access,locator, tc, htarray); // ok to pass locator == null
             String level = logProp(access, CADI_LOGLEVEL, null);
             if (level!=null) {
                 access.setLogLevel(Level.valueOf(level));
             }
         }
-        
+
         return taf;
     }
-    
+
     public static String logProp(RegistrationPropHolder rph, String tag, String def) {
         String rv = rph.access().getProperty(tag, def);
         if (rv == null) {
@@ -591,9 +591,9 @@ public class Config {
             rph.access().log(Level.INIT,tag,"is set to",rv);
         }
         return rv;
-        
+
     }
-    
+
     public static String logProp(Access access,String tag, String def) {
         String rv = access.getProperty(tag, def);
         if (rv == null) {
@@ -603,7 +603,7 @@ public class Config {
         }
         return rv;
     }
-    
+
     public static Lur configLur(SecurityInfoC<HttpURLConnection> si, Connector con, Object ... additionalTafLurs) throws CadiException {
         Access access = si.access;
         RegistrationPropHolder rph;
@@ -614,7 +614,7 @@ public class Config {
         }
 
         List<Priori<Lur>> lurs = new ArrayList<>();
-        
+
         /////////////////////////////////////////////////////
         // Configure a Local Property Based RBAC/LUR
         /////////////////////////////////////////////////////
@@ -625,7 +625,7 @@ public class Config {
             if (groups!=null || users!=null) {
                 LocalLur ll = new LocalLur(access, users, groups);  // note b64==null is ok.. just means no encryption.
                 lurs.add(new Priori<Lur>(ll,10));
-                
+
                 String writeto = access.getProperty(WRITE_TO,null);
                 if (writeto!=null) {
                     String msg = UsersDump.updateUsers(writeto, ll);
@@ -660,14 +660,14 @@ public class Config {
                     msg = e.getCause().getMessage();
                 }
                 access.log(Level.INIT,"AAF/OAuth LUR is not instantiated.",msg,e);
-            } 
+            }
         } else {
             access.log(Level.INIT, "OAuth2 Lur disabled");
         }
 
         if (con!=null) { // try to reutilize connector
             lurs.add(new Priori<Lur>(con.newLur(),30));
-        } else { 
+        } else {
             /////////////////////////////////////////////////////
             // Configure the AAF Lur (if any)
             /////////////////////////////////////////////////////
@@ -693,7 +693,7 @@ public class Config {
                 } else {// There's an AAF_URL... try to configure an AAF
                     String aafLurClassStr = logProp(access,AAF_LUR_CLASS,AAF_V2_0_AAF_LUR_PERM);
                     ////////////AAF Lur 2.0 /////////////
-                    if (aafLurClassStr!=null && aafLurClassStr.startsWith(AAF_V2_0)) { 
+                    if (aafLurClassStr!=null && aafLurClassStr.startsWith(AAF_V2_0)) {
                         try {
                             Object aafcon = loadAAFConnector(si, aafURL);
                             if (aafcon==null) {
@@ -703,7 +703,7 @@ public class Config {
                                 if (aafAbsAAFCon!=null) {
                                     Method mNewLur = aafAbsAAFCon.getMethod("newLur");
                                     Object aaflur = mNewLur.invoke(aafcon);
-                
+
                                     if (aaflur==null) {
                                         access.log(Level.INIT,"ERROR! AAF LUR Failed construction.  NOT Configured");
                                     } else {
@@ -719,7 +719,7 @@ public class Config {
                         } catch (Exception e) {
                             access.log(e,"AAF LUR class,",aafLurClassStr,"could not be constructed with given Constructors.");
                         }
-                    } 
+                    }
                 }
             }
         }
@@ -740,13 +740,13 @@ public class Config {
         /////////////////////////////////////////////////////
         // Additional LURs by Plugin
         /////////////////////////////////////////////////////
-        Priori.add(access, CADI_ADD_LURS, lurs);       
+        Priori.add(access, CADI_ADD_LURS, lurs);
 
         /////////////////////////////////////////////////////
-        // Return a Lur based on how many there are... 
+        // Return a Lur based on how many there are...
         /////////////////////////////////////////////////////
         switch(lurs.size()) {
-            case 0: 
+            case 0:
                 access.log(Level.INIT,"WARNING! No CADI LURs configured");
                 // Return a NULL Lur that does nothing.
                 return new NullLur();
@@ -770,7 +770,7 @@ public class Config {
                 return new EpiLur(la);
         }
     }
-    
+
     private static boolean hasDirect(String simpleClassName, Object[] additionalTafLurs) {
         if (additionalTafLurs!=null) {
             for (Object tf : additionalTafLurs) {
@@ -922,7 +922,7 @@ public class Config {
                     locator = (Locator<URI>)cnst.newInstance(new Object[] {si,locatorURI});
                     int port = fui.getPort();
                     String portS = port<0?"":(":"+port);
-                    
+
                     access.log(Level.INFO, "AAFLocator enabled using " + locatorURI.getScheme() +"://"+fui.getHost() + portS);
                 } else {
                     access.log(Level.INFO, "AAFLocator enabled using preloaded " + locator.getClass().getSimpleName());
@@ -943,7 +943,7 @@ public class Config {
     public static String getDefaultRealm() {
         return defaultRealm;
     }
-    
+
     public static String getAAFLocateUrl(Access access) {
         String rv = null;
         String cont = access.getProperty(AAF_LOCATOR_CONTAINER,null);
@@ -959,7 +959,7 @@ public class Config {
     private static class Priori<T> implements Comparable<Priori<T>> {
         public final T t;
         public final int priority;
-        
+
         public Priori(final T t, final int priority) {
             this.t = t;
             this.priority = priority;
@@ -997,7 +997,7 @@ public class Config {
                                 access.printf(Level.ERROR, "%s format is <classname>,priority[;...]\n",CADI_ADD_TAFS);
                             }
                     }
-                    
+
                     if(clssn!=null) {
                         Class<?> cls = loadClass(access, clssn);
                         if(cls!=null) {
@@ -1009,7 +1009,7 @@ public class Config {
                                 } catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
                                     String hostname = access.getProperty(Config.HOSTNAME,null);
                                     if(hostname==null) {
-                                        access.printf(Level.ERROR, "%s cannot be constructed on this machine.  Set valid 'hostname' in your properties\n",clssn);    
+                                        access.printf(Level.ERROR, "%s cannot be constructed on this machine.  Set valid 'hostname' in your properties\n",clssn);
                                     } else {
                                         access.printf(Level.ERROR, "%s cannot be constructed on %s with Access.\n",clssn, hostname);
                                     }
index b48dd74..0f65b37 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,8 +28,8 @@ import org.onap.aaf.cadi.Access.Level;
 
 public interface Get {
     public String get(String name, String def, boolean print);
-    
-    
+
+
     /**
      * A class for Getting info out of "JavaBean" format
      * @author Jonathan
@@ -40,24 +40,24 @@ public interface Get {
         private Class<?> bc;
         private Class<?>[] params;
         private Object[] args;
-        
+
         public Bean(Object bean) {
             this.bean = bean;
             bc = bean.getClass();
             params = new Class<?>[0]; // note, this will allow to go out of scope after config
             args = new Object[0];
         }
-        
+
         public String get(String name, String def, boolean print) {
             String str = null;
             String gname = "get"+Character.toUpperCase(name.charAt(0))+name.substring(1);
             try {
                 Method meth = bc.getMethod(gname, params);
                 Object obj = meth.invoke(bean, args);
-                str = obj==null?null:obj.toString(); // easy string convert... 
+                str = obj==null?null:obj.toString(); // easy string convert...
             } catch (Exception e) {
             }
-            
+
             // Take def if nothing else
             if (str==null) {
                 str = def;
index 30adcc9..65501a6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,12 +25,12 @@ import org.onap.aaf.cadi.PropAccess;
 
 public class GetAccess extends PropAccess {
     private final Get getter;
-    
+
     public GetAccess(Get getter) {
         super(new String[]{"cadi_prop_files="+getter.get("cadi_prop_files", null, true)});
         this.getter = getter;
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.cadi.PropAccess#getProperty(java.lang.String, java.lang.String)
      */
index c5e5a50..d73e1b7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public class MultiGet implements Get {
         String str;
         for (Get getter : getters) {
             str = getter.get(name, null, print);
-            if (str!=null) 
+            if (str!=null)
                 return str;
         }
         return def;
index f73179a..2825e9a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -99,11 +99,11 @@ public class RegistrationPropHolder {
             }
         }
         default_name = container_public_name;
-        
+
         if(firstlog) {
             access.printf(Level.INIT, REGI,"default_name",default_name);
         }
-        
+
         latitude=null;
         String slatitude = access.getProperty(Config.CADI_LATITUDE, null);
         if(slatitude == null) {
@@ -138,7 +138,7 @@ public class RegistrationPropHolder {
                 }
             }
         }
-        
+
         default_fqdn = access.getProperty(Config.AAF_LOCATOR_FQDN, hostname);
         if(firstlog) {
             access.printf(Level.INIT, REGI,"default_fqdn",default_fqdn);
@@ -157,7 +157,7 @@ public class RegistrationPropHolder {
         errs.append('\n');
         errs.append(propname);
         errs.append(" must be defined.");
-        
+
     }
 
     public String getEntryFQDN(final String entry, final String dot_le) {
@@ -169,7 +169,7 @@ public class RegistrationPropHolder {
         }
         return replacements("RegistrationPropHolder.getEntryFQDN",str,entry,dot_le);
     }
-    
+
     public String getEntryName(final String entry, final String dot_le) {
         String str;
         if(dot_le.isEmpty()) {
@@ -179,7 +179,7 @@ public class RegistrationPropHolder {
         }
         return replacements("RegistrationPropHolder.getEntryName",str,entry,dot_le);
     }
-    
+
     public String getPublicEntryName(final String entry, final String dot_le) {
         String str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_NAME+dot_le, null);
         if(str==null) {
@@ -190,8 +190,8 @@ public class RegistrationPropHolder {
         }
         return replacements("RegistrationPropHolder.getEntryName",str,entry,dot_le);
     }
-    
-    
+
+
     private String getNS(String dot_le) {
         String ns;
         ns = access.getProperty(Config.AAF_LOCATOR_APP_NS+dot_le,null);
@@ -201,7 +201,7 @@ public class RegistrationPropHolder {
         return ns;
     }
 
-    
+
     public String replacements(final String fromCode, final String source, final String name, final String _dot_le) {
         if(source == null) {
             return "";
@@ -238,13 +238,13 @@ public class RegistrationPropHolder {
                         value = value.replace("http://AAF_LOCATE_URL/", str);
                     } else {
                         value = value.replace("https://AAF_LOCATE_URL/", str);
-                        
+
                     }
                 }
             }
         }
 
-        int atC = value.indexOf("%C"); 
+        int atC = value.indexOf("%C");
         if(atC>=0) {
             // aaf_locator_container_ns
             str = access.getProperty(Config.AAF_LOCATOR_CONTAINER_NS+dot_le, default_container_ns);
@@ -252,14 +252,14 @@ public class RegistrationPropHolder {
                 value = value.replace("%CNS"+'.', str);
             }
             value = value.replace("%CNS", str);
-            
+
             str = access.getProperty(Config.AAF_LOCATOR_CONTAINER+dot_le,default_container);
             if(str.isEmpty()) {
                 value = value.replace("%C"+'.', str);
             }
             value = value.replace("%C", str);
         }
-        
+
         if(value.indexOf("%NS")>=0) {
             str = getNS(dot_le);
             if(str==null || str.isEmpty()) {
@@ -280,7 +280,7 @@ public class RegistrationPropHolder {
             }
         }
 
-        
+
         if(value.indexOf('%')>=0) {
             // These shouldn't be expected to have dot elements
             if(name!=null) {
@@ -293,13 +293,13 @@ public class RegistrationPropHolder {
               value = value.replace("%PH", public_fqdn);
             }
         }
-        access.printf(Level.DEBUG, 
+        access.printf(Level.DEBUG,
                 "RegistrationReplacement from %s, source: %s, dot_le: %s, value: %s",
                 fromCode,source,dot_le,value);
 
         return value;
     }
-    
+
     public int getEntryPort(final String dot_le) {
         return public_port!=null && dot_le.isEmpty()?
                 public_port:
index 8dbc38e..60c7571 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -64,7 +64,7 @@ public class SecurityInfo {
     private static final String LOADED_FROM_SYSTEM_PROPERTIES = "%s loaded from System Properties";
 
     public static final String SSL_KEY_MANAGER_FACTORY_ALGORITHM;
-    
+
     private SSLSocketFactory socketFactory;
     private X509KeyManager[] x509KeyManager;
     private X509TrustManager[] x509TrustManager;
@@ -83,21 +83,21 @@ public class SecurityInfo {
             SSL_KEY_MANAGER_FACTORY_ALGORITHM = "SunX509";
         }
     }
-    
+
 
     public SecurityInfo(final Access access) throws CadiException {
         String msgHelp = "";
         try {
             this.access = access;
             // reuse DME2 Properties for convenience if specific Properties don't exist
-            
+
             String str = access.getProperty(Config.CADI_ALIAS, null);
             if(str==null || str.isEmpty()) {
                 defaultAlias = null;
             } else {
                 defaultAlias = str;
             }
-            
+
             str = access.getProperty(Config.CADI_CLIENT_ALIAS, null);
             if(str==null) {
                 defaultClientAlias = defaultAlias;
@@ -110,17 +110,17 @@ public class SecurityInfo {
 
             msgHelp = String.format(INITIALIZING_ERR_FMT,"Keystore", access.getProperty(Config.CADI_KEYSTORE, ""));
             initializeKeyManager();
-            
+
             msgHelp = String.format(INITIALIZING_ERR_FMT,"Truststore", access.getProperty(Config.CADI_TRUSTSTORE, ""));
             initializeTrustManager();
-            
+
 
             msgHelp = String.format(INITIALIZING_ERR_FMT,"Trustmasks", access.getProperty(Config.CADI_TRUST_MASKS, ""));
             initializeTrustMasks();
 
             msgHelp = String.format(INITIALIZING_ERR_FMT,"HTTP Protocols", "access properties");
             setHTTPProtocols(access);
-            
+
             msgHelp = String.format(INITIALIZING_ERR_FMT,"Context", "TLS");
             context = SSLContext.getInstance("TLS");
             context.init(x509KeyManager, x509TrustManager, null);
@@ -146,7 +146,7 @@ public class SecurityInfo {
             // This needs to be set when people do  not.
             System.setProperty(HTTPS_PROTOCOLS, httpsProtocols);
         }
-        String httpsClientProtocols = System.getProperty(JDK_TLS_CLIENT_PROTOCOLS,null); 
+        String httpsClientProtocols = System.getProperty(JDK_TLS_CLIENT_PROTOCOLS,null);
         if(httpsClientProtocols!=null) {
             access.printf(Level.INIT, LOADED_FROM_SYSTEM_PROPERTIES, JDK_TLS_CLIENT_PROTOCOLS);
         } else {
@@ -197,7 +197,7 @@ public class SecurityInfo {
             hsuc.setHostnameVerifier(maskHV);
         }
     }
-    
+
     protected void initializeKeyManager() throws CadiException, IOException, NoSuchAlgorithmException, KeyStoreException, CertificateException, UnrecoverableKeyException {
         String keyStore = access.getProperty(Config.CADI_KEYSTORE, null);
         if(keyStore==null) {
@@ -208,7 +208,7 @@ public class SecurityInfo {
 
         String keyStorePasswd = access.getProperty(Config.CADI_KEYSTORE_PASSWORD, null);
         keyStorePasswd = (keyStorePasswd == null) ? null : access.decrypt(keyStorePasswd, false);
-        if (keyStore == null || keyStorePasswd == null) { 
+        if (keyStore == null || keyStorePasswd == null) {
             x509KeyManager = new X509KeyManager[0];
             return;
         }
@@ -240,7 +240,7 @@ public class SecurityInfo {
                 }
             }
         }
-        
+
         StringBuilder sb = null;
         for (KeyManager keyManager : keyManagerFactory.getKeyManagers()) {
             if (keyManager instanceof X509KeyManager) {
@@ -263,12 +263,12 @@ public class SecurityInfo {
         }
         x509KeyManager = new X509KeyManager[keyManagers.size()];
         keyManagers.toArray(x509KeyManager);
-        
+
         if(sb!=null) {
             access.log(Level.INIT, sb);
         }
     }
-    
+
     private void x509Info(StringBuilder sb, X509Certificate[] chain) {
         if(chain!=null) {
             int i=0;
@@ -290,7 +290,7 @@ public class SecurityInfo {
     protected void initializeTrustManager() throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException, CadiException {
         String trustStore = access.getProperty(Config.CADI_TRUSTSTORE, null);
         if(trustStore==null) {
-            return; 
+            return;
         } else if(!new File(trustStore).exists()) {
             throw new CadiException(trustStore + " does not exist");
         }
@@ -307,7 +307,7 @@ public class SecurityInfo {
                 try {
                     KeyStore ts = KeyStore.getInstance("JKS");
                     ts.load(fis, trustStorePasswd.toCharArray());
-                    trustManagerFactory.init(ts); 
+                    trustManagerFactory.init(ts);
                 } finally {
                     fis.close();
                 }
@@ -328,7 +328,7 @@ public class SecurityInfo {
             }
         }
     }
-    
+
     protected void initializeTrustMasks() throws AccessException {
         String tips = access.getProperty(Config.CADI_TRUST_MASKS, null);
         if (tips == null) {
@@ -345,7 +345,7 @@ public class SecurityInfo {
                 throw new AccessException("Invalid IP Mask in " + Config.CADI_TRUST_MASKS, e);
             }
         }
-    
+
         final HostnameVerifier origHV = HttpsURLConnection.getDefaultHostnameVerifier();
         maskHV = new HostnameVerifier() {
             @Override
@@ -366,5 +366,5 @@ public class SecurityInfo {
         };
         HttpsURLConnection.setDefaultHostnameVerifier(maskHV);
     }
-    
+
 }
index 4e365fb..7c5f50e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,13 +34,13 @@ public class SecurityInfoC<CLIENT> extends SecurityInfo {
     public static final String DEF_ID = "ID not Set";
     private static Map<Class<?>,SecurityInfoC<?>> sicMap = new HashMap<>();
     public SecuritySetter<CLIENT> defSS;
+
 
     public SecurityInfoC(Access access) throws CadiException {
         super(access);
         defSS = new DEFSS<CLIENT>();
     }
-    
+
     @SuppressWarnings("unchecked")
     public static synchronized <CLIENT> SecurityInfoC<CLIENT> instance(Access access, Class<CLIENT> cls) throws CadiException {
         SecurityInfoInit<CLIENT> sii;
@@ -58,9 +58,9 @@ public class SecurityInfoC<CLIENT> extends SecurityInfo {
                 public SecuritySetter<CLIENT> bestDefault(SecurityInfoC<CLIENT> si) throws CadiException {
                     return new DEFSS<CLIENT>();
                 }
-            }; 
+            };
         }
-        
+
         SecurityInfoC<CLIENT> sic = (SecurityInfoC<CLIENT>) sicMap.get(cls);
         if (sic==null) {
             sic = new SecurityInfoC<CLIENT>(access);
index 614f363..e5b7a0e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 98ab470..4f7db1a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,7 +56,7 @@ public class UsersDump {
 
             // We loop through Users, but want to write Groups first... therefore, save off print
             StringBuilder sb = new StringBuilder();
-            
+
             // Obtain all unique role names
             HashSet<String> groups = new HashSet<>();
             for (AbsUserCache<?>.DumpInfo di : lur.dumpInfo()) {
@@ -80,7 +80,7 @@ public class UsersDump {
                 ps.print(group);
                 ps.println("\"/>");
             }
-    
+
             ps.println(sb);
 
             ps.println("</tomcat-users>");
@@ -91,13 +91,13 @@ public class UsersDump {
         }
         return true;
     }
-    
+
     /**
-     * 
+     *
      * Note: This method returns a String if there's an error, or null if ok.
-     * This unusual style is necessitated by the fact that any Exceptions thrown are likely to 
+     * This unusual style is necessitated by the fact that any Exceptions thrown are likely to
      * be unlogged and hidden from view, making debugging almost impossible.
-     * 
+     *
      * @param writeto
      * @param up
      * @return
@@ -129,7 +129,7 @@ public class UsersDump {
                             int startA=0, startB=0;
                             for (int i=0;startA<orig.length && i<3;++startA) if (orig[startA]=='<')++i;
                             for (int i=0;startB<orig.length && i<3;++startB) if (postulate[startB]=='<')++i;
-                            
+
                             writeIt=orig.length-startA!=postulate.length-startB; // first, check if remaining length is the same
                             while (!writeIt && startA<orig.length && startB<postulate.length) {
                                 if (orig[startA++]!=postulate[startB++])writeIt = true;
@@ -141,7 +141,7 @@ public class UsersDump {
                 } else {
                     writeIt = true;
                 }
-                
+
                 if (writeIt) {
                     try {
                         FileOutputStream fos = new FileOutputStream(file);
index 5aa502d..fefb097 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 0bd87d9..8073249 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 /**
- * 
+ *
  * @author Jonathan
  *
  */
@@ -53,14 +53,14 @@ public class AUTHZServlet<S extends Servlet> implements Servlet {
             roles = rolesAllowed.value();
         }
     }
-    
+
     public void init(ServletConfig sc) throws ServletException {
         if (delegate == null) {
             throw new ServletException("Invalid Servlet Delegate");
         }
         delegate.init(sc);
     }
-    
+
     public ServletConfig getServletConfig() {
         return delegate.getServletConfig();
     }
index ae4347d..96eebf5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 292f8e1..d97fe28 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,15 +41,15 @@ import org.onap.aaf.cadi.util.Split;
 
 /**
  * This filter allows one to protect the APIs from data stored in AAF
- * 
+ *
  * @author Instrumental(Jonathan)
  */
 public class CadiApiEnforcementFilter implements Filter {
     private String type;
     private Map<String,List<String>> publicPaths;
     private Access access;
-            
-    
+
+
     public CadiApiEnforcementFilter(Access access, String enforce) throws ServletException {
         this.access = access;
         init(enforce);
@@ -60,12 +60,12 @@ public class CadiApiEnforcementFilter implements Filter {
     public void init(FilterConfig fc) throws ServletException {
         init(fc.getInitParameter(Config.CADI_API_ENFORCEMENT));
         // need the Context for Logging, instantiating ClassLoader, etc
-        ServletContextAccess sca=new ServletContextAccess(fc); 
+        ServletContextAccess sca=new ServletContextAccess(fc);
         if (access==null) {
             access = sca;
         }
     }
-    
+
     private void init(final String ptypes) throws ServletException {
         if(ptypes==null) {
             throw new ServletException("CadiApiEnforcement requires " + Config.CADI_API_ENFORCEMENT + " property");
@@ -99,10 +99,10 @@ public class CadiApiEnforcementFilter implements Filter {
         HttpServletRequest hreq = (HttpServletRequest)req;
         final String meth = hreq.getMethod();
         String path = hreq.getContextPath()+hreq.getPathInfo();
-        
+
         if(path == null || path.isEmpty() || "null".equals(path))
             path = hreq.getRequestURI().substring(hreq.getContextPath().length());
-        
+
         List<String> list = publicPaths.get(meth);
         if(list!=null) {
             for( String p : publicPaths.get(meth)) {
index 50efe8b..a2f168a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,16 +52,16 @@ import org.onap.aaf.cadi.util.Timing;
 
 /**
  * CadiFilter
- * 
+ *
  * This class implements Servlet Filter, and ties together CADI implementations
- * 
+ *
  * This class can be used in a standard J2EE Servlet manner.  Optimal usage is for POJO operations, where
- * one can enforce this Filter being first and primary.  Depending on the Container, it 
- * may be more effective, in some cases, to utilize features that allow earlier determination of 
+ * one can enforce this Filter being first and primary.  Depending on the Container, it
+ * may be more effective, in some cases, to utilize features that allow earlier determination of
  * AUTHN (Authorization).  An example would be "Tomcat Valve".  These implementations, however, should
  * be modeled after the "init" and "doFilter" functions, and be kept up to date as this class changes.
- * 
- * 
+ *
+ *
  * @author Jonathan
  *
  */
@@ -73,18 +73,18 @@ public class CadiFilter implements Filter {
     private Object[] additionalTafLurs;
     private SideChain sideChain;
     private static int count=0;
-    
+
     public Lur getLur() {
         return httpChecker.getLur();
     }
-    
+
     /**
      * Construct a viable Filter
-     * 
-     * Due to the vagaries of many containers, there is a tendency to create Objects and call "Init" on 
+     *
+     * Due to the vagaries of many containers, there is a tendency to create Objects and call "Init" on
      * them at a later time.  Therefore, this object creates with an object that denies all access
      * until appropriate Init happens, just in case the container lets something slip by in the meantime.
-     * 
+     *
      */
     public CadiFilter() {
         additionalTafLurs = CadiHTTPManip.noAdditional;
@@ -92,10 +92,10 @@ public class CadiFilter implements Filter {
 
     /**
      * This constructor to be used when directly constructing and placing in HTTP Engine
-     * 
+     *
      * @param access
      * @param moreTafLurs
-     * @throws ServletException 
+     * @throws ServletException
      */
     public CadiFilter(Access access, Object ... moreTafLurs) throws ServletException {
         additionalTafLurs = moreTafLurs;
@@ -120,7 +120,7 @@ public class CadiFilter implements Filter {
 
     /**
      * Init
-     * 
+     *
      * Standard Filter "init" call with FilterConfig to obtain properties.  POJOs can construct a
      * FilterConfig with the mechanism of their choice, and standard J2EE Servlet engines utilize this
      * mechanism already.
@@ -128,15 +128,15 @@ public class CadiFilter implements Filter {
     //TODO Always validate changes against Tomcat AbsCadiValve and Jaspi CadiSAM Init functions
     public void init(FilterConfig filterConfig) throws ServletException {
         // need the Context for Logging, instantiating ClassLoader, etc
-        ServletContextAccess sca=new ServletContextAccess(filterConfig); 
+        ServletContextAccess sca=new ServletContextAccess(filterConfig);
         if (access==null) {
             access = sca;
         }
-        
+
         // Set Protected getter with base Access, for internal class instantiations
         init(new FCGet(access, sca.context(), filterConfig));
     }
-    
+
 
     @SuppressWarnings("unchecked")
     protected void init(Get getter) throws ServletException {
@@ -154,7 +154,7 @@ public class CadiFilter implements Filter {
        } catch (Exception e) {
            access.log(Level.INIT, "AAFTrustChecker cannot be loaded",e.getMessage());
        }
-       
+
        try {
            Class<Filter> cf=null;
            try {
@@ -167,7 +167,7 @@ public class CadiFilter implements Filter {
            access.log(Level.INIT, "AAFTrustChecker cannot be loaded",e.getMessage());
        }
 
-        
+
         // Synchronize, because some instantiations call init several times on the same object
         // In this case, the epiTaf will be changed to a non-NullTaf, and thus not instantiate twice.
         synchronized(CadiHTTPManip.noAdditional /*will always remain same Object*/) {
@@ -194,8 +194,8 @@ public class CadiFilter implements Filter {
                     pathExceptions = str.split("\\s*:\\s*");
                 }
             }
-    
-            /* 
+
+            /*
              * SETUP Permission Converters... those that can take Strings from a Vendor Product, and convert to appropriate AAF Permissions
              */
             if (mapPairs==null) {
@@ -227,7 +227,7 @@ public class CadiFilter implements Filter {
         }
 
         // Add API Enforcement Point
-        String enforce = getter.get(Config.CADI_API_ENFORCEMENT, null, true); 
+        String enforce = getter.get(Config.CADI_API_ENFORCEMENT, null, true);
         if(enforce!=null && enforce.length()>0) {
             sideChain.add(new CadiApiEnforcementFilter(access,enforce));
         }
@@ -236,7 +236,7 @@ public class CadiFilter implements Filter {
     }
 
     /**
-     * Containers call "destroy" when time to cleanup 
+     * Containers call "destroy" when time to cleanup
      */
     public void destroy() {
         // Synchronize, in case multiCadiFilters are used.
@@ -252,7 +252,7 @@ public class CadiFilter implements Filter {
 
     /**
      * doFilter
-     * 
+     *
      * This is the standard J2EE invocation.  Analyze the request, modify response as necessary, and
      * only call the next item in the filterChain if request is suitably Authenticated.
      */
@@ -295,7 +295,7 @@ public class CadiFilter implements Filter {
     }
 
 
-    /** 
+    /**
      * If PathExceptions exist, report if these should not have Authn applied.
      * @param hreq
      * @return
@@ -317,7 +317,7 @@ public class CadiFilter implements Filter {
         }
         return false;
     }
-    
+
     /**
      * Get Converter by Path
      */
@@ -332,7 +332,7 @@ public class CadiFilter implements Filter {
         }
         return NullPermConverter.singleton();
     }
-    
+
     /**
      * store PermConverters by Path prefix
      * @author Jonathan
index 0a89af0..7c63a82 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,10 +47,10 @@ import org.onap.aaf.cadi.util.UserChainManip;
 /**
  * Encapsulate common HTTP Manipulation Behavior.  It will appropriately set
  * HTTPServletResponse for Redirect or Forbidden, as needed.
- * 
+ *
  * Further, this is useful, because it avoids multiple creates of Connections, where some Filters
  * are created and destroyed regularly.
- * 
+ *
  * @author Jonathan
  *
  */
@@ -73,7 +73,7 @@ public class CadiHTTPManip {
     private CredVal up;
     private Lur lur;
     private String thisPerm,companyPerm,aaf_id;
-    
+
     public static final Object[] noAdditional = new Object[0]; // CadiFilter can be created each call in some systems
 
 
@@ -82,7 +82,7 @@ public class CadiHTTPManip {
             this.access = access;
 //            Get getter = new AccessGetter(access);
             Config.setDefaultRealm(access);
-    
+
             aaf_id = access.getProperty(Config.CADI_ALIAS,access.getProperty(Config.AAF_APPID, null));
             if (aaf_id==null) {
                 access.printf(Level.INIT, "%s is not set. %s can be used instead",Config.AAF_APPID,Config.CADI_ALIAS);
@@ -107,9 +107,9 @@ public class CadiHTTPManip {
             }
             SecurityInfoC<HttpURLConnection> si;
             si = SecurityInfoC.instance(access, HttpURLConnection.class);
-            
+
             lur = Config.configLur(si, con, additionalTafLurs);
-            
+
             tc.setLur(lur);
             if (lur instanceof EpiLur) {
                 up = ((EpiLur)lur).getUserPassImpl();
@@ -126,33 +126,33 @@ public class CadiHTTPManip {
         TafResp tresp = taf.validate(Taf.LifeForm.LFN, hreq, hresp);
         switch(tresp.isAuthenticated()) {
             case IS_AUTHENTICATED:
-                access.printf(Level.DEBUG,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(), 
+                access.printf(Level.DEBUG,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(),
                     hreq.getRemotePort(),AUTHENTICATED,tresp.desc());
                 break;
             case TRY_AUTHENTICATING:
                 switch (tresp.authenticate()) {
                     case IS_AUTHENTICATED:
-                        access.printf(Level.DEBUG,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(), 
+                        access.printf(Level.DEBUG,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(),
                             hreq.getRemotePort(),AUTHENTICATED,tresp.desc());
                         break;
                     case HTTP_REDIRECT_INVOKED:
-                        access.printf(Level.DEBUG,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(), 
+                        access.printf(Level.DEBUG,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(),
                             hreq.getRemotePort(),AUTHENTICATING_VIA_REDIRECTION,tresp.desc());
                         break;
                     case NO_FURTHER_PROCESSING:
-                        access.printf(Level.AUDIT,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(), 
+                        access.printf(Level.AUDIT,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(),
                             hreq.getRemotePort(),AUTHENTICATION_FAILURE,tresp.desc());
                         hresp.sendError(403, tresp.desc()); // Forbidden
                         break;
 
                     default:
-                        access.printf(Level.AUDIT,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(), 
+                        access.printf(Level.AUDIT,MSG_FMT,tresp.getTarget(),hreq.getRemoteAddr(),
                             hreq.getRemotePort(),NO_TAF_WILL_AUTHORIZE,tresp.desc());
                         hresp.sendError(403, tresp.desc()); // Forbidden
                 }
                 break;
             case NO_FURTHER_PROCESSING:
-                access.printf(Level.AUDIT,MSG_FMT, tresp.getTarget(),hreq.getRemoteAddr(), 
+                access.printf(Level.AUDIT,MSG_FMT, tresp.getTarget(),hreq.getRemoteAddr(),
                         hreq.getRemotePort(),NO_TAF_WILL_AUTHORIZE,tresp.desc());
                 hresp.sendError(403, ACCESS_DENIED); // FORBIDDEN
                 break;
@@ -161,12 +161,12 @@ public class CadiHTTPManip {
                         hreq.getRemotePort(),NO_TAF_WILL_AUTHORIZE,tresp.desc());
                 hresp.sendError(403, ACCESS_DENIED); // FORBIDDEN
         }
-        
+
         return tresp;
     }
-    
+
     public boolean notCadi(CadiWrap req, HttpServletResponse resp) {
-        
+
         String pathInfo = req.getPathInfo();
         if (METH.equalsIgnoreCase(req.getMethod()) && pathInfo!=null && pathInfo.contains(CADI)) {
             if (req.getUser().equals(aaf_id) || req.isUserInRole(thisPerm) || req.isUserInRole(companyPerm)) {
@@ -201,11 +201,11 @@ public class CadiHTTPManip {
         }
         return true;
     }
-    
+
     public Lur getLur() {
         return lur;
     }
-    
+
     public void destroy() {
         access.log(Level.INFO,"CadiHttpChecker destroyed.");
         if (lur!=null) {
index 1805c78..e9cb59c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,7 +34,7 @@ import org.onap.aaf.cadi.config.Get;
  */
 public class FCGet implements Get {
     /**
-     * 
+     *
      */
     private final Access access;
     private FilterConfig filterConfig;
@@ -52,12 +52,12 @@ public class FCGet implements Get {
         if (context!=null) {
             str = context.getInitParameter(name);
         }
-        
+
         // Try Filter Context next
         if (str==null && filterConfig != null) {
             str = filterConfig.getInitParameter(name);
         }
-        
+
         if (str==null) {
             str = access.getProperty(name, def);
         }
index 8c616f4..7ad1921 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,21 +39,21 @@ import org.onap.aaf.cadi.util.CSV;
 import org.onap.aaf.cadi.util.CSV.Visitor;
 
 /**
- * This Filter is designed to help MIGRATE users from systems that don't match the FQI style.  
- *  
+ * This Filter is designed to help MIGRATE users from systems that don't match the FQI style.
+ *
  * Style 1, where just the ID is translated, i.e. OLD => new@something.onap.org, that is acceptable
  * longer term, because it does not store Creds locally.  The passwords are in appropriate systems, but
  * it's still painful operationally, though it does ease migration.
  *
  * Style 3, however, which is Direct match of Authorization Header to replacement, is only there
  * because some passwords are simply not acceptable for AAF, (too easy, for instance), and it is
- * not feasible to break Organization Password rules for a Migration.  Therefore, this method 
+ * not feasible to break Organization Password rules for a Migration.  Therefore, this method
  * should not considered something that is in any way a permanent
- * 
+ *
 
- * 
+ *
  * It goes without saying that any file with the password conversion should be protected by "400", etc.
- * 
+ *
  * @author Instrumental (Jonathan)
  *
  */
@@ -63,15 +63,15 @@ public class MapBathConverter {
 
     /**
      * Create with colon separated name value pairs
-     *  Enter the entire "Basic dXNlcjpwYXNz" "Authorization" header, where "dXNlcjpwYXNz" is 
+     *  Enter the entire "Basic dXNlcjpwYXNz" "Authorization" header, where "dXNlcjpwYXNz" is
      *  base64 encoded, which can be created with "cadi" tool (in jar)
-     *  
-     *  The replacement should also be an exact replacement of what you want.  Recognize that 
-     *  this should be TEMPORARY as you are storing credentials outside the users control. 
-     *  
+     *
+     *  The replacement should also be an exact replacement of what you want.  Recognize that
+     *  this should be TEMPORARY as you are storing credentials outside the users control.
+     *
      * @param value
-     * @throws IOException 
-     * @throws CadiException 
+     * @throws IOException
+     * @throws CadiException
      */
     public MapBathConverter(final Access access, final CSV csv) throws IOException, CadiException {
         map = new TreeMap<>();
@@ -110,7 +110,7 @@ public class MapBathConverter {
             }
         });
     }
-    
+
     private static String idFromBasic(String bath, Holder<String> hpass) throws IOException, CadiException {
         if(bath.startsWith(BASIC)) {
             String cred = Symm.base64noSplit.decode(bath.substring(6));
@@ -128,8 +128,8 @@ public class MapBathConverter {
     }
 
     /**
-     * use to instantiate entries 
-     * 
+     * use to instantiate entries
+     *
      * @return
      */
     public Map<String,String> map() {
index 7953e07..24c7d29 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,7 +30,7 @@ public class MapPermConverter implements PermConverter {
     /**
      * Create with colon separated name value pairs
      *  i.e. teAdmin=com.att.myNS.myPerm|*|*:teUser=...
-     *  
+     *
      * @param value
      */
     public MapPermConverter() {
@@ -38,8 +38,8 @@ public class MapPermConverter implements PermConverter {
     }
 
     /**
-     * use to instantiate entries 
-     * 
+     * use to instantiate entries
+     *
      * @return
      */
     public Map<String,String> map() {
index dfd0f64..e074a7f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -23,7 +23,7 @@ package org.onap.aaf.cadi.filter;
 
 /**
  * Convert a simplistic, single string Permission into an Enterprise Scoped Perm
- * 
+ *
  * @author Jonathan
  *
  */
index ac61a5c..c27519f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
  */
 
 /**
- * RolesAllowed 
- * 
+ * RolesAllowed
+ *
  * @author Jonathan
- * 
+ *
  * Similar to Java EE's Spec from Annotations 1.1, 2.8
- * 
+ *
  * That Spec, however, was geared towards being able to route calls to Methods on Objects, and thus needed a more refined
  * sense of permissions hierarchy.  The same mechanism, however, can easily be achieved on single Servlet/Handlers in
  * POJOs like Jetty by simply adding the Roles Allowed in a similar Annotation
- * 
+ *
  */
 package org.onap.aaf.cadi.filter;
 import static java.lang.annotation.ElementType.TYPE;
@@ -39,9 +39,9 @@ import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
 /**
- * JASPI Style Annotation of RolesAllowed when the coding style is desired but actually including all 
+ * JASPI Style Annotation of RolesAllowed when the coding style is desired but actually including all
  * JEE jars is not. If using actual JASPI, use official @interface classes, not this one...
- * 
+ *
  * @author Jonathan
  */
 @Target({TYPE})
index 5386eb2..33bc29d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
  */
 
 /**
- * RolesAllowed 
- * 
+ * RolesAllowed
+ *
  * @author Jonathan
- * 
+ *
  * Similar to Java EE's Spec from Annotations 1.1, 2.8
- * 
+ *
  * That Spec, however, was geared towards being able to route calls to Methods on Objects, and thus needed a more refined
  * sense of permissions hierarchy.  The same mechanism, however, can easily be achieved on single Servlet/Handlers in
  * POJOs like Jetty by simply adding the Roles Allowed in a similar Annotation
- * 
+ *
  */
 package org.onap.aaf.cadi.filter;
 import static java.lang.annotation.ElementType.TYPE;
@@ -41,7 +41,7 @@ import java.lang.annotation.Target;
 import javax.servlet.Servlet;
 
 /**
- * 
+ *
  * @author Jonathan
  */
 @Target({TYPE})
index 18e76b9..0f69b5b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,21 +33,21 @@ import javax.xml.ws.Holder;
 
 /**
  * Add various Filters by CADI Property not in the official Chain
- * 
+ *
  * @author Instrumental(Jonathan)
  *
  */
 public class SideChain {
     private List<Filter> sideChain;
-    
+
     public SideChain() {
         sideChain = new ArrayList<Filter>();
     }
-    
+
     public void add(Filter f) {
         sideChain.add(f);
     }
-    
+
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {
         final Holder<Boolean> hbool = new Holder<Boolean>(Boolean.TRUE);
         FilterChain truth = new FilterChain() {
index a41c5eb..56ba80a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,7 +47,7 @@ public class ConfigPrincipal implements Principal, GetCred {
     public String getName() {
         return name;
     }
-    
+
     public byte[] getCred() {
         return cred;
     }
@@ -55,14 +55,14 @@ public class ConfigPrincipal implements Principal, GetCred {
     public String toString() {
         return name;
     }
-    
+
     public String getAsBasicAuthHeader() throws IOException {
         if (content ==null) {
             String s = name + ':' + new String(cred);
-            content = "Basic " + Symm.base64.encode(s);  
+            content = "Basic " + Symm.base64.encode(s);
         } else if (!content.startsWith("Basic ")) { // content is the saved password from construction
             String s = name + ':' + content;
-            content = "Basic " + Symm.base64.encode(s);  
+            content = "Basic " + Symm.base64.encode(s);
         }
         return content;
     }
index 5443dec..3504290 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,25 +32,25 @@ import org.onap.aaf.cadi.Permission;
 
 /**
  * EpiLUR
- * 
+ *
  * Short for "Epic LUR". Be able to run through a series of LURs to obtain the validation needed.
- * 
- * The pun is better for the other pattern... "TAF" (aka EpiTaf), but it's still the larger picture of 
+ *
+ * The pun is better for the other pattern... "TAF" (aka EpiTaf), but it's still the larger picture of
  * LURs that will be accomplished.
- * 
+ *
  * FYI, the reason we separate LURs, rather than combine, is that Various User Repository Resources have
  * different Caching requirements.  For instance, the Local User Repo (with stand alone names), never expire, but might be
- * refreshed with a change in Configuration File, while the Remote Service based LURs will need to expire at prescribed intervals 
- * 
+ * refreshed with a change in Configuration File, while the Remote Service based LURs will need to expire at prescribed intervals
+ *
  * @author Jonathan
  *
  */
 public final class EpiLur implements Lur {
     private final Lur[] lurs;
-    
+
     /**
      * EpiLur constructor
-     * 
+     *
      * Construct the EpiLur from variable TAF parameters
      * @param lurs
      * @throws CadiException
@@ -86,7 +86,7 @@ public final class EpiLur implements Lur {
     }
 
     /**
-     * Return the first Lur (if any) which also implements UserPass 
+     * Return the first Lur (if any) which also implements UserPass
      * @return
      */
     public CredVal getUserPassImpl() {
@@ -102,7 +102,7 @@ public final class EpiLur implements Lur {
     public boolean handlesExclusively(Permission ... pond) {
         return false;
     }
-    
+
     /**
      * Get Lur for index.  Returns null if out of range
      * @param idx
@@ -131,7 +131,7 @@ public final class EpiLur implements Lur {
             }
         }
     }
-    
+
     public Lur subLur(Class<? extends Lur> cls ) {
         for (Lur l : lurs) {
             if (l.getClass().isAssignableFrom(cls)) {
@@ -155,7 +155,7 @@ public final class EpiLur implements Lur {
             lur.clear(p, report);
         }
     }
-    
+
     public String toString() {
         StringBuilder sb = new StringBuilder();
         for (Lur lur : lurs) {
index f8fa02e..d6db6f4 100644 (file)
@@ -148,7 +148,7 @@ public final class LocalLur extends AbsUserCache<LocalPermission> implements Lur
     public Permission createPerm(String p) {
         return new LocalPermission(p);
     }
-    
+
     private void parseUserProperties(String userProperties) throws IOException {
         // For each User name...
         for (String userProperty : userProperties.trim().split(SEMI)) {
@@ -179,7 +179,7 @@ public final class LocalLur extends AbsUserCache<LocalPermission> implements Lur
         }
     }
 
-    
+
     private void parseGroupProperties(String groupProperties) throws IOException {
         // For each Group name...
         for (String group : groupProperties.trim().split(SEMI)) {
index ee7bab9..64cb755 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,11 +25,11 @@ import org.onap.aaf.cadi.Permission;
 
 public class LocalPermission implements Permission {
     private String key;
-    
+
     public LocalPermission(String role) {
         this.key = role;
     }
-    
+
     public String getKey() {
         return key;
     }
@@ -45,6 +45,6 @@ public class LocalPermission implements Permission {
     public String permType() {
         return "LOCAL";
     }
-    
-    
+
+
 }
index fe9bbd3..c8ff274 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -80,7 +80,7 @@ public class NullLur implements Lur {
         report.append(NullLur.class.getSimpleName());
         report.append('\n');
     }
-    
+
     public String toString() {
         return NullLur.class.getSimpleName() + '\n';
     }
index 746e67d..8846f5f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -66,7 +66,7 @@ public class BasicPrincipal extends BearerPrincipal implements GetCred {
             name = name + '@' + defaultDomain;
         }
     }
-    
+
     public BasicPrincipal(BasicCred bc, String domain) {
         name = bc.getUser();
         cred = bc.getCred();
@@ -76,7 +76,7 @@ public class BasicPrincipal extends BearerPrincipal implements GetCred {
     private class BasicOS extends OutputStream {
         private boolean first = true;
         private ByteArrayOutputStream baos;
-        
+
         public BasicOS(int size) {
             baos = new ByteArrayOutputStream(size);
         }
@@ -86,33 +86,33 @@ public class BasicPrincipal extends BearerPrincipal implements GetCred {
             if (b==':' && first) {
                 first = false;
                 name = new String(baos.toByteArray());
-                baos.reset(); // 
+                baos.reset(); //
             } else {
                 baos.write(b);
             }
         }
-        
+
         private byte[] toCred() {
             return baos.toByteArray();
         }
     }
-    
+
     public String getName() {
         return name;
     }
-    
+
     public String getShortName() {
         return shortName;
     }
-    
+
     public String getDomain() {
         return domain;
     }
-    
+
     public byte[] getCred() {
         return cred;
     }
-    
+
     public long created() {
         return created;
     }
index 6fdcdc0..4930796 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 4a6e4cd..1a733e0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,7 +29,7 @@ import org.onap.aaf.cadi.taf.HttpTaf;
 
 /**
  * Cached Principals need to be able to revalidate in the Background
- * 
+ *
  * @author Jonathan
  *
  */
@@ -44,7 +44,7 @@ public class CachedBasicPrincipal extends BasicPrincipal implements CachedPrinci
         this.timeToLive = timeToLive;
         expires = System.currentTimeMillis()+timeToLive;
     }
-    
+
     public CachedBasicPrincipal(HttpTaf creator, String content, String domain, long timeToLive) throws IOException {
         super(content, domain);
         this.creator = creator;
index 20f2284..368908a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,8 +29,8 @@ public class Kind {
     public static final char AAF_OAUTH='A';
     public static final char BASIC_AUTH = 'B';
     public static final char UNKNOWN = 'U';
-    
-    
+
+
     public static char getKind(final Principal principal) {
         Principal check;
         if (principal instanceof TrustPrincipal) {
index 0132605..5a7a776 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,20 +24,20 @@ package org.onap.aaf.cadi.principal;
 public class OAuth2FormPrincipal extends TaggedPrincipal {
     private final String username;
     private final String client_id;
-    
+
     /*
      * Note: client_id and username might be the same, if only authenticating the Client_ID
      */
     public OAuth2FormPrincipal(final String client_id, final String username) {
         this.username = username;
-        this.client_id = client_id; 
+        this.client_id = client_id;
     }
-    
+
     @Override
     public String getName() {
         return username;
     }
-    
+
     public String client_id() {
         return client_id;
     }
index 7bb4ff5..8aaad11 100644 (file)
@@ -39,9 +39,9 @@ public abstract class TaggedPrincipal implements Principal {
     public interface TagLookup {
         public String lookup() throws CadiException;
     }
-    
+
     private TagLookup tagLookup;
-    
+
     public void setTagLookup(TagLookup tl) {
         tagLookup = tl;
     }
index 7e92aac..352b4e1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,7 +29,7 @@ public class TrustPrincipal extends BearerPrincipal implements UserChain {
     private final String name;
     private final Principal original;
     private String userChain;
-    
+
     public TrustPrincipal(final Principal actual, final String asName) {
         this.original = actual;
         name = asName.trim();
@@ -42,17 +42,17 @@ public class TrustPrincipal extends BearerPrincipal implements UserChain {
             userChain = actual.getClass().getSimpleName();
         }
     }
-    
+
     @Override
     public String getName() {
         return name;
     }
-    
+
     @Override
     public String userChain() {
         return userChain;
     }
-    
+
     public Principal original() {
         return original;
     }
@@ -66,5 +66,5 @@ public class TrustPrincipal extends BearerPrincipal implements UserChain {
     public String personalName() {
         return original.getName() + '[' + userChain + ']';
     }
-    
+
 }
index f0cacd8..872f4aa 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,7 +25,7 @@ import java.security.Principal;
 
 public class UnAuthPrincipal implements Principal {
     private String name;
-    
+
     public UnAuthPrincipal(final String name) {
         this.name = name;
     }
index 0348cd1..f530358 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,7 +34,7 @@ public class X509Principal extends BearerPrincipal implements GetCred {
     private final X509Certificate cert;
     private final String name;
     private byte[] content;
-    private BasicHttpTaf bht;  
+    private BasicHttpTaf bht;
 
     public X509Principal(String identity, X509Certificate cert) {
         name = identity;
@@ -71,7 +71,7 @@ public class X509Principal extends BearerPrincipal implements GetCred {
         name = _name;
         this.bht = bht;
     }
-    
+
     public String getAsHeader() throws IOException {
         try {
             if (content==null) {
@@ -82,7 +82,7 @@ public class X509Principal extends BearerPrincipal implements GetCred {
         }
         return "X509 " + content;
     }
-    
+
     public String toString() {
         return "X509 Authentication for " + name;
     }
index f420f41..c8f2a62 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -27,9 +27,9 @@ import org.onap.aaf.cadi.util.Timing;
 
 /**
  * AbsTafResp
- * 
+ *
  * Base class for TafResp (TAF Response Objects)
- * 
+ *
  * @author Jonathan
  *
  */
@@ -45,14 +45,14 @@ public abstract class AbsTafResp implements TafResp {
 
     /**
      * AbsTafResp
-     * 
+     *
      * Set and hold
      * Description (for logging)
      * Principal (as created by derived class)
      * Access (for access to underlying container, i.e. for Logging, auditing, ClassLoaders, etc)
-     *  
+     *
      * @param access
-     * @param tafname 
+     * @param tafname
      * @param principal
      * @param description
      */
@@ -63,17 +63,17 @@ public abstract class AbsTafResp implements TafResp {
         this.target = principal==null?"unknown":principal.getName();
         this.desc = description;
     }
-    
+
     /**
      * AbsTafResp
-     * 
+     *
      * Set and hold
      * Description (for logging)
      * Principal (as created by derived class)
      * Access (for access to underlying container, i.e. for Logging, auditing, ClassLoaders, etc)
-     *  
+     *
      * @param access
-     * @param tafname 
+     * @param tafname
      * @param principal
      * @param description
      */
@@ -87,7 +87,7 @@ public abstract class AbsTafResp implements TafResp {
 
     /**
      * isValid()
-     * 
+     *
      * Respond in the affirmative if the TAF was able to Authenticate
      */
     public boolean isValid() {
@@ -96,8 +96,8 @@ public abstract class AbsTafResp implements TafResp {
 
     /**
      * desc()
-     * 
-     * Respond with description of response as given by the TAF  
+     *
+     * Respond with description of response as given by the TAF
      */
     public String desc() {
         return desc;
@@ -105,11 +105,11 @@ public abstract class AbsTafResp implements TafResp {
 
     /**
      * isAuthenticated()
-     * 
+     *
      * Respond with the TAF's code of whether Authenticated, or suggested next steps
      * default is either IS_AUTHENTICATED, or TRY_ANOTHER_TAF.  The TAF can overload
      * and suggest others, such as "NO_FURTHER_PROCESSING", if it can detect that this
-     * is some sort of security breach (i.e. Denial of Service)  
+     * is some sort of security breach (i.e. Denial of Service)
      */
     public RESP isAuthenticated() {
         return principal==null?RESP.TRY_ANOTHER_TAF:RESP.IS_AUTHENTICATED;
@@ -117,9 +117,9 @@ public abstract class AbsTafResp implements TafResp {
 
     /**
      * getPrincipal()
-     * 
-     * Return the principal created by the TAF based on Authentication. 
-     * 
+     *
+     * Return the principal created by the TAF based on Authentication.
+     *
      * Returns "null" if Authentication failed (no principal)
      */
     public TaggedPrincipal getPrincipal() {
@@ -133,10 +133,10 @@ public abstract class AbsTafResp implements TafResp {
     public String getTarget() {
         return target;
     }
-    
+
     /**
      * getAccess()
-     * 
+     *
      * Get the Access object from the TAF, so that appropriate Logging, etc can be coordinated.
      */
     public Access getAccess() {
@@ -154,7 +154,7 @@ public abstract class AbsTafResp implements TafResp {
     public float timing() {
         return timing;
     }
-    
+
     @Override
     public void timing(final long start) {
         timing = Timing.millis(start);
index d2cbf3f..683b10b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,21 +26,21 @@ import org.onap.aaf.cadi.Taf;
 
 /**
  * EpiTAF
- * 
+ *
  * Short for "Epic TAF". Be able to run through a series of TAFs to obtain the validation needed.
- * 
+ *
  * OK, the name could probably be better as "Tafs", like it was originally, but the pun was too
  * irresistible for this author to pass up.
- * 
+ *
  * @author Jonathan
  *
  */
 public class EpiTaf implements Taf {
     private Taf[] tafs;
-    
+
     /**
      * EpiTaf constructor
-     * 
+     *
      * Construct the EpiTaf from variable TAF parameters
      * @param tafs
      * @throws CadiException
@@ -52,13 +52,13 @@ public class EpiTaf implements Taf {
 
     /**
      * validate
-     * 
-     * Respond with the first TAF to authenticate user based on variable info and "LifeForm" (is it 
+     *
+     * Respond with the first TAF to authenticate user based on variable info and "LifeForm" (is it
      * a human behind an interface, or a server behind a protocol).
-     * 
+     *
      * If there is no TAF that can authenticate, respond with the first TAF that suggests it can
      * establish an Authentication conversation (TRY_AUTHENTICATING).
-     * 
+     *
      * If no TAF declares either, respond with NullTafResp (which denies all questions)
      */
     public TafResp validate(LifeForm reading, String... info) {
@@ -76,7 +76,7 @@ public class EpiTaf implements Taf {
             }
         }
 
-        // No TAFs configured, at this point.  It is safer at this point to be "not validated", 
+        // No TAFs configured, at this point.  It is safer at this point to be "not validated",
         // rather than "let it go"
         return firstTryAuth == null?NullTafResp.singleton():firstTryAuth;
     }
index 6334164..f8eb089 100644 (file)
@@ -181,7 +181,7 @@ public class HttpEpiTaf implements HttpTaf {
         }
         return Resp.NOT_MINE;
     }
-    
+
     private void addToLog(List<TafResp> log, final TafResp tresp, final long start) {
         if (log == null) {
             return;
@@ -189,7 +189,7 @@ public class HttpEpiTaf implements HttpTaf {
         tresp.timing(start);
         log.add(tresp);
     }
-    
+
     private void printLog(List<TafResp> log) {
         if (log == null) {
             return;
index 77976ce..7693803 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,31 +28,31 @@ import org.onap.aaf.cadi.CachedPrincipal;
 import org.onap.aaf.cadi.Taf.LifeForm;
 
 /**
- * A TAF which is in a specific HTTP environment in which the engine implements 
+ * A TAF which is in a specific HTTP environment in which the engine implements
  * javax Servlet.
- * 
+ *
  * Using the Http Request and Response interfaces takes the effort out of implementing in almost any kind of
  * HTTP Container or Engine.
- *  
+ *
  * @author Jonathan
  *
  */
 public interface HttpTaf {
     /**
      * validate
-     * 
+     *
      * Validate the Request, and respond with created TafResp object.
-     * 
+     *
      * @param reading
      * @param req
      * @param resp
      * @return
      */
     public TafResp validate(LifeForm reading, HttpServletRequest req, HttpServletResponse resp);
-    
+
     /**
      * Re-Validate Credential
-     * 
+     *
      * @param prin
      * @return
      */
index d64fbe0..541fa39 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,15 +47,15 @@ public class LoginPageTafResp extends AbsTafResp {
         httpResp.sendRedirect(loginPageURL);
         return RESP.HTTP_REDIRECT_INVOKED;
     }
-    
+
     @Override
     public RESP isAuthenticated() {
         return RESP.TRY_AUTHENTICATING;
     }
-    
+
     public static TafResp create(Access access, Locator<URI> locator, final HttpServletResponse resp, List<Redirectable> redirectables) {
         if (locator == null) {
-            if (!redirectables.isEmpty()) { 
+            if (!redirectables.isEmpty()) {
                 access.log(Level.DEBUG,"LoginPage Locator is not configured. Taking first Redirectable Taf");
                 return redirectables.get(0);
             }
@@ -91,7 +91,7 @@ public class LoginPageTafResp extends AbsTafResp {
 
         return NullTafResp.singleton();
     }
-    
+
     @Override
     public String taf() {
         return "LoginPage";
index 7e83479..5b31e10 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,7 @@ import org.onap.aaf.cadi.CachedPrincipal.Resp;
 /**
  * This TAF is set at the very beginning of Filters and Valves so that if any configuration issues hit while
  * starting, the default behavior is to shut down traffic rather than leaving an open hole
- * 
+ *
  * @author Jonathan
  *
  */
@@ -41,8 +41,8 @@ public class NullTaf implements Taf, HttpTaf {
     public NullTaf() {}
 
     /**
-     * validate 
-     * 
+     * validate
+     *
      * Always Respond with a NullTafResp, which declares it is unauthenticated, and unauthorized
      */
     public TafResp validate(LifeForm reading, String... info) {
@@ -50,8 +50,8 @@ public class NullTaf implements Taf, HttpTaf {
     }
 
     /**
-     * validate 
-     * 
+     * validate
+     *
      * Always Respond with a NullTafResp, which declares it is unauthenticated, and unauthorized
      */
     public TafResp validate(LifeForm reading, HttpServletRequest req, HttpServletResponse resp) {
index b3b7fb5..3e77cfa 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,25 +33,25 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
  */
 class NullTafResp implements TafResp {
     private NullTafResp(){}
-    
+
     private static TafResp singleton = new NullTafResp();
-    
+
     public static TafResp singleton() {
         return singleton;
     }
-    
+
     public boolean isValid() {
         return false;
     }
-    
+
     public RESP isAuthenticated() {
         return RESP.NO_FURTHER_PROCESSING;
     }
-    
+
     public String desc() {
         return "All Authentication denied";
     }
-    
+
     public RESP authenticate() throws IOException {
         return RESP.NO_FURTHER_PROCESSING;
     }
@@ -87,7 +87,7 @@ class NullTafResp implements TafResp {
     @Override
     public void timing(long start) {
     }
-    
+
     @Override
     public String taf() {
         return "NULL";
index 6bb57d3..aa5f34c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,19 +42,19 @@ public class PuntTafResp implements TafResp {
         this.name = name;
         desc = "Not processing this transaction: " + explanation;
     }
-    
+
     public boolean isValid() {
         return false;
     }
-    
+
     public RESP isAuthenticated() {
         return RESP.TRY_ANOTHER_TAF;
     }
-    
+
     public String desc() {
         return desc;
     }
-    
+
     public RESP authenticate() throws IOException {
         return RESP.TRY_ANOTHER_TAF;
     }
@@ -88,7 +88,7 @@ public class PuntTafResp implements TafResp {
     public void timing(long start) {
         timing = Timing.millis(start);
     }
-    
+
     @Override
     public String taf() {
         return name;
index 47c262b..37b531c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 6850a37..c1563f5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,38 +29,38 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
 
 /**
  * Response from Taf objects, which inform users what has happened and/or what should be done
- * 
+ *
  * @author Jonathan
  *
  */
 public interface TafResp {
     public static enum RESP {
-        IS_AUTHENTICATED, 
-        NO_FURTHER_PROCESSING, 
-        TRY_AUTHENTICATING, 
+        IS_AUTHENTICATED,
+        NO_FURTHER_PROCESSING,
+        TRY_AUTHENTICATING,
         TRY_ANOTHER_TAF,
-        FAIL, 
-        // A note was made to avoid the response REDIRECT.  However, I have deemed that it is 
+        FAIL,
+        // A note was made to avoid the response REDIRECT.  However, I have deemed that it is
         // unavoidable when the underlying TAF did do a REDIRECT, because it requires a HTTP
         // Service code to exit without modifying the Response any further.
-        // Therefore, I have changed this to indicate what HAS happened, with should accommodate 
+        // Therefore, I have changed this to indicate what HAS happened, with should accommodate
         // both positions.  Jonathan 10/18/2012
 //        public static final int HTTP_REDIRECT_INVOKED = 11;
         HTTP_REDIRECT_INVOKED,
         HAS_PROCESSED};
-    
+
     /**
      * Basic success check
      * @return
      */
     public boolean isValid();
-    
+
     /**
      *  String description of what has occurred (for logging/exceptions)
      * @return
      */
     public String desc();
-    
+
     /**
      * Check Response
      * @return
@@ -69,10 +69,10 @@ public interface TafResp {
 
     /**
      * Authenticate, returning FAIL or Other Valid indication
-     * 
+     *
      * HTTP implementations should watch for "HTTP_REDIRECT_INVOKED", and end the HTTP call appropriately.
      * @return
-     * @throws CadiException 
+     * @throws CadiException
      */
     public RESP authenticate() throws IOException;
 
@@ -81,7 +81,7 @@ public interface TafResp {
      * @return
      */
     public TaggedPrincipal getPrincipal();
-    
+
     /** Target - when Authentication Fails, need to know what ID was being attempted
      * @return
      */
@@ -91,12 +91,12 @@ public interface TafResp {
      * get the Access object which created this object, allowing the responder to appropriate Log, etc
      */
     public Access getAccess();
-    
+
     /**
      * Be able to check if part of a Failed attempt
      */
     public boolean isFailedAttempt();
-    
+
     /**
      * report how long this took
      * @return
@@ -108,7 +108,7 @@ public interface TafResp {
      * @param start
      */
     void timing(long start);
-    
+
     /**
      * Support Taf Name
      */
index dee0ba0..290d5f0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,12 +31,12 @@ public class TrustNotTafResp implements TafResp {
     private final TafResp delegate;
     private final String desc;
     private float timing;
-    
+
     public TrustNotTafResp(final TafResp delegate, final String desc) {
         this.delegate = delegate;
         this.desc = desc;
     }
-    
+
     @Override
     public boolean isValid() {
         return false;
@@ -88,12 +88,12 @@ public class TrustNotTafResp implements TafResp {
     public void timing(long start) {
         timing = Timing.millis(start);
     }
-    
+
     @Override
     public String toString() {
         return desc();
     }
-    
+
     @Override
     public String taf() {
         return "TrustNot";
index 2701c27..5a85ebf 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,13 +32,13 @@ public class TrustTafResp implements TafResp {
     private final TaggedPrincipal principal;
     private final String desc;
     private float timing;
-    
+
     public TrustTafResp(final TafResp delegate, final TaggedPrincipal principal, final String desc) {
         this.delegate = delegate;
         this.principal = principal;
         this.desc = desc + ' ' + delegate.desc();
     }
-    
+
     @Override
     public boolean isValid() {
         return delegate.isValid();
@@ -90,11 +90,11 @@ public class TrustTafResp implements TafResp {
     public void timing(long start) {
         timing = Timing.millis(start);
     }
-    
+
     public String toString() {
         return principal.getName() + " by trust of " + desc();
     }
-    
+
     @Override
     public String taf() {
         return "Trust";
index 9336076..b3cf4a7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -51,15 +51,15 @@ import org.onap.aaf.cadi.util.CSV;
 
 /**
  * BasicHttpTaf
- * 
- * This TAF implements the "Basic Auth" protocol.  
- * 
- * WARNING! It is true for any implementation of "Basic Auth" that the password is passed unencrypted.  
- * This is because the expectation, when designed years ago, was that it would only be used in 
+ *
+ * This TAF implements the "Basic Auth" protocol.
+ *
+ * WARNING! It is true for any implementation of "Basic Auth" that the password is passed unencrypted.
+ * This is because the expectation, when designed years ago, was that it would only be used in
  * conjunction with SSL (https).  It is common, however, for users to ignore this on the assumption that
  * their internal network is secure, or just ignorance.  Therefore, a WARNING will be printed
  * when the HTTP Channel is not encrypted (unless explicitly turned off).
- * 
+ *
  * @author Jonathan
  *
  */
@@ -71,7 +71,7 @@ public class BasicHttpTaf implements HttpTaf {
     private boolean warn;
     private long timeToLive;
     private MapBathConverter mapIds;
-    
+
     public BasicHttpTaf(Access access, CredVal rbac, String realm, long timeToLive, boolean turnOnWarning) {
         this.access = access;
         this.realm = realm;
@@ -93,9 +93,9 @@ public class BasicHttpTaf implements HttpTaf {
     public void add(final CredValDomain cvd) {
         rbacs.put(cvd.domain(), cvd);
     }
-    
+
     /**
-     * Note: BasicHttp works for either Carbon Based (Humans) or Silicon Based (machine) Lifeforms.  
+     * Note: BasicHttp works for either Carbon Based (Humans) or Silicon Based (machine) Lifeforms.
      * @see Taf
      */
     public TafResp validate(Taf.LifeForm reading, HttpServletRequest req, HttpServletResponse resp) {
@@ -107,20 +107,20 @@ public class BasicHttpTaf implements HttpTaf {
                     return DenialOfServiceTaf.respDenyID(access,bc.getUser());
                 }
                 CachedBasicPrincipal bp = new CachedBasicPrincipal(this,bc,realm,timeToLive);
-                
+
                 // Be able to do Organizational specific lookups by Domain
                 CredVal cv = rbacs.get(bp.getDomain());
                 if (cv==null) {
                     cv = rbac;
                 }
-                
-                // ONLY FOR Last Ditch DEBUGGING... 
+
+                // ONLY FOR Last Ditch DEBUGGING...
                 // access.log(Level.WARN,bp.getName() + ":" + new String(bp.getCred()));
                 if (cv.validate(bp.getName(),Type.PASSWORD,bp.getCred(),req)) {
                     return new BasicHttpTafResp(access,bp,bp.getName()+" authenticated by password",RESP.IS_AUTHENTICATED,resp,realm,false);
                 } else {
                     //TODO may need timed retries in a given time period
-                    return new BasicHttpTafResp(access,bc.getUser(),buildMsg(bp,req,"user/pass combo invalid for ",bc.getUser(),"from",req.getRemoteAddr()), 
+                    return new BasicHttpTafResp(access,bc.getUser(),buildMsg(bp,req,"user/pass combo invalid for ",bc.getUser(),"from",req.getRemoteAddr()),
                             RESP.TRY_AUTHENTICATING,resp,realm,true);
                 }
             }
@@ -142,20 +142,20 @@ public class BasicHttpTaf implements HttpTaf {
                 if (DenialOfServiceTaf.isDeniedID(ba.getName())!=null) {
                     return DenialOfServiceTaf.respDenyID(access,ba.getName());
                 }
-                
+
                 final int at = ba.getName().indexOf('@');
                 CredVal cv = rbacs.get(ba.getName().substring(at+1));
-                if (cv==null) { 
+                if (cv==null) {
                     cv = rbac; // default
                 }
 
-                // ONLY FOR Last Ditch DEBUGGING... 
+                // ONLY FOR Last Ditch DEBUGGING...
                 // access.log(Level.WARN,ba.getName() + ":" + new String(ba.getCred()));
                 if (cv.validate(ba.getName(), Type.PASSWORD, ba.getCred(), req)) {
                     return new BasicHttpTafResp(access,ba, ba.getName()+" authenticated by BasicAuth password",RESP.IS_AUTHENTICATED,resp,realm,false);
                 } else {
                     //TODO may need timed retries in a given time period
-                    return new BasicHttpTafResp(access,target,buildMsg(ba,req,"user/pass combo invalid"), 
+                    return new BasicHttpTafResp(access,target,buildMsg(ba,req,"user/pass combo invalid"),
                             RESP.TRY_AUTHENTICATING,resp,realm,true);
                 }
             } catch (IOException e) {
@@ -166,7 +166,7 @@ public class BasicHttpTaf implements HttpTaf {
         }
         return new BasicHttpTafResp(access,target,"Requesting HTTP Basic Authorization",RESP.TRY_AUTHENTICATING,resp,realm,false);
     }
-    
+
     protected String buildMsg(Principal pr, HttpServletRequest req, Object ... msg) {
         StringBuilder sb = new StringBuilder();
         if (pr!=null) {
@@ -187,7 +187,7 @@ public class BasicHttpTaf implements HttpTaf {
         }
         return sb.toString();
     }
-    
+
     public void addCredVal(final String realm, final CredVal cv) {
         rbacs.put(realm, cv);
     }
@@ -199,7 +199,7 @@ public class BasicHttpTaf implements HttpTaf {
         }
         return cv;
     }
-    
+
     @Override
     public Resp revalidate(CachedPrincipal prin, Object state) {
         if (prin instanceof BasicPrincipal) {
@@ -211,7 +211,7 @@ public class BasicHttpTaf implements HttpTaf {
         }
         return Resp.NOT_MINE;
     }
-    
+
     public String toString() {
         return "Basic Auth enabled on realm: " + realm;
     }
index e217449..36da354 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,7 +36,7 @@ public class BasicHttpTafResp extends AbsTafResp implements TafResp {
     private String realm;
     private RESP status;
     private final boolean wasFailed;
-    
+
     public BasicHttpTafResp(Access access, TaggedPrincipal principal, String description, RESP status, HttpServletResponse resp, String realm, boolean wasFailed) {
         super(access, tafName, principal, description);
         httpResp = resp;
@@ -54,7 +54,7 @@ public class BasicHttpTafResp extends AbsTafResp implements TafResp {
     }
 
     public RESP authenticate() throws IOException {
-        httpResp.setStatus(401); // Unauthorized    
+        httpResp.setStatus(401); // Unauthorized
         httpResp.setHeader("WWW-Authenticate", "Basic realm=\""+realm+'"');
         return RESP.HTTP_REDIRECT_INVOKED;
     }
index f597159..18c0049 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,16 +31,16 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
 public interface CertIdentity {
     /**
      * identity from X509Certificate Object and/or certBytes
-     * 
+     *
      * If you have both, include them.  If you only have one, leave the other null, and it will be generated if needed
-     * 
+     *
      * The Request is there to obtain Header or Attribute info of ultimate user
-     * 
+     *
      * @param req
      * @param cert
      * @param certBytes
      * @return
-     * @throws CertificateException 
+     * @throws CertificateException
      */
     public TaggedPrincipal identity(HttpServletRequest req, X509Certificate cert, byte[] certBytes) throws CertificateException;
 }
index d51cc86..46a01d3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,7 @@ public class X509HttpTafResp extends AbsTafResp implements TafResp {
     private static final String tafName = X509Taf.class.getSimpleName();
 
     private RESP status;
-    
+
     public X509HttpTafResp(Access access, TaggedPrincipal principal, String description, RESP status) {
         super(access, tafName, principal, description);
          this.status = status;
index 914c57b..a06fb8e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -77,7 +77,7 @@ public class X509Taf implements HttpTaf {
             throw new RuntimeException("X.509 and SHA-256 are required for X509Taf",e);
         }
     }
-    
+
     public X509Taf(Access access, Lur lur, CertIdentity ... cis) throws CertificateException, NoSuchAlgorithmException, CadiException {
         this.access = access;
         env = access.getProperty(Config.AAF_ENV,null);
@@ -103,7 +103,7 @@ public class X509Taf implements HttpTaf {
         } catch (Exception e) {
             certIdents = cis;
         }
-        
+
         si = new SecurityInfo(access);
     }
 
@@ -141,7 +141,7 @@ public class X509Taf implements HttpTaf {
                     int end = 1;
                     int comma;
                     int length = subject.length();
-                    
+
                     compare:
                     while(start<length) {
                         while(Character.isWhitespace(subject.charAt(start))) {
@@ -165,9 +165,9 @@ public class X509Taf implements HttpTaf {
                            int at = subject.indexOf('@', start);
                            if(at<end && at>=0) {
                                String[] sa = Split.splitTrim(':', subject, start+3,end+1);
-                               if (sa.length==1 || (sa.length>1 && env!=null && env.equals(sa[1]))) { // Check Environment 
-                                   return new X509HttpTafResp(access, 
-                                           new X509Principal(sa[0], certarr[0],(byte[])null,bht), 
+                               if (sa.length==1 || (sa.length>1 && env!=null && env.equals(sa[1]))) { // Check Environment
+                                   return new X509HttpTafResp(access,
+                                           new X509Principal(sa[0], certarr[0],(byte[])null,bht),
                                            "X509Taf validated " + sa[0] + (sa.length<2?"":" for aaf_env " + env ), RESP.IS_AUTHENTICATED);
                                } else {
                                      access.printf(Level.DEBUG,"Certificate is not for environment '%s'",env);
@@ -184,7 +184,7 @@ public class X509Taf implements HttpTaf {
             } else {
                 access.log(Level.DEBUG,"There is no client certificate on the transaction");
             }
-        
+
 
             byte[] array = null;
             byte[] certBytes = null;
@@ -213,30 +213,30 @@ public class X509Taf implements HttpTaf {
                                 Symm.base64noSplit.decode(bais, baos, 5);
                                 certBytes = baos.toByteArray();
                                 cert = getCert(certBytes);
-                                
-                                /** 
+
+                                /**
                                  * Identity from CERT if well know CA and specific encoded information
                                  */
                                 // If found Identity doesn't work, try SignedStuff Protocol
         //                                    cert.checkValidity();
         //                                    cert.--- GET FINGERPRINT?
                                 String stuff = req.getHeader("Signature");
-                                if (stuff==null) 
+                                if (stuff==null)
                                     return new X509HttpTafResp(access, null, "Header entry 'Signature' required to validate One way X509 Certificate", RESP.TRY_ANOTHER_TAF);
-                                String data = req.getHeader("Data"); 
-        //                                    if (data==null) 
+                                String data = req.getHeader("Data");
+        //                                    if (data==null)
         //                                        return new X509HttpTafResp(access, null, "No signed Data to validate with X509 Certificate", RESP.TRY_ANOTHER_TAF);
-        
+
                                 // Note: Data Pos shows is "<signatureType> <data>"
         //                                    int dataPos = (stuff.indexOf(' ')); // determine what is Algorithm
-                                // Get Signature 
+                                // Get Signature
                                 bais = new ByteArrayInputStream(stuff.getBytes());
                                 baos = new ByteArrayOutputStream(stuff.length());
                                 Symm.base64noSplit.decode(bais, baos);
                                 array = baos.toByteArray();
         //                                    Signature sig = Signature.getInstance(stuff.substring(0, dataPos)); // get Algorithm from first part of Signature
-                                
-                                Signature sig = Signature.getInstance(cert.getSigAlgName()); 
+
+                                Signature sig = Signature.getInstance(cert.getSigAlgName());
                                 sig.initVerify(cert.getPublicKey());
                                 sig.update(data.getBytes());
                                 if (!sig.verify(array)) {
@@ -254,16 +254,16 @@ public class X509Taf implements HttpTaf {
                 if (cert==null) {
                     return new X509HttpTafResp(access, null, "No Certificate Info on Transaction", RESP.TRY_ANOTHER_TAF);
                 }
-                
+
                 // A cert has been found, match Identify
                 TaggedPrincipal prin=null;
-                
+
                 for (int i=0;prin==null && i<certIdents.length;++i) {
                     if ((prin=certIdents[i].identity(req, cert, certBytes))!=null) {
                         responseText = prin.getName() + " matches Certificate " + cert.getSubjectX500Principal().getName() + responseText;
                     }
                 }
-    
+
                 // if Principal is found, check for "AS_USER" and whether this entity is trusted to declare
                 if (prin!=null) {
                     // Note: Tag for Certs is Fingerprint, but that takes computation... leaving off
@@ -275,9 +275,9 @@ public class X509Taf implements HttpTaf {
                 }
             }
         } catch (Exception e) {
-            return new X509HttpTafResp(access, null, e.getMessage(), RESP.TRY_ANOTHER_TAF);    
+            return new X509HttpTafResp(access, null, e.getMessage(), RESP.TRY_ANOTHER_TAF);
         }
-    
+
         return new X509HttpTafResp(access, null, "Certificate cannot be used for authentication", RESP.TRY_ANOTHER_TAF);
     }
 
@@ -289,7 +289,7 @@ public class X509Taf implements HttpTaf {
     public void add(BasicHttpTaf bht) {
         this.bht = bht;
     }
-    
+
     public CredVal getCredVal(final String key) {
         if (bht==null) {
             return null;
index f083e5a..1eadc1a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,9 +52,9 @@ public class DenialOfServiceTaf implements HttpTaf {
     private Access access;
     private final TafResp puntNotDenied;
     private static File dosIP, dosID;
-    
+
     /**
-     * 
+     *
      * @param hostname
      * @param prod
      * @throws CadiException
@@ -84,7 +84,7 @@ public class DenialOfServiceTaf implements HttpTaf {
                 return respDenyIP(access,ip);
             }
         }
-        
+
         // Note:  Can't process Principal, because this is the first TAF, and no Principal is created.
         // Other TAFs use "isDenied()" on this Object to validate.
         return puntNotDenied;
@@ -97,7 +97,7 @@ public class DenialOfServiceTaf implements HttpTaf {
     }
 
     /*
-     *  for use in Other TAFs, before they attempt backend validation of 
+     *  for use in Other TAFs, before they attempt backend validation of
      */
     public static Counter isDeniedID(String identity) {
         if (deniedID!=null) {
@@ -105,9 +105,9 @@ public class DenialOfServiceTaf implements HttpTaf {
         }
         return null;
     }
-    
+
     /**
-     *  
+     *
      */
     public static Counter isDeniedIP(String ipvX) {
         if (deniedIP!=null) {
@@ -119,7 +119,7 @@ public class DenialOfServiceTaf implements HttpTaf {
     /**
      * Return of "True" means IP has been added.
      * Return of "False" means IP already added.
-     * 
+     *
      * @param ip
      * @return
      */
@@ -138,7 +138,7 @@ public class DenialOfServiceTaf implements HttpTaf {
         }
         return rv;
     }
-    
+
     private static void writeIP() {
         if (dosIP!=null && deniedIP!=null) {
             if (deniedIP.isEmpty()) {
@@ -162,7 +162,7 @@ public class DenialOfServiceTaf implements HttpTaf {
             }
         }
     }
-    
+
     private static void readIP() {
         if (dosIP!=null && dosIP.exists()) {
             BufferedReader br;
@@ -190,7 +190,7 @@ public class DenialOfServiceTaf implements HttpTaf {
     /**
      * Return of "True" means IP has was removed.
      * Return of "False" means IP wasn't being denied.
-     * 
+     *
      * @param ip
      * @return
      */
@@ -208,7 +208,7 @@ public class DenialOfServiceTaf implements HttpTaf {
     /**
      * Return of "True" means ID has been added.
      * Return of "False" means ID already added.
-     * 
+     *
      * @param ip
      * @return
      */
@@ -262,7 +262,7 @@ public class DenialOfServiceTaf implements HttpTaf {
                     if (deniedID==null) {
                         deniedID=new HashMap<>();
                     }
-                    
+
                     String line;
                     while ((line=br.readLine())!=null) {
                         deniedID.put(line, new Counter(line));
@@ -279,12 +279,12 @@ public class DenialOfServiceTaf implements HttpTaf {
     /**
      * Return of "True" means ID has was removed.
      * Return of "False" means ID wasn't being denied.
-     * 
+     *
      * @param ip
      * @return
      */
     public static synchronized boolean removeDenyID(String id) {
-        if (deniedID!=null && deniedID.remove(id)!=null) { 
+        if (deniedID!=null && deniedID.remove(id)!=null) {
             writeID();
             if (deniedID.isEmpty()) {
                 deniedID=null;
@@ -294,7 +294,7 @@ public class DenialOfServiceTaf implements HttpTaf {
         }
         return false;
     }
-    
+
     public List<String> report() {
         int initSize = 0;
         if (deniedIP!=null)initSize+=deniedIP.size();
@@ -312,24 +312,24 @@ public class DenialOfServiceTaf implements HttpTaf {
         }
         return al;
     }
-    
+
     public static class Counter {
-        private final String name; 
+        private final String name;
         private int count = 0;
         private Date first;
         private long last; // note, we use "last" as long, to avoid popping useless dates on Heap.
-        
+
         public Counter(String name) {
             this.name = name;
             first = null;
             last = 0L;
             count = 0;
         }
-        
+
         public String getName() {
             return name;
         }
-        
+
         public int getCount() {
             return count;
         }
@@ -337,7 +337,7 @@ public class DenialOfServiceTaf implements HttpTaf {
         public long getLast() {
             return last;
         }
-        
+
         /*
          * Only allow Denial of ServiceTaf to increment
          */
@@ -348,12 +348,12 @@ public class DenialOfServiceTaf implements HttpTaf {
                 first = new Date(last);
             }
         }
-        
+
         public String toString() {
-            if (count==0) 
-                return name + " is on the denied list, but has not attempted Access"; 
-            else 
-                return 
+            if (count==0)
+                return name + " is on the denied list, but has not attempted Access";
+            else
+                return
                     name +
                     " has been denied " +
                     count +
@@ -367,7 +367,7 @@ public class DenialOfServiceTaf implements HttpTaf {
     public static TafResp respDenyID(Access access, String identity) {
         return new DenialOfServiceTafResp(access, RESP.NO_FURTHER_PROCESSING, identity + " is on the Identity Denial list");
     }
-    
+
     public static TafResp respDenyIP(Access access, String ip) {
         return new DenialOfServiceTafResp(access, RESP.NO_FURTHER_PROCESSING, ip + " is on the IP Denial list");
     }
index 2215a6f..eea0d92 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,12 +41,12 @@ public class DenialOfServiceTafResp extends AbsTafResp  {
     public RESP isAuthenticated() {
         return ect;
     }
-    
+
 
     public RESP authenticate() throws IOException {
         return ect;
     }
-    
+
     @Override
     public String taf() {
         return "DOS";
index 2c9bb8c..476b2df 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,7 +36,7 @@ import org.onap.aaf.cadi.CadiException;
 
 /**
  * Read CSV file for various purposes
- * 
+ *
  * @author Instrumental(Jonathan)
  *
  */
@@ -46,26 +46,26 @@ public class CSV {
     private boolean processAll;
     private char delimiter = ',';
     private boolean go;
-    
+
     public CSV(Access access, File file) {
         this.access = access;
         csv = file;
         processAll = false;
         go = true;
     }
-    
+
     public CSV(Access access, String csvFilename) {
         this.access = access;
         csv = new File(csvFilename);
         processAll = false;
         go = true;
     }
-    
+
     public CSV setDelimiter(char delimiter) {
         this.delimiter = delimiter;
         return this;
     }
-    
+
     public String name() {
         return csv.getName();
     }
@@ -76,16 +76,16 @@ public class CSV {
     }
     /*
      * Create your code to accept the List<String> row.
-     * 
+     *
      * Your code may keep the List... CSV does not hold onto it.
-     * 
+     *
      * @author Instrumental(Jonathan)
      *
      */
     public interface Visitor {
         void visit(List<String> row) throws IOException, CadiException;
     }
-    
+
     public void visit(Visitor visitor) throws IOException, CadiException {
         BufferedReader br = new BufferedReader(new FileReader(csv));
         try {
@@ -165,7 +165,7 @@ public class CSV {
             br.close();
         }
     }
-    
+
     public Writer writer() throws FileNotFoundException {
         return new Writer(false);
     }
@@ -177,10 +177,10 @@ public class CSV {
     public interface RowSetter {
         public void row(Object ... objs);
     }
-    
+
     public static class Saver implements RowSetter {
         List<String> ls= new ArrayList<>();
-        
+
         @Override
         public void row(Object ... objs) {
             if(objs.length>0) {
@@ -197,7 +197,7 @@ public class CSV {
                 }
             }
         }
-        
+
         public List<String> asList() {
             List<String> rv = ls;
             ls = new ArrayList<>();
@@ -210,7 +210,7 @@ public class CSV {
         private Writer(final boolean append) throws FileNotFoundException {
             ps = new PrintStream(new FileOutputStream(csv,append));
         }
-        
+
         @Override
         public void row(Object ... objs) {
             if(objs.length>0) {
@@ -233,7 +233,7 @@ public class CSV {
                 ps.println();
             }
         }
-        
+
         private void print(String s) {
             boolean quote = s.matches(".*[,|\"].*");
             if(quote) {
@@ -246,7 +246,7 @@ public class CSV {
                 ps.append(s);
             }
 
-            
+
         }
         /**
          * Note: CSV files do not actually support Comments as a standard, but it is useful
@@ -257,32 +257,32 @@ public class CSV {
             ps.printf(comment,objs);
             ps.println();
         }
-        
+
         public void flush() {
             ps.flush();
         }
-        
+
         public void close() {
             flush();
             ps.close();
         }
-        
+
         public String toString() {
             return csv.getAbsolutePath();
         }
     }
-    
+
     /**
      * Provides a way to stop processing records from inside a Visit
      */
     public void stop() {
-       go = false;
+        go = false;
     }
 
     public void delete() {
         csv.delete();
     }
-    
+
     public String toString() {
         return csv.getAbsolutePath();
     }
index 70fabd8..037bd4a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,7 +26,7 @@ import java.io.IOException;
 
 public interface Chmod {
     public void chmod(File f) throws IOException;
-    
+
     public static final Chmod to755 = new Chmod() {
         public void chmod(File f) throws IOException {
             f.setExecutable(true, false);
index 07389aa..69d429c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,7 +44,7 @@ public class FQI {
                 sb.append(split[i]);
             }
         }
-        
+
         return sb==null?"":sb.toString();
     }
 
index f2c6be6..3943cdc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,7 +24,7 @@ import java.net.URI;
 
 /**
  * URI and URL, if the host does not have "dots", will interpret Host:port as Authority
- * 
+ *
  * This is very problematic for Containers, which like single name entries.
  * @author Instrumental(Jonathan)
  *
@@ -33,7 +33,7 @@ public class FixURIinfo {
     private String auth;
     private String host;
     private int port;
-    
+
     public FixURIinfo(URI uri) {
         auth = uri.getAuthority();
         host = uri.getHost();
@@ -51,11 +51,11 @@ public class FixURIinfo {
             }
         }
     }
-    
+
     public String getHost() {
         return host;
     }
-    
+
     public int getPort() {
         return port;
     }
index e790766..c4079d1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,12 +50,12 @@ public class JsonOutputStream extends OutputStream {
         }
         switch(b) {
             case '{':
-            case '[':    
+            case '[':
                     ret = '\n';
                     ++indent;
                     break;
             case '}':
-            case ']': 
+            case ']':
                     --indent;
                     os.write('\n');
                     for (int i=0;i<indent;++i) {
@@ -65,7 +65,7 @@ public class JsonOutputStream extends OutputStream {
             case ',':
                     ret = '\n';
                     break;
-                    
+
         }
         os.write(b);
         prev = b;
index 1539028..58bf5a6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index b930bc2..78e8b71 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 19fd1e2..9910598 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
 
 package org.onap.aaf.cadi.util;
 
-/* 
+/*
  * NetMask - a class to quickly validate whether a given IP is part of a mask, as defined by bytes or standard String format.
- * 
- * Needs the IPV6 Mask Builder. 
+ *
+ * Needs the IPV6 Mask Builder.
  */
 public class NetMask {
     private long mask;
@@ -32,16 +32,16 @@ public class NetMask {
     public NetMask(byte[] inBytes) {
         mask = derive(inBytes);
     }
-    
+
     public NetMask(String string) throws MaskFormatException {
         mask = derive(string,true);
     }
-    
+
     public boolean isInNet(byte[] inBytes) {
         long addr = derive(inBytes);
         return (mask & addr) == addr;
     }
-    
+
     public boolean isInNet(String str) {
         long addr;
         try {
index 156397b..72d09bf 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -21,7 +21,7 @@
 
 /*
  * Pool
- * 
+ *
  * Author: Jonathan
  * 5/27/2011
  */
@@ -35,29 +35,29 @@ import org.onap.aaf.cadi.CadiException;
 /**
  * This Class pools on an As-Needed-Basis any particular kind of class, which is
  * quite suitable for expensive operations.
- * 
+ *
  * The user calls "get" on a Pool, and if a waiting resource (T) is available,
  * it will be returned. Otherwise, one will be created with the "Creator" class
  * (must be defined for (T)).
- * 
+ *
  * You can Prime the instances to avoid huge startup costs
- * 
+ *
  * The returned "Pooled" object simply has to call "done()" and the object is
  * returned to the pool. If the developer does not return the object, a memory
  * leak does not occur. There are no references to the object once "get" is
  * called. However, the developer who does not return the object when done
  * obviates the point of the pool, as new Objects are created in place of the
  * Object not returned when another call to "get" is made.
- * 
+ *
  * There is a cushion of extra objects, currently defaulted to MAX_RANGE. If the
  * items returned become higher than the MAX_RANGE, the object is allowed to go
  * out of scope, and be cleaned up. the default can be changed on a per-pool
  * basis.
- * 
+ *
  * Class revamped for CadiExceptions and Access logging 10/4/2017
- * 
+ *
  * @author Jonathan
- * 
+ *
  * @param <T>
  */
 public class Pool<T> {
@@ -69,7 +69,7 @@ public class Pool<T> {
 
     /**
      * only Simple List needed.
-     * 
+     *
      * NOTE TO MAINTAINERS: THIS OBJECT DOES IT'S OWN SYNCHRONIZATION. All
      * changes that touch list must account for correctly synchronizing list.
      */
@@ -101,7 +101,7 @@ public class Pool<T> {
     /**
      * Create a new Pool, given the implementation of Creator<T>, which must be
      * able to create/destroy T objects at will.
-     * 
+     *
      * @param creator
      */
     public Pool(Creator<T> creator) {
@@ -110,7 +110,7 @@ public class Pool<T> {
         list = new LinkedList<>();
         logger = Log.NULL;
     }
-    
+
     /**
      * Attach Pool Logging activities to any other Logging Mechanism.
      * @param logger
@@ -118,7 +118,7 @@ public class Pool<T> {
     public void setLogger(Log logger) {
         this.logger = logger;
     }
-    
+
     public void log(Object ...objects) {
         logger.log(objects);
     }
@@ -126,10 +126,10 @@ public class Pool<T> {
     /**
      * Preallocate a certain number of T Objects. Useful for services so that
      * the first transactions don't get hit with all the Object creation costs
-     * 
+     *
      * @param lt
      * @param prime
-     * @throws CadiException 
+     * @throws CadiException
      */
     public void prime(int prime) throws CadiException  {
         for (int i = 0; i < prime; ++i) {
@@ -164,16 +164,16 @@ public class Pool<T> {
      * This is the essential function for Pool. Get an Object "T" inside a
      * "Pooled<T>" object. If there is a spare Object, then use it. If not, then
      * create and pass back.
-     * 
+     *
      * This one uses a Null LogTarget
-     * 
+     *
      * IMPORTANT: When the use of this object is done (and the object is still
      * in a valid state), then "done()" should be called immediately to allow
      * the object to be reused. That is the point of the Pool...
-     * 
+     *
      * If the Object is in an invalid state, then "toss()" should be used so the
      * Pool doesn't pass on invalid objects to others.
-     * 
+     *
      * @param lt
      * @return
      * @throws CadiException
@@ -205,7 +205,7 @@ public class Pool<T> {
      * state. If not, they are tossed from the Pool. This is valuable to have
      * when Remote Connections go down, and there is a question on whether the
      * Pooled Objects are still functional.
-     * 
+     *
      * @return
      */
     public boolean validate() {
@@ -225,11 +225,11 @@ public class Pool<T> {
 
     /**
      * This is an internal method, used only by the Internal Pooled<T> class.
-     * 
+     *
      * The Pooled<T> class "offers" it's Object back after use. It is an
      * "offer", because Pool will simply destroy and remove the object if it has
      * more than enough spares.
-     * 
+     *
      * @param lt
      * @param used
      * @return
@@ -253,9 +253,9 @@ public class Pool<T> {
      * The Creator Interface give the Pool the ability to Create, Destroy and
      * Validate the Objects it is maintaining. Thus, it is a specially written
      * Implementation for each type.
-     * 
+     *
      * @author Jonathan
-     * 
+     *
      * @param <T>
      */
     public interface Creator<T> {
@@ -270,7 +270,7 @@ public class Pool<T> {
 
     public interface Log {
         public void log(Object ... o);
-        
+
         public final static Log NULL = new Log() {
             @Override
             public void log(Object ... o) {
@@ -281,7 +281,7 @@ public class Pool<T> {
      * The "Pooled<T>" class is the transient class that wraps the actual Object
      * T for API use/ It gives the ability to return ("done()", or "toss()") the
      * Object to the Pool when processing is finished.
-     * 
+     *
      * For Safety, i.e. to avoid memory leaks and invalid Object States, there
      * is a "finalize" method. It is strictly for when coder forgets to return
      * the object, or perhaps hasn't covered the case during Exceptions or
@@ -291,9 +291,9 @@ public class Pool<T> {
      * However, we don't want Coding Mistakes to put the whole program in an
      * invalid state, so if something happened such that "done()" or "toss()"
      * were not called, the resource is still cleaned up as well as possible.
-     * 
+     *
      * @author Jonathan
-     * 
+     *
      * @param <T>
      */
     public static class Pooled<T> {
@@ -302,7 +302,7 @@ public class Pool<T> {
 
         /**
          * Create the Wrapping Object Pooled<T>.
-         * 
+         *
          * @param t
          * @param pool
          * @param logTarget
@@ -316,7 +316,7 @@ public class Pool<T> {
         /**
          * This is the key API for the Pool, as calling "done()" offers this
          * object back to the Pool for reuse.
-         * 
+         *
          * Do not use the Pooled<T> object again after calling "done()".
          */
         public void done() {
@@ -329,12 +329,12 @@ public class Pool<T> {
          * The user of the Object may discover that the Object t is no longer in
          * a valid state. Don't put Garbage back in the Refrigerator... Toss it,
          * if it's no longer valid.
-         * 
+         *
          * toss() is also used for draining the Pool, etc.
-         * 
+         *
          * toss() will attempt to destroy the Object by using the Creator
          * Interface.
-         * 
+         *
          */
         public void toss() {
             if (pool != null) {
@@ -360,7 +360,7 @@ public class Pool<T> {
 
     /**
      * Get the maximum number of spare objects allowed at any moment
-     * 
+     *
      * @return
      */
     public int getMaxRange() {
@@ -369,9 +369,9 @@ public class Pool<T> {
 
     /**
      * Set a Max Range for numbers of spare objects waiting to be used.
-     * 
+     *
      * No negative numbers are allowed
-     * 
+     *
      * @return
      */
     public void setMaxRange(int max_range) {
index 4f41629..a6e52a4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,7 +26,7 @@ package org.onap.aaf.cadi.util;
  *
  * Note: Copied from Inno to avoid linking issues.
  * Note: I read the String split and Pattern split code, and we can do this more efficiently for a single Character
- * 
+ *
  * 8/20/2015
  */
 
index a85020f..6fe5672 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,12 +28,12 @@ import java.io.InputStreamReader;
 // Substandard, because System.in doesn't do Passwords..
 public class SubStandardConsole implements MyConsole {
     private final static char[] BLANK = new char[0];
-    private final BufferedReader br; 
+    private final BufferedReader br;
 
     public SubStandardConsole() {
         br = new BufferedReader(new InputStreamReader(System.in));
     }
-    
+
     @Override
     public String readLine(String fmt, Object... args) {
         String rv;
index da99d06..0ea1b0a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,7 +35,7 @@ public class TheConsole implements MyConsole {
     public char[] readPassword(String fmt, Object... args) {
         return System.console().readPassword(fmt, args);
     }
-    
+
     public static boolean implemented() {
         return System.console()!=null;
     }
index 529849d..3f9b9b4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index d42aaf5..b9cee7f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,11 +24,11 @@ package org.onap.aaf.cadi.util;
 import org.onap.aaf.cadi.UserChain;
 
 public class UserChainManip {
-    /** 
+    /**
         Build an element in the correct format for UserChain.
         Format:<APP>:<ID>:<protocol>[:AS][,<APP>:<ID>:<protocol>]*
         @see UserChain
-    */ 
+    */
     public static StringBuilder build(StringBuilder sb, String app, String id, UserChain.Protocol proto, boolean as) {
         boolean mayAs;
         if (!(mayAs=sb.length()==0)) {
@@ -44,7 +44,7 @@ public class UserChainManip {
         }
         return sb;
     }
-    
+
     public static String idToNS(String id) {
         if (id==null) {
             return "";
index 417351f..bf9ebc2 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,11 +47,11 @@ public class Vars {
     public static String convert(final StringBuilder holder, final String text, final Object ... vars) {
         StringBuilder sb = null;
         int idx,index=0,prev = 0;
-        
+
         if (text.contains("%s")) {
             sb = new StringBuilder();
         }
-        
+
         StringBuilder[] sbs = new StringBuilder[] {sb,holder};
         boolean replace, clearIndex = false;
         int c;
@@ -66,12 +66,12 @@ public class Vars {
             if (holder!=null) {
                 holder.append(text,prev,idx);
             }
-            
+
             boolean go = true;
             while (go) {
                 if (text.length()>++idx) {
                     switch(c=text.charAt(idx)) {
-                        case '0': case '1': case '2': case '3': case '4': 
+                        case '0': case '1': case '2': case '3': case '4':
                         case '5': case '6': case '7': case '8': case '9':
                             index *=10;
                             index +=(c-'0');
@@ -106,7 +106,7 @@ public class Vars {
                 }
             }
         }
-        
+
         if (sb!=null) {
             sb.append(text,prev,text.length());
         }
index ebcfa9f..5574eef 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -23,11 +23,11 @@ package org.onap.aaf.cadi.wsse;
 
 /**
  * Interface to specify an action deep within a parsing tree on a local object
- * 
+ *
  * We use a Generic so as to be flexible on create what that object actually is.  This is passed in at the
  * root "parse" call of Match.  Similar to a "Visitor" Pattern, this object is passed upon reaching the right
  * point in a parse tree.
- * 
+ *
  * @author Jonathan
  *
  * @param <OUTPUT>
index d0a7da4..e46d5a0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,18 +26,18 @@ import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.events.XMLEvent;
 
 /**
- * Match Class allows you to build an automatic Tree of StAX (or StAX like) 
+ * Match Class allows you to build an automatic Tree of StAX (or StAX like)
  * Objects for frequent use.
- * 
+ *
  * OBJECT is a type which you which to do some end Actions on, similar to a Visitor pattern, see Action
- * 
+ *
  * Note: We have implemented with XReader and XEvent, rather than StAX for performance reasons.
- * 
+ *
  * @see Action
  * @see Match
  * @see XEvent
  * @see XReader
- * 
+ *
  * @author Jonathan
  *
  * @param <OUTPUT>
@@ -50,7 +50,7 @@ public class Match<OUTPUT> {
     private Action<OUTPUT> action = null;
     private boolean stopAfter;
     private boolean exclusive;
-    
+
 
     @SafeVarargs
     public Match(String ns, String name, Match<OUTPUT> ... next) {
@@ -61,7 +61,7 @@ public class Match<OUTPUT> {
             if (!m.stopAfter)m.prev = this;
         }
     }
-    
+
     public Match<OUTPUT> onMatch(OUTPUT output, XReader reader) throws XMLStreamException {
         while (reader.hasNext()) {
             XEvent event = reader.nextEvent();
@@ -111,10 +111,10 @@ public class Match<OUTPUT> {
         stopAfter = true;
         return this;
     }
-    
+
     /**
      * Mark that this Object MUST be matched at this level or stop parsing and end
-     * 
+     *
      * @param action
      * @return
      */
index 787f1b4..0c3cca4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,15 +30,15 @@ import org.onap.aaf.cadi.BasicCred;
 
 /**
  * WSSE Parser
- * 
- * Read the User and Password from WSSE Formatted SOAP Messages 
- * 
+ *
+ * Read the User and Password from WSSE Formatted SOAP Messages
+ *
  * This class uses StAX so that processing is stopped as soon as the Security User/Password are read into BasicCred, or the Header Ends
- * 
+ *
  * This class is intended to be created once (or very few times) and reused as much as possible.
- * 
+ *
  * It is as thread safe as StAX parsing is.
- * 
+ *
  * @author Jonathan
  */
 public class WSSEParser {
@@ -71,7 +71,7 @@ public class WSSEParser {
             ).exclusive()// Envelope must match Header, and no other.  FYI, Body comes after Header short circuits (see above), so it's ok
         ).exclusive(); // root must be Envelope
     }
-    
+
     public XMLStreamException parse(BasicCred bc, InputStream is) {
         try {
             parseTree.onMatch(bc, new XReader(is));
index 187d5b1..d691829 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,12 +26,12 @@ import javax.xml.stream.events.XMLEvent;
 
 /**
  * XEvent
- * 
+ *
  * This mechanism mimics a minimal portion of StAX "XMLEvent", enough to work with minimal XReader.
- * 
+ *
  * We implement the same interface, as much as minimally necessary, as XMLEvent for these small usages so as to
  * be interchangeable in the future, if so desired
- * 
+ *
  * @author Jonathan
  *
  */
@@ -58,7 +58,7 @@ public abstract class XEvent {
         public NamedXEvent(QName qname) {
             this.qname = qname;
         }
-        
+
         public QName getName() {
             return qname;
         }
@@ -79,7 +79,7 @@ public abstract class XEvent {
         public EndElement(String ns, String tag) {
             super(new QName(ns,tag));
         }
-        
+
         @Override
         public int getEventType() {
             return XMLEvent.END_ELEMENT;
@@ -101,14 +101,14 @@ public abstract class XEvent {
             return data;
         }
     }
-    
+
     public static class StartDocument extends XEvent {
 
         @Override
         public int getEventType() {
             return XMLEvent.START_DOCUMENT;
         }
-        
+
     }
 
     public static class EndDocument extends XEvent {
@@ -117,7 +117,7 @@ public abstract class XEvent {
         public int getEventType() {
             return XMLEvent.END_DOCUMENT;
         }
-        
+
     }
     public static class Comment extends XEvent {
         public final String value;
@@ -129,7 +129,7 @@ public abstract class XEvent {
         public int getEventType() {
             return XMLEvent.COMMENT;
         }
-    
+
     }
 
 }
index aa46bec..e820197 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,16 +34,16 @@ import javax.xml.stream.XMLStreamException;
 
 /**
  * XReader
- * This class works similarly as StAX, except StAX has more behavior than is needed.  That would be ok, but 
+ * This class works similarly as StAX, except StAX has more behavior than is needed.  That would be ok, but
  * StAX also was Buffering in their code in such as way as to read most if not all the incoming stream into memory,
  * defeating the purpose of pre-reading only the Header
- * 
+ *
  * This Reader does no back-tracking, but is able to create events based on syntax and given state only, leaving the
  * Read-ahead mode of the InputStream up to the other classes.
- * 
- * At this time, we only implement the important events, though if this is good enough, it could be expanded, perhaps to 
+ *
+ * At this time, we only implement the important events, though if this is good enough, it could be expanded, perhaps to
  * replace the original XMLReader from StAX.
- * 
+ *
  * @author Jonathan
  *
  */
@@ -53,18 +53,18 @@ public class XReader {
     private InputStream is;
     private ByteArrayOutputStream baos;
     private int state, count, last;
-    
+
     private Stack<Map<String,String>> nsses;
-    
+
     public XReader(InputStream is) {
         this.is = is;
         curr = another = null;
         baos = new ByteArrayOutputStream();
-        state = BEGIN_DOC; 
+        state = BEGIN_DOC;
         count = 0;
         nsses = new Stack<Map<String,String>>();
     }
-    
+
     public boolean hasNext() throws XMLStreamException {
         if (curr==null) {
             curr = parse();
@@ -78,7 +78,7 @@ public class XReader {
         return xe;
     }
 
-    // 
+    //
     // State Flags
     //
     // Note: The State of parsing XML can be complicated.  There are too many to cleanly keep in "booleans".  Additionally,
@@ -100,20 +100,20 @@ public class XReader {
     // useful combined Comment states
     private final static int IN_COMMENT=COMMENT|COMMENT_E|COMMENT_D1|COMMENT_D2;
     private final static int COMPLETE_COMMENT = COMMENT|COMMENT_E|COMMENT_D1|COMMENT_D2|COMMENT_D3|COMMENT_D4;
-    
-    
+
+
     private XEvent parse() throws XMLStreamException {
         Map<String,String> nss = nsses.isEmpty()?null:nsses.peek();
 
         XEvent rv;
-        if ((rv=another)!=null) { // "another" is a tag that may have needed to be created, but not 
+        if ((rv=another)!=null) { // "another" is a tag that may have needed to be created, but not
                                  // immediately returned.  Save for next parse.  If necessary, this could be turned into
                                  // a FIFO storage, but a single reference is enough for now.
             another = null;      // "rv" is now set for the Event, and will be returned.  Set to Null.
         } else {
             boolean go = true;
             int c=0;
-            
+
             try {
                 while (go && (c=is.read())>=0) {
                     ++count;
@@ -134,9 +134,9 @@ public class XReader {
                             String ns;
                             switch(t.state&(START_TAG|END_TAG)) {
                                 case START_TAG:
-                                        nss = getNss(nss,t);             // Only Start Tags might have NS Attributes   
-                                                                        // Get any NameSpace elements from tag.  If there are, nss will become 
-                                                                        // a new Map with all the previous NSs plus the new.  This provides 
+                                        nss = getNss(nss,t);             // Only Start Tags might have NS Attributes
+                                                                        // Get any NameSpace elements from tag.  If there are, nss will become
+                                                                        // a new Map with all the previous NSs plus the new.  This provides
                                                                         // scoping behavior when used with the Stack
                                     // drop through on purpose
                                 case END_TAG:
@@ -148,8 +148,8 @@ public class XReader {
                             if (ns==null)
                                 throw new XMLStreamException("Invalid Namespace Prefix at " + count);
                             go = false;
-                            switch(t.state) { // based on 
-                              case DOC_TYPE: 
+                            switch(t.state) { // based on
+                              case DOC_TYPE:
                                   rv = new XEvent.StartDocument();
                                   break;
                               case COMMENT:
@@ -168,14 +168,14 @@ public class XReader {
                                   if (last=='/')another = new XEvent.EndElement(ns,t.name);
                             }
                             if (cxe!=null) {     // if there is a Character Event, it actually should go first.  ow.
-                                another = rv;   // Make current Event the "another" or next event, and 
+                                another = rv;   // Make current Event the "another" or next event, and
                                 rv = cxe;        // send Character Event now
                             }
                             break;
                         case ' ':
                         case '\t':
                         case '\n':
-                            if ((state&BEGIN_DOC)==BEGIN_DOC) { // if Whitespace before doc, just ignore 
+                            if ((state&BEGIN_DOC)==BEGIN_DOC) { // if Whitespace before doc, just ignore
                                 break;
                             }
                             // fallthrough on purpose
@@ -190,17 +190,17 @@ public class XReader {
             } catch (IOException e) {
                 throw new XMLStreamException(e); // all errors parsing will be treated as XMLStreamErrors (like StAX)
             }
-            if (c==-1 && (state&BEGIN_DOC)==BEGIN_DOC) {                // Normally, end of stream is ok, however, we need to know if the 
-                throw new XMLStreamException("Premature End of File"); // document isn't an XML document, so we throw exception if it 
+            if (c==-1 && (state&BEGIN_DOC)==BEGIN_DOC) {                // Normally, end of stream is ok, however, we need to know if the
+                throw new XMLStreamException("Premature End of File"); // document isn't an XML document, so we throw exception if it
             }                                                           // hasn't yet been determined to be an XML Doc
         }
         return rv;
     }
-    
+
     /**
      * parseTag
-     * 
-     * Parsing a Tag is somewhat complicated, so it's helpful to separate this process from the 
+     *
+     * Parsing a Tag is somewhat complicated, so it's helpful to separate this process from the
      * higher level Parsing effort
      * @return
      * @throws IOException
@@ -213,7 +213,7 @@ public class XReader {
         int c, quote=0; // If "quote" is 0, then we're not in a quote.  We set ' (in pretag) or " in attribs accordingly to denote quoted
         String prefix=null,name=null,value=null;
         baos.reset();
-        
+
         while (go && (c=is.read())>=0) {
             ++count;
             if (quote!=0) { // If we're in a quote, we only end if we hit another quote of the same time, not preceded by \
@@ -225,7 +225,7 @@ public class XReader {
             } else if ((state&COMMENT)==COMMENT) { // similar to Quote is being in a comment
                 switch(c) {
                     case '-':
-                        switch(state) { // XML has a complicated Quote set... <!-- --> ... we keep track if each has been met with flags. 
+                        switch(state) { // XML has a complicated Quote set... <!-- --> ... we keep track if each has been met with flags.
                             case COMMENT|COMMENT_E:
                                 state|=COMMENT_D1;
                                 break;
@@ -259,7 +259,7 @@ public class XReader {
                 }
             } else { // Normal Tag Processing loop
                 switch(c) {
-                    case '?': 
+                    case '?':
                         switch(state & (QUESTION_F|QUESTION)) {  // Validate the state of Doc tag... <?xml ... ?>
                             case QUESTION_F:
                                 state |= DOC_TYPE;
@@ -273,7 +273,7 @@ public class XReader {
                         }
                         break;
                     case '!':
-                        if (last=='<') { 
+                        if (last=='<') {
                             state|=COMMENT|COMMENT_E; // likely a comment, continue processing in Comment Loop
                         }
                         baos.write(c);
@@ -321,7 +321,7 @@ public class XReader {
                         // Fallthrough ok
                     default:
                         baos.write(c);                    // write any unprocessed bytes into buffer
-                        
+
                 }
             }
             last = c;
@@ -338,12 +338,12 @@ public class XReader {
 
     /**
      * getNSS
-     * 
+     *
      * If the tag contains some Namespace attributes, create a new nss from the passed in one, copy all into it, then add
      * This provides Scoping behavior
-     * 
+     *
      * if Nss is null in the first place, create an new nss, so we don't have to deal with null Maps.
-     * 
+     *
      * @param nss
      * @param t
      * @return
@@ -374,10 +374,10 @@ public class XReader {
 
     /**
      * The result of the parseTag method
-     * 
+     *
      * Data is split up into prefix, name and value portions. "Tags" with Values that are inside a Tag are known in XLM
-     * as Attributes.  
-     * 
+     * as Attributes.
+     *
      * @author Jonathan
      *
      */
@@ -390,7 +390,7 @@ public class XReader {
             this.prefix = prefix;
             this.name = name;
             this.value = value;
-            attribs = null;  
+            attribs = null;
         }
 
         /**
@@ -404,7 +404,7 @@ public class XReader {
             }
             attribs.add(attrib);
         }
-        
+
         public String toString() {
             StringBuffer sb = new StringBuffer();
             if (prefix!=null) {
index b275790..270a4af 100644 (file)
@@ -95,7 +95,7 @@ public class JU_Get {
         @SuppressWarnings("unused")
         private String thrower = null;
 
-        public TestBean() { } 
+        public TestBean() { }
         public String getProperty1() { return property1; }
         public void setProperty1(final String value) { this.property1 = value; }
         public String getProperty2() { return property2; }
index 2be51ec..7ea8e6f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,7 +45,7 @@ import junit.framework.Assert;
 
 /**
  * Test a simple Migration conversion tool for CADI
- * 
+ *
  * @author Instrumental(Jonathan)
  *
  */
@@ -62,19 +62,19 @@ public class JU_MapBathConverter {
     public static void createFile() throws IOException {
         // Note, you cate a "MapBathConverter" by access to a File.
         // We will create that file now.  Local is fine.
-        csv = new CSV(access,"JU_MapBathConverter.csv"); 
+        csv = new CSV(access,"JU_MapBathConverter.csv");
     }
-    
+
     @BeforeClass
     public static void beforeClass() {
         expected = new ArrayList<>();
     }
-    
+
     @Before
     public void before() {
         expected.clear();
     }
-    
+
     @Test
     public void test() throws IOException, CadiException {
         CSV.Writer cw = csv.writer();
@@ -88,14 +88,14 @@ public class JU_MapBathConverter {
                 // Style 1 - Incoming ID/pass, create new cred with NweID and same Pass
                 cw.row(exp(bath(OLD_ID,SHARED_PASS)), exp(NEW_USER_SOMETHING_ORG),sdf.format(gc.getTime()));
                 // the response should be Basic with NEW_ID and OLD_PASS
-                
+
                 // Style 2
                 cw.row(exp(bath(OLD_ID,"OLD_PASS")), exp(bath(NEW_USER_SOMETHING_ORG,"NEW_PASS")),sdf.format(gc.getTime()));
 
             } finally {
                 cw.close();
             }
-            
+
             final Iterator<String> exp = expected.iterator();
             csv.visit(new Visitor() {
                 @Override
@@ -120,7 +120,7 @@ public class JU_MapBathConverter {
                     }
                 }
             });
-            
+
             MapBathConverter mbc = new MapBathConverter(access, csv);
 
             // Check no lookup just returns the same
@@ -128,12 +128,12 @@ public class JU_MapBathConverter {
 
             Iterator<String> exp1 = expected.iterator();
             // there's no passwords in CSV
-            String old = exp1.next(); 
+            String old = exp1.next();
             String nw = exp1.next();
             Assert.assertEquals(nw, mbc.convert(access,old));
-            
+
             Assert.assertEquals(bath(NEW_USER_SOMETHING_ORG,SHARED_PASS), mbc.convert(access,bath(OLD_ID,SHARED_PASS)));
-            
+
             // Style 1 (new cred, old password)
             old = exp1.next();
             nw = bath(exp1.next(),SHARED_PASS);
@@ -162,7 +162,7 @@ public class JU_MapBathConverter {
             } finally {
                 cw.close();
             }
-            
+
             try {
                 new MapBathConverter(access, csv);
                 Assert.fail("Invalid Data should throw Exception");
@@ -184,7 +184,7 @@ public class JU_MapBathConverter {
             } finally {
                 cw.close();
             }
-            
+
             try {
                 new MapBathConverter(access, csv);
                 Assert.fail("file with too few rows should throw exception");
@@ -205,7 +205,7 @@ public class JU_MapBathConverter {
             Assert.assertTrue("Correctly thrown Exception",true);
         }
     }
-    
+
     @Test
     public void testBadRows() throws IOException {
         try {
@@ -215,7 +215,7 @@ public class JU_MapBathConverter {
             } finally {
                 cw.close();
             }
-            
+
             try {
                 new MapBathConverter(access,csv);
                 Assert.fail("Non Existent File should throw exception");
@@ -225,11 +225,11 @@ public class JU_MapBathConverter {
         } finally {
             csv.delete();
         }
-        
-        // Check for deletion 
+
+        // Check for deletion
         Assert.assertFalse(csv.toString() + "should have been deleted",new File(csv.toString()).exists());
     }
-    
+
     private String bath(String user, String password) throws IOException {
         StringBuilder sb = new StringBuilder(user);
         sb.append(':');
index 1fe6a75..3b3461c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -46,10 +46,10 @@ public class JU_RegistrationPropHolder {
                 rph = new RegistrationPropHolder(pa,20);
             } catch (CadiException e) {
                 Assert.assertEquals(
-                        "\ncadi_latitude must be defined." + 
+                        "\ncadi_latitude must be defined." +
                         "\ncadi_longitude must be defined.",e.getMessage());
             }
-            
+
             try {
                 pa.setProperty(Config.CADI_LATITUDE, "32.7");
                 rph = new RegistrationPropHolder(pa,20);
@@ -57,10 +57,10 @@ public class JU_RegistrationPropHolder {
                 Assert.assertEquals(
                         "\ncadi_longitude must be defined.",e.getMessage());
             }
-            
+
             pa.setProperty(Config.CADI_LONGITUDE, "-72.0");
             rph = new RegistrationPropHolder(pa,ju_port);
-            
+
             ////////////////
             // Validate Default Properties
             ////////////////
@@ -107,21 +107,21 @@ public class JU_RegistrationPropHolder {
             final String url = "https://aaf.osaaf.org:8095/org.osaaf.aaf.service:2.1";
             String name="theName";
             assertEquals(url,rph.replacements(getClass().getSimpleName(),url, name, ""));
-            
+
             String alu = "aaf.osaaf.org:8095";
             String curl = url.replace(alu, Config.AAF_LOCATE_URL_TAG);
             pa.setProperty(Config.AAF_LOCATE_URL,"https://"+alu);
             assertEquals(url.replace("8095","8095/locate"),rph.replacements(getClass().getSimpleName(),curl, name, ""));
-            
+
             String root_ns = "org.osaaf.aaf";
             curl = url.replace(root_ns, "AAF_NS");
             pa.setProperty(Config.AAF_ROOT_NS,root_ns);
             assertEquals(url,rph.replacements(getClass().getSimpleName(),curl, name, ""));
-            
+
             curl = url.replace(root_ns, "%AAF_NS");
             pa.setProperty(Config.AAF_ROOT_NS,root_ns);
             assertEquals(url,rph.replacements(getClass().getSimpleName(),curl, name, ""));
-            
+
             final String fqdn = "%C.%CNS.%NS.%N";
             String target = "myns.theName";
             assertEquals(target,rph.replacements(getClass().getSimpleName(),fqdn, name, ""));
@@ -129,11 +129,11 @@ public class JU_RegistrationPropHolder {
             pa.setProperty(Config.AAF_LOCATOR_CONTAINER_NS+".hello", "mycontns");
             target = "mycontns.myns.theName";
             assertEquals(target,rph.replacements(getClass().getSimpleName(),fqdn, name, ".hello"));
-            
+
             pa.setProperty(Config.AAF_LOCATOR_CONTAINER+".hello","helloC");
             target = "helloC.mycontns.myns.theName";
             assertEquals(target,rph.replacements(getClass().getSimpleName(),fqdn, name, ".hello"));
-            
+
             pa.setProperty(Config.AAF_LOCATOR_CONTAINER_NS,"c_ns");
             target = "c_ns.myns.theName";
             assertEquals(target,rph.replacements(getClass().getSimpleName(),fqdn, name, ""));
@@ -144,6 +144,6 @@ public class JU_RegistrationPropHolder {
             Assert.fail();
         }
     }
-    
+
 
 }
index 98c1a29..7d34aab 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,16 +45,16 @@ import org.onap.aaf.cadi.config.Config;
 import org.onap.aaf.cadi.config.SecurityInfo;
 
 public class JU_SecurityInfo {
-    
+
     private static PropAccess access;
-    
+
     private static final String keyStoreFileName = "src/test/resources/keystore.p12";
     private static final String keyStorePassword = "Password for the keystore";
     private static final String keyPassword = "Password for the key";
-        
+
     private static final String trustStoreFileName = "src/test/resources/truststore.jks";
     private static final String trustStorePasswd = "Password for the truststore";
-    
+
     @BeforeClass
     public static void setupOnce() throws NoSuchAlgorithmException, CertificateException, IOException, KeyStoreException {
         KeyStore keyStore = KeyStore.getInstance("PKCS12");
@@ -65,7 +65,7 @@ public class JU_SecurityInfo {
         trustStore.load(null, null);
         trustStore.store(new FileOutputStream(trustStoreFileName), trustStorePasswd.toCharArray());
     }
-    
+
     @Before
     public void setup() throws IOException {
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
@@ -73,7 +73,7 @@ public class JU_SecurityInfo {
         access.setProperty(Config.CADI_KEYSTORE, keyStoreFileName);
         access.setProperty(Config.CADI_KEYSTORE_PASSWORD, access.encrypt(keyStorePassword));
         access.setProperty(Config.CADI_KEY_PASSWORD, access.encrypt(keyPassword));
-        
+
         access.setProperty(Config.CADI_TRUSTSTORE, trustStoreFileName);
         access.setProperty(Config.CADI_TRUSTSTORE_PASSWORD, access.encrypt(trustStorePasswd));
     }
@@ -97,7 +97,7 @@ public class JU_SecurityInfo {
         assertNotNull(si.getSSLSocketFactory());
         assertNotNull(si.getSSLContext());
         assertNotNull(si.getKeyManagers());
-        
+
         access.setProperty(Config.CADI_TRUST_MASKS, "123.123.123.123");
         si = new SecurityInfo(access);
     }
@@ -115,8 +115,8 @@ public class JU_SecurityInfo {
         @SuppressWarnings("unused")
         SecurityInfo si = new SecurityInfo(access);
     }
-    
-    
+
+
     @Test(expected = NumberFormatException.class)
     public void badTrustMaskTest() throws CadiException {
         access.setProperty(Config.CADI_TRUST_MASKS, "trustMask");
index da99f9a..6826c2f 100644 (file)
@@ -75,7 +75,7 @@ public class JU_SecurityInfoC {
 //        SecurityInfoC<HttpURLConnection> siClone = SecurityInfoC.instance(new PropAccess(), HttpURLConnection.class);
 //        assertThat(siClone, is(si));
 //    }
-    
+
     @Test
     public void setTest() throws MalformedURLException, CadiException {
         SecurityInfoC<HttpURLConnectionStub> si = SecurityInfoC.instance(new PropAccess(), HttpURLConnectionStub.class);
@@ -95,9 +95,9 @@ public class JU_SecurityInfoC {
     }
 
     public static class HttpURLConnectionStub extends HttpURLConnection {
-        public HttpURLConnectionStub() throws MalformedURLException { super(new URL("http://www.example.com")); } 
-        @Override public void disconnect() { } 
-        @Override public boolean usingProxy() { return false; } 
+        public HttpURLConnectionStub() throws MalformedURLException { super(new URL("http://www.example.com")); }
+        @Override public void disconnect() { }
+        @Override public boolean usingProxy() { return false; }
         @Override public void connect() throws IOException { }
     }
 
index 78b0fbc..418fa1e 100644 (file)
@@ -48,16 +48,16 @@ import org.onap.aaf.cadi.config.Config;
 import org.onap.aaf.cadi.filter.PathFilter;
 
 public class JU_PathFilter {
-    
+
     private PropAccess access;
-    
+
     @Mock private FilterConfig filterConfigMock;
     @Mock private ServletContext contextMock;
     @Mock private HttpServletRequest reqMock;
     @Mock private HttpServletResponse respMock;
     @Mock private FilterChain chainMock;
     @Mock private Principal princMock;
-    
+
     @Before
     public void setup() {
         MockitoAnnotations.initMocks(this);
@@ -77,28 +77,28 @@ public class JU_PathFilter {
         } catch (ServletException e) {
             assertThat(e.getMessage(), is("PathFilter - pathfilter_ns is not set"));
         }
-        
+
         when(contextMock.getAttribute(Config.PATHFILTER_NS)).thenReturn(5);
         when(contextMock.getAttribute(Config.PATHFILTER_STACK)).thenReturn(5);
         when(contextMock.getAttribute(Config.PATHFILTER_URLPATTERN)).thenReturn(5);
         when(contextMock.getAttribute(Config.PATHFILTER_NOT_AUTHORIZED_MSG)).thenReturn(5);
         pathFilter.init(filterConfigMock);
-        
+
         pathFilter.doFilter(reqMock, respMock, chainMock);
 
         when(reqMock.isUserInRole(anyString())).thenReturn(true);
         pathFilter.doFilter(reqMock, respMock, chainMock);
-        
+
         pathFilter.destroy();
 
         pathFilter = new PathFilter();
         pathFilter.init(filterConfigMock);
-        
+
         pathFilter.doFilter(reqMock, respMock, chainMock);
 
         when(reqMock.isUserInRole(anyString())).thenReturn(false);
         pathFilter.doFilter(reqMock, respMock, chainMock);
-        
+
         pathFilter.destroy();
     }
 
index b37a38a..2252541 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -40,7 +40,7 @@ public class JU_ConfigPrincipal {
     private final String b64encoded = "VXNlcjpwYXNz";
 
     private Field content_field;
-    
+
     @Before
     public void setup() throws NoSuchFieldException {
         content_field = ConfigPrincipal.class.getDeclaredField("content");
@@ -50,7 +50,7 @@ public class JU_ConfigPrincipal {
     @Test
     public void testConfigPrincipalStringString() throws IOException, IllegalArgumentException, IllegalAccessException {
         ConfigPrincipal p =  new ConfigPrincipal(name, pass);
-        
+
         assertThat(p.getName(), is(name));
         assertThat(p.toString(), is(name));
         assertThat(p.getCred(), is(pass.getBytes()));
@@ -65,7 +65,7 @@ public class JU_ConfigPrincipal {
     @Test
     public void testConfigPrincipalStringByteArray() throws IOException, IllegalArgumentException, IllegalAccessException {
         ConfigPrincipal p =  new ConfigPrincipal(name, pass.getBytes());
-        
+
         assertThat(p.getName(), is(name));
         assertThat(p.toString(), is(name));
         assertThat(p.getCred(), is(pass.getBytes()));
@@ -76,5 +76,5 @@ public class JU_ConfigPrincipal {
         // One more time for coverage purposes
         assertThat(p.getAsBasicAuthHeader(), is("Basic " + b64encoded));
     }
-    
+
 }
index 9ed5fd1..c3e5cb6 100644 (file)
@@ -104,14 +104,14 @@ public class JU_LocalLur {
         info = lur.dumpInfo();
         assertThat(info.size(), is(1));
         assertThat(info.get(0).user, is("user1@domain"));
-        
+
         when(permMock.getKey()).thenReturn("groupA");
         assertThat(lur.handlesExclusively(permMock), is(true));
         when(permMock.getKey()).thenReturn("groupB");
         assertThat(lur.handlesExclusively(permMock), is(false));
-        
+
         assertThat(lur.fish(null, null), is(false));
-        
+
         Principal princ = new ConfigPrincipal("user1@localized", encrypted);
 
         lur = new LocalLur(access, "user1@localized%" + password + ":groupA", null);
@@ -124,9 +124,9 @@ public class JU_LocalLur {
 
         princ = new ConfigPrincipal("user1@localized", "badpass");
         assertThat(lur.fish(princ, lur.createPerm("groupB")), is(false));
-        
+
         assertThat(lur.handles(null), is(false));
-        
+
         lur.fishAll(null,  null);
 
         List<Permission> perms = new ArrayList<>();
@@ -136,7 +136,7 @@ public class JU_LocalLur {
         lur.fishAll(princ, perms);
         princ = new ConfigPrincipal("user1@localized", "badpass");
         lur.fishAll(princ, perms);
-        
+
         assertThat(lur.validate(null, null, null, null), is(false));
         assertThat(lur.validate("user", null, "badpass".getBytes(), null), is(false));
         assertThat(lur.validate("user1@localized", null, encrypted.getBytes(), null), is(false));
index e67e096..7356dbb 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 5b780c9..eb96a16 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 04b9367..b69eb3e 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index c9623fb..6ca74e2 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index a76e01f..4ea3694 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 3dfe8d8..eb3afa3 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index ed1ae4c..1162b0e 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 60fc88e..efba241 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index ea45c12..6e02988 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 641545c..35a27e4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 47d8f8d..7154ab6 100644 (file)
@@ -68,7 +68,7 @@ public class JU_DenialOfServiceTaf {
     private File dosIDFile;
     private File dosDir;
     private final String dosDirName = "test";
-    
+
     private final String id1 = "id1";
     private final String id2 = "id2";
 
index b9b7b16..034e974 100644 (file)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  * ============LICENSE_START====================================================
  * org.onap.aaf
  * ===========================================================================
index 4dba8ed..86ecb90 100644 (file)
@@ -7,9 +7,9 @@
 * * 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.
@@ -39,15 +39,15 @@ import org.onap.aaf.cadi.taf.AbsTafResp;
 import org.onap.aaf.cadi.taf.TafResp.RESP;
 
 public class JU_AbsTafResp {
-    
+
     private static final String JUNIT = "Junit";
     private static final String name = "name";
     private static final String tag = "tag";
     private static final String description = "description";
-    
+
     private Access access;
     private TaggedPrincipal taggedPrinc;
-    
+
     @Before
     public void setup() {
         access = new PropAccess(new PrintStream(new ByteArrayOutputStream()), new String[0]);
index 8e10389..0e988f2 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -71,16 +71,16 @@ public class JU_EpiTaf {
     }
 
     class TryAnotherTafResp implements TafResp {
-        @Override public boolean isValid() { return false; } 
-        @Override public String desc() { return null; } 
-        @Override public RESP isAuthenticated() { return RESP.TRY_ANOTHER_TAF; } 
-        @Override public RESP authenticate() throws IOException { return null; } 
-        @Override public TaggedPrincipal getPrincipal() { return null; } 
+        @Override public boolean isValid() { return false; }
+        @Override public String desc() { return null; }
+        @Override public RESP isAuthenticated() { return RESP.TRY_ANOTHER_TAF; }
+        @Override public RESP authenticate() throws IOException { return null; }
+        @Override public TaggedPrincipal getPrincipal() { return null; }
         @Override public String getTarget() {return "unknown";}
-        @Override public Access getAccess() { return null; } 
+        @Override public Access getAccess() { return null; }
         @Override public boolean isFailedAttempt() { return false; }
         @Override public float timing() { return 0; }
-        @Override public void timing(long start) {} 
+        @Override public void timing(long start) {}
         @Override public String taf() {return "JUnit";}
     }
 
@@ -89,16 +89,16 @@ public class JU_EpiTaf {
     }
 
     class TryAuthenticatingResp implements TafResp {
-        @Override public boolean isValid() { return false; } 
-        @Override public String desc() { return null; } 
-        @Override public RESP isAuthenticated() { return RESP.TRY_AUTHENTICATING; } 
-        @Override public RESP authenticate() throws IOException { return null; } 
-        @Override public TaggedPrincipal getPrincipal() { return null; } 
+        @Override public boolean isValid() { return false; }
+        @Override public String desc() { return null; }
+        @Override public RESP isAuthenticated() { return RESP.TRY_AUTHENTICATING; }
+        @Override public RESP authenticate() throws IOException { return null; }
+        @Override public TaggedPrincipal getPrincipal() { return null; }
         @Override public String getTarget() {return "unknown";}
-        @Override public Access getAccess() { return null; } 
-        @Override public boolean isFailedAttempt() { return false; } 
+        @Override public Access getAccess() { return null; }
+        @Override public boolean isFailedAttempt() { return false; }
         @Override public float timing() { return 0; }
-        @Override public void timing(long start) {} 
+        @Override public void timing(long start) {}
         @Override public String taf() {return "JUnit";}
     }
 
index fdb152c..df9404a 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -43,21 +43,21 @@ public class JU_NullTaf {
         TafResp singleton1 = nt.validate(null);
         TafResp singleton2 = nt.validate(null, null, null);
         Resp singleton3 = nt.revalidate(null, null);
-        
+
         assertThat(singleton1, is(singleton2));
-        
+
         assertFalse(singleton1.isValid());
-        
+
         assertThat(singleton1.isAuthenticated(), is(RESP.NO_FURTHER_PROCESSING));
-        
+
         assertThat(singleton1.desc(), is("All Authentication denied"));
-        
+
         assertThat(singleton1.authenticate(), is(RESP.NO_FURTHER_PROCESSING));
-        
+
         assertThat(singleton1.getPrincipal(), is(nullValue()));
-        
+
         assertThat(singleton1.getAccess(), is(Access.NULL));
-        
+
         assertTrue(singleton1.isFailedAttempt());
 
         assertThat(singleton3, is(Resp.NOT_MINE));
index 316678e..8b91832 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 4b28d6a..770d893 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 5a23062..7bbc950 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index a3e0db0..72dfc3e 100644 (file)
@@ -86,7 +86,7 @@ public class JU_AES {
         byte[] encrypted = aes.encrypt(orig.getBytes());
         byte[] decrypted = aes.decrypt(encrypted);
         assertThat(new String(decrypted), is(orig));
+
         Field aeskeySpec_field = AES.class.getDeclaredField("aeskeySpec");
         aeskeySpec_field.setAccessible(true);
         aeskeySpec_field.set(aes, null);
@@ -122,7 +122,7 @@ public class JU_AES {
 
         CipherInputStream cisEncrypt;
         CipherInputStream cisDecrypt;
-        
+
         // Test CipherInputStream
         baisEncrypt = new ByteArrayInputStream(orig.getBytes());
         cisEncrypt = aes.inputStream(baisEncrypt, true);
@@ -157,7 +157,7 @@ public class JU_AES {
 
         CipherOutputStream cosEncrypt;
         CipherOutputStream cosDecrypt;
-        
+
         // Test CipherOutputStream
         baisEncrypt = new ByteArrayInputStream(orig.getBytes());
         baosEncrypt = new ByteArrayOutputStream();
@@ -191,5 +191,5 @@ public class JU_AES {
             os.write(buffer, 0, len);
         }
     }
-    
+
 }
index 2146205..b0c0dca 100644 (file)
@@ -31,7 +31,7 @@ import org.mockito.MockitoAnnotations;
 public class JU_BufferedCadiWrap {
     @Mock
     private HttpServletRequest request;
-    
+
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
index 294bb86..2aff33d 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -33,7 +33,7 @@ public class JU_CadiException {
     @Test
     public void testCadiException() {
         CadiException exception = new CadiException();
-        
+
         assertNotNull(exception);
     }
 
@@ -58,11 +58,11 @@ public class JU_CadiException {
         assertThat(exception.getMessage(), is("New Exception"));
 
     }
-    
+
     @Test
     public void testCadiException1() {
         CadiException exception = new CadiException();
-        
+
         assertNotNull(exception);
     }
 
@@ -87,11 +87,11 @@ public class JU_CadiException {
         assertThat(exception.getMessage(), is("New Exception"));
 
     }
-    
+
     @Test
     public void testCadiException2() {
         CadiException exception = new CadiException();
-        
+
         assertNotNull(exception);
     }
 
index 4f31a8f..5f97481 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -52,13 +52,13 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
 import org.onap.aaf.cadi.taf.TafResp;
 
 public class JU_CadiWrap {
-    
+
     @Mock
     private HttpServletRequest request;
-    
+
     @Mock
     private TafResp tafResp;
-    
+
     @Mock
     private TaggedPrincipal principle;
 
@@ -82,35 +82,35 @@ public class JU_CadiWrap {
     public void testInstantiate() throws CadiException {
         Access a = new PropAccess();
         when(tafResp.getAccess()).thenReturn(a);
-        
+
         lur.fishAll(isA(Principal.class), (List<Permission>)isA(List.class));
-        
+
         EpiLur lur1 = new EpiLur(lur);
-        
+
         CadiWrap wrap = new CadiWrap(request, tafResp, lur1);
-        
+
         assertNull(wrap.getUserPrincipal());
         assertNull(wrap.getRemoteUser());
         assertNull(wrap.getUser());
         assertEquals(wrap.getPermissions(principle).size(), 0);
         assertTrue(wrap.access() instanceof PropAccess);
-        
+
         byte[] arr = {'1','2'};
         wrap.setCred(arr);
-        
+
         assertEquals(arr, wrap.getCred());
-        
+
         wrap.setUser("User1");
         assertEquals("User1", wrap.getUser());
-        
+
         wrap.invalidate("1");
 
         assertFalse(wrap.isUserInRole(null));
-        
+
         wrap.set(tafResp, lur);
-        
+
         wrap.invalidate("2");
-        
+
         assertFalse(wrap.isUserInRole("User1"));
     }
 
@@ -119,7 +119,7 @@ public class JU_CadiWrap {
         Access a = new PropAccess();
         when(tafResp.getAccess()).thenReturn(a);
         when(tafResp.getPrincipal()).thenReturn(principle);
-        
+
         // Anonymous object for testing purposes
         CachingLur<Permission> lur1 = new CachingLur<Permission>() {
             @Override public Permission createPerm(String p) { return null; }
@@ -133,29 +133,29 @@ public class JU_CadiWrap {
             @Override public void setDebug(String commaDelimIDsOrNull) { }
             @Override public void clear(Principal p, StringBuilder sb) { }
         };
-        
+
         MapPermConverter pc = new MapPermConverter();
-        
+
         CadiWrap wrap = new CadiWrap(request, tafResp, lur1, pc);
-        
+
         assertNotNull(wrap.getUserPrincipal());
         assertNull(wrap.getRemoteUser());
         assertNull(wrap.getUser());
-        
+
         byte[] arr = {'1','2'};
         wrap.setCred(arr);
-        
+
         assertEquals(arr, wrap.getCred());
-        
+
         wrap.setUser("User1");
         assertEquals("User1", wrap.getUser());
-        
+
         wrap.invalidate("1");
         wrap.setPermConverter(new MapPermConverter());
-        
+
         assertTrue(wrap.getLur() instanceof CachingLur);
         assertTrue(wrap.isUserInRole("User1"));
-        
+
         wrap.set(tafResp, lur);
         assertFalse(wrap.isUserInRole("Perm1"));
     }
index 4c84291..f03f2b6 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -34,7 +34,7 @@ import java.lang.reflect.*;
 
 public class JU_Capacitor {
     private Capacitor cap;
-    public final static String TEST_DATA = 
+    public final static String TEST_DATA =
             "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" +
             "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" +
             "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" +
@@ -122,7 +122,7 @@ public class JU_Capacitor {
         for (int i = 0; i < c.length; i += read) {
             read = cap.read(c, i, Math.min(3, c.length-i));
         }
-        assertEquals(b, new String(c));    
+        assertEquals(b, new String(c));
     }
 
     @Test
index 859f9a2..56b5538 100644 (file)
@@ -82,7 +82,7 @@ public class JU_CmdLine {
             fis.close();
         }
     }
-    
+
     @After
     public void restoreStreams() throws IOException {
         System.setOut(System.out);
@@ -189,7 +189,7 @@ public class JU_CmdLine {
         CmdLine.main(new String[]{"passgen", String.valueOf(length)});
         output = outContent.toString().trim();
         assertThat(output.length(), is(length));
-        
+
         length = 5;
         outContent.reset();
         CmdLine.main(new String[]{"passgen", String.valueOf(length)});
index 86d647e..05abc7e 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -208,11 +208,11 @@ public class JU_Hash {
         assertEquals(new String(new byte[] {(byte)0x0A, (byte)0xB0}), new String(output));
         assertNull(Hash.fromHexNo0x("~~"));
     }
-//    
+//
 //    @Test
 //    public void aaf_941() throws Exception {
 //        // User notes: From reported error "aaf" not coded right
-//        
-//        
+//
+//
 //    }
 }
index bf79d74..aa52225 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 9ab2c98..abb3397 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -39,10 +39,10 @@ import java.util.Properties;
 
 @SuppressWarnings("unused")
 public class JU_PropAccess {
-    // Note: We can't actually get coverage of the protected constructor - 
+    // Note: We can't actually get coverage of the protected constructor -
     // that will be done later, when testing the child class "ServletContextAccess"
-    
-    
+
+
     @Test
     public void ConstructorTest() throws Exception {
         PropAccess prop = new PropAccess();
@@ -82,7 +82,7 @@ public class JU_PropAccess {
         ByteArrayInputStream bais = new ByteArrayInputStream(new byte[0]);
         pa.load(bais);
     }
-    
+
     @Test
     public void specialConversionsTest() throws Exception {
         // Coverage tests
index 104923c..827a86e 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -50,7 +50,7 @@ public class JU_ServletContextAccess {
 
     private FilterConfig filter_mock;
     Enumeration<String> enumeration;
-    
+
     private class CustomEnumeration implements Enumeration<String> {
         private int idx = 0;
         private final String[] elements = {"This", "is", "a", "test"};
@@ -70,7 +70,7 @@ public class JU_ServletContextAccess {
         filter_mock = mock(FilterConfig.class);
         when(filter_mock.getInitParameterNames()).thenReturn(enumeration);
     }
-    
+
 
     @Test
     public void logTest() throws Exception {
index 5e6f69b..110f103 100644 (file)
@@ -107,7 +107,7 @@ public class JU_Symm {
         String orig = "I'm a password, really";
         String b64encrypted;
         String output;
-        
+
         ByteArrayOutputStream baosEncrypt = new ByteArrayOutputStream();
         Symm.base64.encode(orig, baosEncrypt);
         b64encrypted = new String(baosEncrypt.toByteArray());
@@ -126,7 +126,7 @@ public class JU_Symm {
         String output;
 
         byte[] prefix = "enc:".getBytes();
-        
+
         ByteArrayInputStream baisEncrypt = new ByteArrayInputStream(orig.getBytes());
         ByteArrayOutputStream baosEncrypt = new ByteArrayOutputStream();
         Symm.base64.encode(baisEncrypt, baosEncrypt, prefix);
@@ -209,5 +209,5 @@ public class JU_Symm {
             assertTrue(e.getMessage().contains(" does not exist!"));
         }
     }
-    
+
 }
index 3df12f8..2bb9882 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
@@ -55,16 +55,16 @@ public class JU_User {
 
     @Mock
     private Principal principal;
-    
+
     @Mock
     private LocalPermission permission;
     @Mock
     private LocalPermission permission2;
-    
+
     @Before
     public void setup() throws NoSuchFieldException, SecurityException {
         MockitoAnnotations.initMocks(this);
-        
+
         when(principal.getName()).thenReturn("Principal");
 
         when(permission.getKey()).thenReturn("NewKey");
@@ -98,7 +98,7 @@ public class JU_User {
         assertThat((int)count_field.get(user), is(0));
         assertThat(user.getCred(), is(cred.getBytes()));
     }
-    
+
     @Test
     public void constructorPrincipalIntervalTest() throws IllegalArgumentException, IllegalAccessException {
         User<Permission> user = new User<Permission>(principal, 61 * SECOND);
@@ -133,7 +133,7 @@ public class JU_User {
         user.resetCount();
         assertThat((int)count_field.get(user), is(0));
     }
-    
+
     @Test
     public void permTest() throws InterruptedException, IllegalArgumentException, IllegalAccessException {
         User<Permission> user = new User<Permission>(principal);
@@ -155,32 +155,32 @@ public class JU_User {
         assertTrue(user.permsUnloaded());
         assertTrue(user.noPerms());
     }
-    
+
     @Test
     public void addValuesToNewMapTest() {
         User<Permission> user = new User<Permission>(principal);
         Map<String, Permission> newMap = new HashMap<>();
-        
+
         assertFalse(user.contains(permission));
-        
+
         user.add(newMap, permission);
         user.setMap(newMap);
-        
+
         assertTrue(user.contains(permission));
-        
+
         List<Permission> sink = new ArrayList<>();
         user.copyPermsTo(sink);
-        
+
         assertThat(sink.size(), is(1));
         assertTrue(sink.contains(permission));
-        
+
         assertThat(user.toString(), is("Principal|:NewKey"));
 
         user.add(newMap, permission2);
         user.setMap(newMap);
         assertFalse(user.contains(permission2));
-        
+
         assertThat(user.toString(), is("Principal|:NewKey2,NewKey"));
     }
-    
+
 }
index d4feac6..1681f43 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -52,7 +52,7 @@ public class JU_CSV {
         filename = "Sample.csv";
         file = new File(filename);
     }
-    
+
     @After
     public void end() {
         if(file!=null) {
@@ -64,7 +64,7 @@ public class JU_CSV {
     public static void before() {
         expected = new ArrayList<>();
     }
-    
+
     @Test
     public void test() throws IOException, CadiException {
         Access access = new PropAccess();
@@ -78,7 +78,7 @@ public class JU_CSV {
         } catch(IOException e) {
             Assert.assertTrue("CSV correctly created exception",true);
         }
-        
+
         Writer writer = csv.writer();
         try {
             writer.row(add("\"hello\""));
@@ -89,7 +89,7 @@ public class JU_CSV {
         } finally {
             writer.close();
         }
-        
+
         PrintStream garbage = new PrintStream(new FileOutputStream(file, true));
         try {
             garbage.println("# Ignore empty spaces, etc");
@@ -100,8 +100,8 @@ public class JU_CSV {
             garbage.close();
         }
 
-    
-    //////////// 
+
+    ////////////
     // Tests
     ////////////
         final Holder<Integer> hi = new Holder<>(0);
index 6e93cc5..148f2e5 100644 (file)
@@ -6,9 +6,9 @@
  * * 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.
index 3daa6cb..30a5f65 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index b3d7797..2203b07 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index ba03b6b..41ca071 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index b37d03a..3676e12 100644 (file)
@@ -6,9 +6,9 @@
  * * 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.
@@ -39,25 +39,25 @@ public class JU_NetMask {
         String test = "1.2.3.4";
         assertEquals(NetMask.derive(test.getBytes()), 0);
     }
-    
+
     @Test
     public void deriveTest3() {
         String test = "1.2.4";
         assertEquals(NetMask.derive(test.getBytes()), 0);
     }
-    
+
     @Test
     public void deriveTest4() {
         String test = "1.3.4";
         assertEquals(NetMask.derive(test.getBytes()), 0);
     }
-    
+
     @Test
     public void deriveTest5() {
         String test = "2.3.4";
         assertEquals(NetMask.derive(test.getBytes()), 0);
     }
-    
+
     @Test
     public void deriveTest6() {
         String test = "3.4";
index e4f1e01..230c6b3 100644 (file)
@@ -6,9 +6,9 @@
  * * 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.
index cbaa545..fb2ed0e 100644 (file)
@@ -6,9 +6,9 @@
  * * 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.
@@ -104,7 +104,7 @@ public class JU_Split {
 
         assertThat(Split.splitTrim('c', null, 0).length, is(0));
     }
-    
+
     @Test
     public void coverageTest() {
         @SuppressWarnings("unused")
index cff4b41..8c1597c 100644 (file)
@@ -6,9 +6,9 @@
  * * 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.
index da13125..ad63d5a 100644 (file)
@@ -6,9 +6,9 @@
  * * 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.
index f9c4cf7..0ddbb47 100644 (file)
@@ -6,9 +6,9 @@
  * * 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.
@@ -30,7 +30,7 @@ import org.junit.Test;
 import org.onap.aaf.cadi.util.Vars;
 
 public class JU_Vars {
-    
+
     @Test
     public void coverage() {
         @SuppressWarnings("unused")
@@ -70,7 +70,7 @@ public class JU_Vars {
         assertEquals(str,Vars.convert(holder,bstr="set %s to %s", "a","b"));
         assertEquals("set a to b",holder.toString());
         assertEquals(str,Vars.convert(null,bstr, "a","b"));
-        
+
         holder.setLength(0);
         assertEquals(str = "%1=%2",Vars.convert(holder,str, "a","b"));
         assertEquals("a=b",holder.toString());
@@ -79,7 +79,7 @@ public class JU_Vars {
         assertEquals(str,Vars.convert(holder,bstr="%s=%s", "a","b"));
         assertEquals("a=b",holder.toString());
         assertEquals(str,Vars.convert(null,bstr, "a","b"));
-        
+
         holder.setLength(0);
         assertEquals(str = "%1%2",Vars.convert(holder,str, "a","b"));
         assertEquals("ab",holder.toString());
@@ -107,7 +107,7 @@ public class JU_Vars {
         assertEquals(str=" %1%2%3 ",Vars.convert(holder,bstr = " %s%s%s ", "a","b","c","d","e","f","g","h","i","j"));
         assertEquals(" abc ",holder.toString());
         assertEquals(str,Vars.convert(null,bstr, "a","b","c","d","e","f","g","h","i","j"));
-        
+
 
         holder.setLength(0);
         assertEquals(str = "set %1 to %2",Vars.convert(holder,str, "Something much","larger"));
@@ -122,8 +122,8 @@ public class JU_Vars {
         assertEquals(str = "Text without Vars",Vars.convert(holder,str));
         assertEquals(str,holder.toString());
         assertEquals(str = "Text without Vars",Vars.convert(null,str));
-    
-        
+
+
         holder.setLength(0);
         assertEquals(str = "Not %1 Enough %2 Vars %3",Vars.convert(holder,str, "a","b"));
         assertEquals("Not a Enough b Vars ",holder.toString());
@@ -143,7 +143,7 @@ public class JU_Vars {
         str = "%1 !@#$%^*()-+?/,:;.";
         assertEquals(str,Vars.convert(holder,bstr, "Not Acceptable"));
         assertEquals("Not Acceptable !@#$%^*()-+?/,:;.",holder.toString());
-        assertEquals(str ,Vars.convert(null,bstr, "Not Acceptable"));    
+        assertEquals(str ,Vars.convert(null,bstr, "Not Acceptable"));
     }
-    
+
 }
index 5f88040..b9bd126 100644 (file)
@@ -7,9 +7,9 @@
 * * 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.
@@ -37,9 +37,9 @@ public class JU_WSSEParser {
 //            private String user;
 //            private byte[] password;
 //
-//            public void setUser(String user) { this.user = user; } 
+//            public void setUser(String user) { this.user = user; }
 //            public void setCred(byte[] passwd) { this.password = passwd; }
-//            public String getUser() { return user; } 
+//            public String getUser() { return user; }
 //            public byte[] getCred() { return password; }
 //        };
 
@@ -58,7 +58,7 @@ public class JU_WSSEParser {
 //            System.out.println("CadiWrap credentials are: " + bc.getUser() + ", " + password);
 //            assertEquals("some_user", bc.getUser());
 //            assertEquals("some_password", password);
-//            
+//
 //        } finally {
 //            fis.close();
 //        }
@@ -78,7 +78,7 @@ public class JU_WSSEParser {
 //            System.out.println("CadiWrap credentials are: " + bc.getUser() + ", " + password);
 //            assertEquals("none", bc.getUser());
 //            assertEquals("none", password);
-//            
+//
 //        } finally {
 //            fis.close();
 //        }
@@ -121,8 +121,8 @@ public class JU_WSSEParser {
 //
 //        e = wp.parse(bc, new ByteArrayInputStream("".getBytes())); // empty
 //        assertNotNull(e);
-//        
-//        
+//
+//
 //        long start, count = 0L;
 //        int iter = 30000;
 //        File f = new File("test/CBUSevent.xml");
@@ -146,9 +146,9 @@ public class JU_WSSEParser {
 //        }
 //        float ms = count/1000000f;
 //        System.out.println("Executed " + iter + " WSSE reads from Memory Stream in " + ms + "ms.  " + ms/iter + "ms per trans");
-//        
+//
 //        // SPECIFIC ISSUES
-//        
+//
 //        fis = new FileInputStream("test/error2013_04_23.xml");
 //        try {
 //            bc.setCred(null);
index 248f73b..a88aecf 100644 (file)
@@ -7,9 +7,9 @@
  * * 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.
index 2a1ecde..6bdda4e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,7 +41,7 @@ public class ClientFactory {
             throw new CadiException(e);
         }
     }
-    
+
     public ClientFactory(String[] args) throws APIException, CadiException {
         this(new PropAccess(args));
     }
index 107e1d8..2b1003c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,7 +24,7 @@ import org.onap.aaf.cadi.client.Future;
 
 public class RESTException extends Exception {
     /**
-     * 
+     *
      */
     private static final long serialVersionUID = -5232371598208651058L;
     private Future<?> future;
@@ -32,11 +32,11 @@ public class RESTException extends Exception {
     public RESTException(Future<?> future) {
         this.future = future;
     }
-    
+
     public int getCode() {
         return future.code();
     }
-    
+
     public String getMsg() {
         return future.body();
     }
@@ -61,6 +61,6 @@ public class RESTException extends Exception {
     public String getLocalizedMessage() {
         return errorString();
     }
-    
+
 
 }
index c2deb45..3b7ab03 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,18 +56,18 @@ public class SimpleRESTClient {
         public String[] headers() {
             return EMPTY;
         }};
-    
+
     public SimpleRESTClient(final TokenClientFactory tcf, final String tokenURL, final String endpoint, final String[] scope) throws CadiException, LocatorException, APIException {
         callTimeout = Integer.parseInt(tcf.access.getProperty(Config.AAF_CALL_TIMEOUT,Config.AAF_CALL_TIMEOUT_DEF));
         tokenClient = tcf.newClient(tokenURL);
         Result<TimedToken> rtt = tokenClient.getToken(scope);
         if (rtt.isOK()) {
             restClient = tcf.newTzClient(endpoint);
-            
+
             if ((client_id = tcf.access.getProperty(Config.AAF_APPID, null))==null) {
                 if ((client_id = tcf.access.getProperty(Config.CADI_ALIAS, null))==null) {
                     throw new CadiException(Config.AAF_APPID + " or " + Config.CADI_ALIAS + " needs to be defined");
-                }                
+                }
             }
             try {
                 restClient.setToken(client_id,rtt.value);
@@ -78,7 +78,7 @@ public class SimpleRESTClient {
             throw new CadiException(rtt.error);
         }
     }
-    
+
     public SimpleRESTClient timeout(int newTimeout) {
         callTimeout = newTimeout;
         return this;
@@ -98,7 +98,7 @@ public class SimpleRESTClient {
         }
         return this;
     }
-    
+
     /**
      * Single Threaded Class for building up content
      * @author Instrumental
@@ -109,24 +109,24 @@ public class SimpleRESTClient {
 
         private String content;
         private StringBuilder sb;
-        
+
         public Input() {
             content = null;
             sb = null;
         }
-        
+
         public Input(final String content) {
             this.content = content;
         }
-        
+
         public void set(final String content) {
             this.content = content;
         }
-        
+
         public PrintWriter writer() {
             return new PrintWriter(new StringBuilderWriter(builder()));
         }
-        
+
         public StringBuilder builder() {
             if (sb==null) {
                 sb = new StringBuilder();
@@ -134,7 +134,7 @@ public class SimpleRESTClient {
             }
             return sb;
         }
-        
+
         /**
          * Reuse StringBuilder object
          */
@@ -144,7 +144,7 @@ public class SimpleRESTClient {
                 sb.setLength(0);
             }
         }
-        
+
         @Override
         public String toString() {
             if (content!=null) {
@@ -162,7 +162,7 @@ public class SimpleRESTClient {
                 if (sb==null) {
                     rv = EMPTY_STREAM_BYTES;
                 } else {
-                    rv = sb.toString().getBytes();    
+                    rv = sb.toString().getBytes();
                 }
             } else {
                 rv = content.getBytes();
@@ -173,7 +173,7 @@ public class SimpleRESTClient {
     }
 
     /////////////////////////////////////////////////////////////
-    //  
+    //
     // CREATE
     //
     /////////////////////////////////////////////////////////////
@@ -194,11 +194,11 @@ public class SimpleRESTClient {
         });
         if (!future.get(callTimeout)) {
             throw new RESTException(future);
-        }                    
+        }
     }
 
     /////////////////////////////////////////////////////////////
-    //  
+    //
     // READ
     //
     /////////////////////////////////////////////////////////////
@@ -221,11 +221,11 @@ public class SimpleRESTClient {
             return future.value;
         } else {
             throw new RESTException(future);
-        }                    
+        }
     }
-    
+
     /////////////////////////////////////////////////////////////
-    //  
+    //
     // UPDATE
     //
     /////////////////////////////////////////////////////////////
@@ -249,18 +249,18 @@ public class SimpleRESTClient {
             return future.value;
         } else {
             throw new RESTException(future);
-        }                    
+        }
     }
 
     /////////////////////////////////////////////////////////////
-    //  
+    //
     // DELETE
     //
     /////////////////////////////////////////////////////////////
     public void delete(final String path) throws RESTException, CadiException, LocatorException, APIException  {
         delete(path,APPLICATION_JSON);
     }
-        
+
     public void delete(final String path, final String contentType) throws RESTException, CadiException, LocatorException, APIException  {
         Future<Void> future = restClient.best(new Retryable<Future<Void>>() {
             @Override
@@ -270,17 +270,17 @@ public class SimpleRESTClient {
         });
         if (!future.get(callTimeout)) {
             throw new RESTException(future);
-        }                    
+        }
     }
 
     /////////////////////////////////////////////////////////////
-    
+
     private static class ETransfer implements EClient.Transfer {
         private Input input;
         public ETransfer(final Input input) {
             this.input = input;
         }
-        
+
         @Override
         public void transfer(OutputStream os) throws IOException, APIException {
             os.write(input.getBytes());
@@ -290,7 +290,7 @@ public class SimpleRESTClient {
     public interface Headers {
         String[] headers();
     }
-    
+
     public String[] headers() {
         if (chain==null) {
             return headers.headers();
index d0c800b..0dec099 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,14 +56,14 @@ public class OAuthExample {
 
     public final static void main(final String args[]) {
         // These Objects are expected to be Long-Lived... Construct once
-        
+
         // Property Access
-            // This method will allow you to set "cadi_prop_files" (or any other property) on Command line 
+            // This method will allow you to set "cadi_prop_files" (or any other property) on Command line
         access = new PropAccess(args);
-        
+
             // access = PropAccess();
             // Note: This style will load "cadi_prop_files" from VM Args
-        
+
         // Token aware Client Factory
         try {
             tcf = TokenClientFactory.instance(access);
@@ -71,8 +71,8 @@ public class OAuthExample {
             access.log(e1, "Unable to setup OAuth Client Factory, Fail Fast");
             System.exit(1);
         }
-        
-        
+
+
         // Obtain Endpoints for OAuth2 from Properties.  Expected is "cadi.properties" file, pointed to by "cadi_prop_files"
         try {
             Map<String, String> aaf_urls = Agent.loadURLs(access);
@@ -81,9 +81,9 @@ public class OAuthExample {
             String tokenIntrospectURL = access.getProperty(Config.AAF_OAUTH2_INTROSPECT_URL); // Default to AAF);
             // Get Hello Service
             final String endServicesURL = access.getProperty(Config.AAF_OAUTH2_HELLO_URL);
-    
+
             final int CALL_TIMEOUT = Integer.parseInt(access.getProperty(Config.AAF_CALL_TIMEOUT,Config.AAF_CALL_TIMEOUT_DEF));
-        
+
             //////////////////////////////////////////////////////////////////////
             // Scenario 1:
             // Get and use an OAuth Client, which understands Token Management
@@ -93,7 +93,7 @@ public class OAuthExample {
 
             TokenClient tc = tcf.newClient(tokenServiceURL); // can set your own timeout here (url, timeoutMilliseconds)
             // Set your Application (MicroService, whatever) Credentials here
-            //   These are how your Application is known, particularly to the OAuth Server. 
+            //   These are how your Application is known, particularly to the OAuth Server.
             //   If AAF Token server, then its just the same as your other AAF MechID creds
             //   If it is the Alternate OAUTH, you'll need THOSE credentials.  See that tool's Onboarding procedures.
             String client_id = access.getProperty(Config.AAF_APPID);
@@ -103,7 +103,7 @@ public class OAuthExample {
             }
             String client_secret = access.getProperty(Config.AAF_APPPASS);
             tc.client_creds(client_id, client_secret);
-            
+
             // If you are working with Credentials the End User, set username/password as appropriate to the OAuth Server
             // tc.password(end_user_id, end_user_password);
             // IMPORTANT:
@@ -114,7 +114,7 @@ public class OAuthExample {
             // With AAF, the Scopes you put in are the AAF Namespaces you want access to.  Your Token will contain the
             // AAF Permissions of the Namespaces (you can put in more than one), the user name (or client_id if no user_name),
             // is allowed to see.
-            
+
             // Here's a trick to get the namespace out of a Fully Qualified AAF Identity (your MechID)
             String ns = FQI.reverseDomain(client_id);
             System.out.printf("\nNote: The AAF Namespace of FQI (Fully Qualified Identity) %s is %s\n\n",client_id, ns);
@@ -122,23 +122,23 @@ public class OAuthExample {
             // Now, we can get a Token.  Note: for "scope", use AAF Namespaces to get AAF Permissions embedded in
             // Note: getToken checks if Token is expired, if so, then refreshes before handing back.
             Result<TimedToken> rtt = tc.getToken(ns,"org.onap.test");
-            
+
             // Note: you can clear a Token's Disk/Memory presence by
             //  1) removing the Token from the "token/outgoing" directory on the O/S
             //  2) programmatically by calling "clearToken" with exact params as "getToken", when it has the same credentials set
             //       tc.clearToken("org.onap.aaf","org.onap.test");
-            
+
             // Result Object can be queried for success
             if (rtt.isOK()) {
                 TimedToken token = rtt.value;
                 print(token); // Take a look at what's in a Token
-                
+
                 // Use this Token in your client calls with "Tokenized Client" (TzClient)
                 // These should NOT be used cross thread.
                 TzClient helloClient = tcf.newTzClient(endServicesURL);
                 helloClient.setToken(client_id, token);
-                
-                // This client call style, "best" call with "Retryable" inner class covers finding an available Service 
+
+                // This client call style, "best" call with "Retryable" inner class covers finding an available Service
                 // (when Multi-services exist) for the best service, based (currently) on distance.
                 //
                 // the "Generic" in Type gives a Return Value for the Code, which you can set on the "best" method
@@ -149,20 +149,20 @@ public class OAuthExample {
                         Future<String> future = client.read("hello","text/plain");
                         // The "future" calling method allows you to do other processing, such as call more than one backend
                         // client before picking up the result
-                        // If "get" matches the HTTP Code for the method (i.e. read HTTP Return value is 200), then 
+                        // If "get" matches the HTTP Code for the method (i.e. read HTTP Return value is 200), then
                         if (future.get(CALL_TIMEOUT)) {
                             // Client Returned expected value
                             return future.value;
                         } else {
                             throw new APIException(future.code()  + future.body());
-                        }                    
+                        }
                     }
                 });
-                
+
                 // You want to do something with returned value.  Here, we say "hello"
                 System.out.printf("\nPositive Response from Hello: %s\n",rv);
-                
-                
+
+
                 //////////////////////////////////////////////////////////////////////
                 // Scenario 2:
                 // As a Service, read Introspection information as proof of Authenticated Authorization
@@ -187,12 +187,12 @@ public class OAuthExample {
             } else {
                 access.printf(Level.ERROR, "Unable to obtain OAuth Token: %d %s\n",rtt.code,rtt.error);
             }
-            
+
         } catch (CadiException | LocatorException | APIException | IOException e) {
             e.printStackTrace();
         }
     }
-    
+
     /////////////////////////////////////////////////////////////
     // Examples of Object Access
     /////////////////////////////////////////////////////////////
@@ -207,7 +207,7 @@ public class OAuthExample {
         t.getScope(),
         t.getRefreshToken());
     }
-    
+
     private static void print(Introspect ti) {
         if (ti==null || ti.getClientId()==null) {
             System.out.println("Empty Introspect");
@@ -232,7 +232,7 @@ public class OAuthExample {
         Chrono.timeStamp(exp),
         ti.getScope(),
         ti.getContent()==null?"":ti.getContent());
-        
+
         System.out.println();
     }
 
index b8cce9e..2d489f8 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,25 +56,25 @@ public class OnapClientExample {
 
     public final static void main(final String args[]) {
         // These Objects are expected to be Long-Lived... Construct once
-        
+
         // Property Access
-        // This method will allow you to set "cadi_prop_files" (or any other property) on Command line 
+        // This method will allow you to set "cadi_prop_files" (or any other property) on Command line
         access = new PropAccess(args);
         // Note: This style will load "cadi_prop_files" from VM Args
         // access = PropAccess();
         try {
             Map<String, String> aaf_urls = Agent.loadURLs(access);
             Agent.fillMissing(access, aaf_urls);
-        
+
             // Token aware Client Factory
             tcf = TokenClientFactory.instance(access);
         } catch (APIException | GeneralSecurityException | IOException | CadiException e1) {
             access.log(e1, "Unable to setup OAuth Client Factory, Fail Fast");
             System.exit(1);
         }
-        
+
         final int CALL_TIMEOUT = Integer.parseInt(access.getProperty(Config.AAF_CALL_TIMEOUT,Config.AAF_CALL_TIMEOUT_DEF));
-        
+
         try {
             //////////////////////////////////////////////////////////////////////
             // Scenario 1:
@@ -84,7 +84,7 @@ public class OnapClientExample {
             //   In this example, it is AAF, but it can be the Alternate OAuth
 
             TokenClient tc = tcf.newClient(Config.AAF_OAUTH2_TOKEN_URL); // can set your own timeout here (url, timeoutMilliseconds)
-            
+
             // Here's a trick to get the namespace out of a Fully Qualified AAF Identity (your MechID)
             String ns = FQI.reverseDomain(tc.client_id());
             System.out.printf("\nNote: The AAF Namespace of FQI (Fully Qualified Identity) %s is %s\n\n",tc.client_id(), ns);
@@ -92,17 +92,17 @@ public class OnapClientExample {
             // Now, we can get a Token.  Note: for "scope", use AAF Namespaces to get AAF Permissions embedded in
             // Note: getToken checks if Token is expired, if so, then refreshes before handing back.
             Result<TimedToken> rtt = tc.getToken(ns,"org.onap.test"); // get multiple scopes
-            
+
             // Note: you can clear a Token's Disk/Memory presence by
             //  1) removing the Token from the "token/outgoing" directory on the O/S
             //  2) programmatically by calling "clearToken" with exact params as "getToken", when it has the same credentials set
             //       tc.clearToken("org.onap.aaf","org.onap.test");
-            
+
             // Result Object can be queried for success
             if (rtt.isOK()) {
                 TimedToken token = rtt.value;
                 print(token); // Take a look at what's in a Token
-                
+
                 // Use this Token in your client calls with "Tokenized Client" (TzClient)
                 // These should NOT be used cross thread.
                 // Get Hello Service URL... roll your own in your own world.
@@ -111,8 +111,8 @@ public class OnapClientExample {
 
                 TzClient helloClient = tcf.newTzClient(endServicesURL);
                 helloClient.setToken(tc.client_id(), token);
-                
-                // This client call style, "best" call with "Retryable" inner class covers finding an available Service 
+
+                // This client call style, "best" call with "Retryable" inner class covers finding an available Service
                 // (when Multi-services exist) for the best service, based (currently) on distance.
                 //
                 // the "Generic" in Type gives a Return Value for the Code, which you can set on the "best" method
@@ -123,20 +123,20 @@ public class OnapClientExample {
                         Future<String> future = client.read("hello","text/plain");
                         // The "future" calling method allows you to do other processing, such as call more than one backend
                         // client before picking up the result
-                        // If "get" matches the HTTP Code for the method (i.e. read HTTP Return value is 200), then 
+                        // If "get" matches the HTTP Code for the method (i.e. read HTTP Return value is 200), then
                         if (future.get(CALL_TIMEOUT)) {
                             // Client Returned expected value
                             return future.value;
                         } else {
                             throw new APIException(future.code()  + future.body());
-                        }                    
+                        }
                     }
                 });
-                
+
                 // You want to do something with returned value.  Here, we say "hello"
                 System.out.printf("\nPositive Response from Hello: %s\n",rv);
-                
-                
+
+
                 //////////////////////////////////////////////////////////////////////
                 // Scenario 2:
                 // As a Service, read Introspection information as proof of Authenticated Authorization
@@ -160,12 +160,12 @@ public class OnapClientExample {
             } else {
                 access.printf(Level.ERROR, "Unable to obtain OAuth Token: %d %s\n",rtt.code,rtt.error);
             }
-            
+
         } catch (CadiException | LocatorException | APIException | IOException e) {
             e.printStackTrace();
         }
     }
-    
+
     /////////////////////////////////////////////////////////////
     // Examples of Object Access
     /////////////////////////////////////////////////////////////
@@ -180,7 +180,7 @@ public class OnapClientExample {
         t.getScope(),
         t.getRefreshToken());
     }
-    
+
     private static void print(Introspect ti) {
         if (ti==null || ti.getClientId()==null) {
             System.out.println("Empty Introspect");
@@ -205,7 +205,7 @@ public class OnapClientExample {
         Chrono.timeStamp(exp),
         ti.getScope(),
         ti.getContent()==null?"":ti.getContent());
-        
+
         System.out.println();
     }
 
index dc1824f..c15e434 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,29 +39,29 @@ public class SimpleRestClientExample {
         try {
             // Note: Expect ClientFactory to be long-lived... do NOT create more than once.
             ClientFactory cf = new ClientFactory(args);
-            
-    
+
+
             String urlString = cf.getAccess().getProperty("myurl", null);
             if (urlString==null) {
                 System.out.println("Note: In your startup, add \"myurl=https://<aaf hello machine>:8130\" to command line\n\t"
-                        + "OR\n\t" 
+                        + "OR\n\t"
                         + " add -Dmyurl=https://<aaf hello machine>:8130 to VM Args\n\t"
                         + "where \"aaf hello machine\" is an aaf Installation you know about.");
             } else {
-                
+
                 SimpleRESTClient restClient = cf.simpleRESTClient(urlString,"org.osaaf.aaf");
 
                 /////////////////////////////////////////////////////////////
-                //  
+                //
                 // Creating Content for CREATE/UPDATE
                 //
                 /////////////////////////////////////////////////////////////
                 // Create an object that can be reusable IN THIS THREAD ONLY... Not Thread-safe on purpose
                 Input input = new SimpleRESTClient.Input();
-                
+
                 // Note: alternate use is to set the input object to an already created String
                 // Input input = new SimpleRESTClient.Input(aString);
-                
+
                 PrintWriter pw = input.writer();
                 pw.print("{\"something\": [");
                 for (int i=0;i<4;++i) {
@@ -73,16 +73,16 @@ public class SimpleRestClientExample {
                     pw.print('}');
                 }
                 pw.println("]}");
-                
+
                 // You can check or log the content
                 String content = input.toString();
                 System.out.println(content);
-                
-                // Good form for Writers is that you should close it... 
+
+                // Good form for Writers is that you should close it...
                 pw.close();
 
                 /////////////////////////////////////////////////////////////
-                //  
+                //
                 // CREATE/POST
                 //
                 /////////////////////////////////////////////////////////////
@@ -100,7 +100,7 @@ public class SimpleRestClientExample {
 
 
                 /////////////////////////////////////////////////////////////
-                //  
+                //
                 // READ/GET
                 //
                 /////////////////////////////////////////////////////////////
@@ -110,24 +110,24 @@ public class SimpleRestClientExample {
                 System.out.println("-------- START REST READ/GET --------");
                 boolean expectException = false;
                 try {
-                    
+
                     // Call with no Queries
                     String rv = restClient.get("resthello/rest_id");
                     System.out.println(rv);
-                    
+
                     // Same call with "read" style
                     rv = restClient.read("resthello/rest_id");
                     System.out.println(rv);
-                    
-                    
+
+
                     // Call with Queries
                     rv = restClient.get("resthello/rest_id?perm=org.osaaf.people|*|read");
                     System.out.println(rv);
-                    
+
                     // Call setting ID from principal coming from Trans
                     // Pretend Transaction
                     HRequest req = new HRequest("demo@people.osaaf.org"); // Pretend Trans has Jonathan as Identity
-                    
+
                     // Call with RESTException, which allows obtaining HTTPCode and any Error message sent
                     rv = restClient.endUser(req.userPrincipal()).get("resthello/rest_id?perm=org.osaaf.people|*|read");
                     System.out.println(rv);
@@ -150,17 +150,17 @@ public class SimpleRestClientExample {
                 }
 
                 /////////////////////////////////////////////////////////////
-                //  
+                //
                 // UPDATE/PUT
                 //
                 /////////////////////////////////////////////////////////////
 
-                
+
                 // If you use "input" object again as a writer, you can clear it on the same thread, and go again
                 input.clear();
                 // Here we just set to a String, instead of Writing
                 input.set("{\"something\" : []}");
-                
+
                 System.out.println("-------- END REST UPDATE/PUT --------");
                 try {
                     String rv = restClient.update("resthello/rest_id", input);
@@ -175,7 +175,7 @@ public class SimpleRestClientExample {
                 }
 
                 /////////////////////////////////////////////////////////////
-                //  
+                //
                 // DELETE
                 //
                 /////////////////////////////////////////////////////////////
@@ -191,14 +191,14 @@ public class SimpleRestClientExample {
                 } finally {
                     System.out.println("-------- END REST DELETE --------");
                 }
-            }            
+            }
         } catch (CadiException | APIException e) {
             e.printStackTrace();
         }
     }
-    
-    private static class HRequest { 
-        
+
+    private static class HRequest {
+
         public HRequest(String fqi) {
             name = fqi;
         }
@@ -212,7 +212,7 @@ public class SimpleRestClientExample {
                 public String getName() {
                     return name;
                 }
-                
+
             };
         }
     }
index adb95d9..8c3a133 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,15 +40,15 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
 //    @RolesAllowed({"com.att.aaf.myPerm|myInstance|myAction"})
     public class MyServlet implements Servlet {
         private ServletConfig servletConfig;
-    
+
         public void init(ServletConfig config) throws ServletException {
             servletConfig = config;
         }
-    
+
         public ServletConfig getServletConfig() {
             return servletConfig;
         }
-    
+
         public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
             HttpServletRequest request;
             try {
@@ -56,27 +56,27 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
             } catch (ClassCastException e) {
                 throw new ServletException("Only serving HTTP today",e);
             }
-            
+
             res.getOutputStream().println("<html><header><title>CSP Servlet Test</title></header><body><h1>You're good to go!</h1><pre>" +
                     request.getUserPrincipal());
-            
+
             String perm = request.getParameter("PERM");
             if (perm!=null) {
                 if (request.isUserInRole(perm)) {
-                    if (perm.indexOf('|')<0) { 
+                    if (perm.indexOf('|')<0) {
                         res.getOutputStream().println("\nCongrats!, You are in Role " + perm);
-                    } else { 
+                    } else {
                         res.getOutputStream().println("\nCongrats!, You have Permission " + perm);
                     }
                 } else {
-                    if (perm.indexOf('|')<0) { 
+                    if (perm.indexOf('|')<0) {
                         res.getOutputStream().println("\nSorry, you are NOT in Role " + perm);
                     } else {
                         res.getOutputStream().println("\nSorry, you do NOT have Permission " + perm);
                     }
                 }
             }
-            
+
             // You can get the working AAFCon from Trans
             AAFCon<?> aafcon = AAFCon.obtain(req);
             if (aafcon!=null) {
@@ -115,13 +115,13 @@ import org.onap.aaf.cadi.principal.TaggedPrincipal;
                 res.getOutputStream().println("No AAFCon instantiated");
             }
             res.getOutputStream().print("</pre></body></html>");
-            
+
         }
-    
+
         public String getServletInfo() {
             return "MyServlet";
         }
-    
+
         public void destroy() {
         }
     }
\ No newline at end of file
index a45725d..9f1c450 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,13 +33,13 @@ import org.onap.aaf.cadi.filter.CadiFilter;
 public class Config {
     /**
      * Method to make jetty configurations (others?) with more complex function possible
-     * 
+     *
      * @param sc
      */
     public static final void addToContext(WebAppContext sc, String propFile) {
         sc.addFilter(CadiFilter.class,"/*",EnumSet.of(DispatcherType.REQUEST));
         sc.setInitParameter(org.onap.aaf.cadi.config.Config.CADI_PROP_FILES, propFile);
     }
-    
+
 
 }
index 165acff..4800e13 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,7 +43,7 @@ import org.onap.aaf.cadi.config.SecurityInfo;
 import org.onap.aaf.cadi.filter.CadiFilter;
 
 public abstract class JettyServletServer implements Servlet {
-    
+
     public static Server run(PropAccess access, String context, Class<? extends Servlet> servletCls, int port, String ...args) throws Exception {
         // Defaults:
         int blockingQueueSize = 10;
@@ -54,12 +54,12 @@ public abstract class JettyServletServer implements Servlet {
         if (hostname==null) {
             hostname = Inet4Address.getLocalHost().getHostName();
         }
-        
+
         // Add your own Properties to override defaults
 
         ArrayBlockingQueue<Runnable> queue = new ArrayBlockingQueue<Runnable>(blockingQueueSize);
         QueuedThreadPool pool = new QueuedThreadPool(maxPoolSize,corePoolSize,keepAliveTime,queue);
-        Server server = new Server(pool);            
+        Server server = new Server(pool);
 
         String protocol;
         if (access.getProperty(Config.CADI_KEYSTORE_PASSWORD,null)==null) {
@@ -74,26 +74,26 @@ public abstract class JettyServletServer implements Servlet {
             SslContextFactory scf = new SslContextFactory();
             scf.setSslContext(securityInfo.getSSLContext());
             scf.setWantClientAuth(true);
-            ServerConnector sslConnector = new ServerConnector(server,scf); 
+            ServerConnector sslConnector = new ServerConnector(server,scf);
             sslConnector.setHost(hostname);
             sslConnector.setPort(port);
             server.addConnector(sslConnector);
             protocol = "https";
         }
-        
+
         // Setup Sample Servlet
         CadiFilter cf = new CadiFilter(true,access);
         FilterHolder cfh = new FilterHolder(cf);
-        
+
         ServletHandler shand = new ServletHandler();
         shand.addFilterWithMapping(cfh, "/*", FilterMapping.ALL);
         // To use normal Servlets, just add the class here... Actually, bug in Jetty... need to add with ServletHolder
         ServletHolder sh = new ServletHolder();
         sh.setServlet(servletCls.newInstance());
         shand.addServletWithMapping(sh,"/*");
-        
+
         // To use JASPI Authorization Style to protect the servlet, wrap the Servlet
-        // with the "MiniJSAPIWrap class, as shown here.  Then add "@RolesAllowed" on your 
+        // with the "MiniJSAPIWrap class, as shown here.  Then add "@RolesAllowed" on your
         // servlet (see sample).  Use Pipe delimited Permissions, not AAF Roles in the line
         // shand.addServletWithMapping(new MiniJASPIWrap(MyServlet.class),"/*");
         // call initialize after start
@@ -104,7 +104,7 @@ public abstract class JettyServletServer implements Servlet {
         // Startup the Server
         server.setStopAtShutdown(true);
         server.start();
-   
+
         access.log(Level.INFO,"TestServlet is running at " + protocol + "://"+hostname+':'+port+context);
         return server;
     }
index 6edd6f5..81b8f20 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,7 +40,7 @@ public class JettyStandalone {
         } finally {
             access.log(Level.INFO,"Stopping Service");
         }
-        
-    }    
+
+    }
 
 }
index 4d170f3..2d34fa4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,11 +39,11 @@ import org.onap.aaf.cadi.filter.RolesAllowed;
 
 /**
  * MiniJASPIWrap
- * 
+ *
  * Support the ability to check JASPI Annotation Style Authorizations.
- * 
+ *
  * This can be a clean way to enforce API Authorization without mistakes in code.
- * 
+ *
  * @author JonathanGathman
  *
  */
@@ -67,9 +67,9 @@ public class MiniJASPIWrap extends ServletHolder {
 
     /**
      * handle
-     * 
+     *
      * When utilized, this class authorizes the transaction by first calling the standard J2EE API call
-     * "isUserInRole" with the role(s) found in the class Annotations (JASPI Style) 
+     * "isUserInRole" with the role(s) found in the class Annotations (JASPI Style)
      */
     @Override
     public void handle(Request baseRequest, ServletRequest request,    ServletResponse response) throws ServletException,    UnavailableException, IOException {
@@ -77,7 +77,7 @@ public class MiniJASPIWrap extends ServletHolder {
             super.handle(baseRequest, request, response);
         } else { // Validate
             try {
-                
+
                 HttpServletRequest hreq = (HttpServletRequest)request;
                 boolean proceed = false;
                 for (String role : rolesAllowed.value()) {
@@ -95,7 +95,7 @@ public class MiniJASPIWrap extends ServletHolder {
             } catch (ClassCastException e) {
                 throw new ServletException("JASPIWrap only supports HTTPServletRequest/HttpServletResponse");
             }
-        }        
+        }
     }
 
 }
index ed91732..09125a8 100644 (file)
@@ -27,6 +27,9 @@ An important change, however, is that the AAF Locator requires internal K8s Apps
 **Bug Fixes**
        - `AAF-859 <https://jira.onap.org/browse/AAF-859>`_ Images hardcoded in AAF helm deployment yamls
 
+**Known Issues - solve in Frankfurt**
+        - `AAF-962 <https://jira.onap.org/browse/AAF-962>`_ AAF Certs could not generate...
+
 Version: 2.1.13 (Dublin, 4.0.0-ONAP)
 ---------------------------------------
 
index f5de5d7..e6c95db 100644 (file)
@@ -38,7 +38,13 @@ import javax.xml.datatype.XMLGregorianCalendar;
 public class Chrono {\r
     private static final long NUM_100NS_INTERVALS_SINCE_UUID_EPOCH = 0x01b21dd213814000L;\r
 \r
-    public final static DateFormat dateFmt, dateOnlyFmt, niceDateFmt, utcFmt, niceUTCDateFmt, iso8601Fmt;\r
+    public final static DateFormat dateFmt;\r
+    public final static DateFormat dateOnlyFmt;\r
+    public final static DateFormat niceDateFmt;\r
+    public final static DateFormat utcFmt;\r
+    public final static DateFormat niceUTCDateFmt;\r
+    public final static DateFormat iso8601Fmt;\r
+    public final static DateFormat batchFmt;\r
     // Give general access to XML DataType Factory, since it's pretty common\r
     public static final DatatypeFactory xmlDatatypeFactory;\r
     \r
@@ -56,6 +62,7 @@ public class Chrono {
         niceUTCDateFmt = new SimpleDateFormat("yyyy/MM/dd HH:mm zzz");\r
         niceUTCDateFmt.setTimeZone(TimeZone.getTimeZone("UTC"));\r
         iso8601Fmt =  new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX");\r
+        batchFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss+SSSS");\r
     }\r
     \r
 \r
index 688e11b..d9cda92 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
  *
  */
 //
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2018.12.09 at 10:14:23 PM IST 
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2018.12.09 at 10:14:23 PM IST
 //
 
 
@@ -39,9 +39,9 @@ import javax.xml.bind.annotation.XmlType;
 
 /**
  * <p>Java class for anonymous complex type.
- * 
+ *
  * <p>The following schema fragment specifies the expected content contained within this class.
- * 
+ *
  * <pre>
  * &lt;complexType>
  *   &lt;complexContent>
@@ -70,8 +70,8 @@ import javax.xml.bind.annotation.XmlType;
  *   &lt;/complexContent>
  * &lt;/complexType>
  * </pre>
- * 
- * 
+ *
+ *
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "", propOrder = {
@@ -84,25 +84,25 @@ public class Api {
 
     /**
      * Gets the value of the route property.
-     * 
-     * <p>
+     *
+     *
      * This accessor method returns a reference to the live list,
      * not a snapshot. Therefore any modification you make to the
      * returned list will be present inside the JAXB object.
      * This is why there is not a <CODE>set</CODE> method for the route property.
-     * 
-     * <p>
+     *
+     *
      * For example, to add a new item, do as follows:
      * <pre>
      *    getRoute().add(newItem);
      * </pre>
-     * 
-     * 
-     * <p>
+     *
+     *
+     *
      * Objects of the following type(s) are allowed in the list
      * {@link Api.Route }
-     * 
-     * 
+     *
+     *
      */
     public List<Api.Route> getRoute() {
         if (route == null) {
@@ -114,9 +114,9 @@ public class Api {
 
     /**
      * <p>Java class for anonymous complex type.
-     * 
+     *
      * <p>The following schema fragment specifies the expected content contained within this class.
-     * 
+     *
      * <pre>
      * &lt;complexType>
      *   &lt;complexContent>
@@ -135,8 +135,8 @@ public class Api {
      *   &lt;/complexContent>
      * &lt;/complexType>
      * </pre>
-     * 
-     * 
+     *
+     *
      */
     @XmlAccessorType(XmlAccessType.FIELD)
     @XmlType(name = "", propOrder = {
@@ -166,11 +166,11 @@ public class Api {
 
         /**
          * Gets the value of the meth property.
-         * 
+         *
          * @return
          *     possible object is
          *     {@link String }
-         *     
+         *
          */
         public String getMeth() {
             return meth;
@@ -178,11 +178,11 @@ public class Api {
 
         /**
          * Sets the value of the meth property.
-         * 
+         *
          * @param value
          *     allowed object is
          *     {@link String }
-         *     
+         *
          */
         public void setMeth(String value) {
             this.meth = value;
@@ -190,11 +190,11 @@ public class Api {
 
         /**
          * Gets the value of the path property.
-         * 
+         *
          * @return
          *     possible object is
          *     {@link String }
-         *     
+         *
          */
         public String getPath() {
             return path;
@@ -202,11 +202,11 @@ public class Api {
 
         /**
          * Sets the value of the path property.
-         * 
+         *
          * @param value
          *     allowed object is
          *     {@link String }
-         *     
+         *
          */
         public void setPath(String value) {
             this.path = value;
@@ -214,25 +214,25 @@ public class Api {
 
         /**
          * Gets the value of the param property.
-         * 
-         * <p>
+         *
+         *
          * This accessor method returns a reference to the live list,
          * not a snapshot. Therefore any modification you make to the
          * returned list will be present inside the JAXB object.
          * This is why there is not a <CODE>set</CODE> method for the param property.
-         * 
-         * <p>
+         *
+         *
          * For example, to add a new item, do as follows:
          * <pre>
          *    getParam().add(newItem);
          * </pre>
-         * 
-         * 
-         * <p>
+         *
+         *
+         *
          * Objects of the following type(s) are allowed in the list
          * {@link String }
-         * 
-         * 
+         *
+         *
          */
         public List<String> getParam() {
             if (param == null) {
@@ -243,11 +243,11 @@ public class Api {
 
         /**
          * Gets the value of the desc property.
-         * 
+         *
          * @return
          *     possible object is
          *     {@link String }
-         *     
+         *
          */
         public String getDesc() {
             return desc;
@@ -255,11 +255,11 @@ public class Api {
 
         /**
          * Sets the value of the desc property.
-         * 
+         *
          * @param value
          *     allowed object is
          *     {@link String }
-         *     
+         *
          */
         public void setDesc(String value) {
             this.desc = value;
@@ -267,25 +267,25 @@ public class Api {
 
         /**
          * Gets the value of the comments property.
-         * 
-         * <p>
+         *
+         *
          * This accessor method returns a reference to the live list,
          * not a snapshot. Therefore any modification you make to the
          * returned list will be present inside the JAXB object.
          * This is why there is not a <CODE>set</CODE> method for the comments property.
-         * 
-         * <p>
+         *
+         *
          * For example, to add a new item, do as follows:
          * <pre>
          *    getComments().add(newItem);
          * </pre>
-         * 
-         * 
-         * <p>
+         *
+         *
+         *
          * Objects of the following type(s) are allowed in the list
          * {@link String }
-         * 
-         * 
+         *
+         *
          */
         public List<String> getComments() {
             if (comments == null) {
@@ -296,25 +296,25 @@ public class Api {
 
         /**
          * Gets the value of the contentType property.
-         * 
-         * <p>
+         *
+         *
          * This accessor method returns a reference to the live list,
          * not a snapshot. Therefore any modification you make to the
          * returned list will be present inside the JAXB object.
          * This is why there is not a <CODE>set</CODE> method for the contentType property.
-         * 
-         * <p>
+         *
+         *
          * For example, to add a new item, do as follows:
          * <pre>
          *    getContentType().add(newItem);
          * </pre>
-         * 
-         * 
-         * <p>
+         *
+         *
+         *
          * Objects of the following type(s) are allowed in the list
          * {@link String }
-         * 
-         * 
+         *
+         *
          */
         public List<String> getContentType() {
             if (contentType == null) {
@@ -325,7 +325,7 @@ public class Api {
 
         /**
          * Gets the value of the expected property.
-         * 
+         *
          */
         public int getExpected() {
             return expected;
@@ -333,7 +333,7 @@ public class Api {
 
         /**
          * Sets the value of the expected property.
-         * 
+         *
          */
         public void setExpected(int value) {
             this.expected = value;
@@ -341,25 +341,25 @@ public class Api {
 
         /**
          * Gets the value of the explicitErr property.
-         * 
-         * <p>
+         *
+         *
          * This accessor method returns a reference to the live list,
          * not a snapshot. Therefore any modification you make to the
          * returned list will be present inside the JAXB object.
          * This is why there is not a <CODE>set</CODE> method for the explicitErr property.
-         * 
-         * <p>
+         *
+         *
          * For example, to add a new item, do as follows:
          * <pre>
          *    getExplicitErr().add(newItem);
          * </pre>
-         * 
-         * 
-         * <p>
+         *
+         *
+         *
          * Objects of the following type(s) are allowed in the list
          * {@link Integer }
-         * 
-         * 
+         *
+         *
          */
         public List<Integer> getExplicitErr() {
             if (explicitErr == null) {
index 15049dc..e7ae3a3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,7 +34,7 @@ public class JU_BaseDataFactory {
     public void setUp() throws Exception {
         initMocks(this);
     }
-    
+
     @Test
     public void testGenSchemaException() {
         Store env = Mockito.mock(Store.class);
@@ -45,7 +45,7 @@ public class JU_BaseDataFactory {
             assertTrue(e.getLocalizedMessage().contains("does not exist.  You can set this with"));
         }
     }
-    
+
     @Test
     public void testGenSchemaXsdException() {
         Store env = Mockito.mock(Store.class);
@@ -57,7 +57,7 @@ public class JU_BaseDataFactory {
             assertTrue(e.getLocalizedMessage().contains("for schema validation"));
         }
     }
-    
+
     @Test
     public void testGenSchemaNoException() {
         Store env = Mockito.mock(Store.class);
@@ -69,7 +69,7 @@ public class JU_BaseDataFactory {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testGetQName() {
         String[] schemaFIles = new String[] {"../../auth-client/src/main/xsd/aaf_2_0.xsd"};
index a3063f7..a1c684f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,7 +50,7 @@ public class JU_JavaUtilLogTarget {
     public void testLoggable() {
         JavaUtilLogTarget logObj = new JavaUtilLogTarget( log, level);
         boolean retVal = logObj.isLoggable();
-        
+
         assertFalse(retVal);
     }
 
@@ -61,22 +61,22 @@ public class JU_JavaUtilLogTarget {
         logObj.log(new Object[] {"test","test2",""});
         Mockito.doReturn(true).when(log).isLoggable(level);
         logObj.log(new Object[] {"test","test2",""});
-        
+
     }
-    
+
     @Test
     public void testLogThrowable() {
         JavaUtilLogTarget logObj = new JavaUtilLogTarget( log, level);
-        
+
         Mockito.doReturn(true).when(log).isLoggable(level);
         logObj.log(new Throwable("test exception"), new Object[] {"test","test2",""});
         logObj.log(new Throwable(), new Object[] {"test","test2",""});
     }
-    
+
     @Test
     public void testPrintf() {
         JavaUtilLogTarget logObj = new JavaUtilLogTarget( log, level);
-        
+
         Mockito.doReturn(true).when(log).isLoggable(level);
         logObj.printf("test", new Object[] {"test","test2",""});
 
index ed75f4c..1d0b29d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -36,8 +36,8 @@ public class JU_NullLifeCycle {
             lifeCycleObj.threadPrestart(null);
             lifeCycleObj.refresh(null);
         }catch(APIException a) {
-            
+
         }
     }
-   
+
 }
\ No newline at end of file
index e1e7d0e..df54f0e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,25 +41,25 @@ public class JU_AbsTrans {
 
     @Mock
     Env delegate;
-    
+
     @Mock
     BasicEnv delegate1;
-    
+
     @Mock
     LogTarget lt;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
     }
-    
+
     class AbsTransImpl extends AbsTrans{
 
         public AbsTransImpl(Env delegate) {
             super(delegate);
             // TODO Auto-generated constructor stub
         }
-        
+
         public AbsTransImpl(BasicEnv delegate) {
             super(delegate);
             // TODO Auto-generated constructor stub
@@ -111,17 +111,17 @@ public class JU_AbsTrans {
         protected TimeTaken newTimeTaken(String name, int flag, Object ... values) {
             // TODO Auto-generated method stub
             return new TimeTaken("nameTest", Env.XML) {
-                
+
                 @Override
                 public void output(StringBuilder sb) {
                     // TODO Auto-generated method stub
-                    
+
                 }
             };
         }
-        
+
     }
-    
+
     @Test
     public void testFatal() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -129,7 +129,7 @@ public class JU_AbsTrans {
         LogTarget lt = absTransObj.fatal();
         assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testError() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -137,7 +137,7 @@ public class JU_AbsTrans {
         LogTarget lt = absTransObj.error();
         assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testAudit() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -145,7 +145,7 @@ public class JU_AbsTrans {
         LogTarget lt = absTransObj.audit();
         assertTrue(lt instanceof LogTarget);
     }
-   
+
     @Test
     public void testInit() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -153,7 +153,7 @@ public class JU_AbsTrans {
         LogTarget lt = absTransObj.init();
         assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testWarn() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -161,7 +161,7 @@ public class JU_AbsTrans {
         LogTarget lt = absTransObj.warn();
         assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testInfo() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -169,7 +169,7 @@ public class JU_AbsTrans {
         LogTarget lt = absTransObj.info();
         assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testDebug() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -177,7 +177,7 @@ public class JU_AbsTrans {
         LogTarget lt = absTransObj.debug();
         assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testTrace() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -185,28 +185,28 @@ public class JU_AbsTrans {
         LogTarget lt = absTransObj.trace();
         assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testStart() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
         TimeTaken lt = absTransObj.start("test",1);
         assertEquals("nameTest", lt.name);
     }
-    
+
     @Test
     public void testCheckpint() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
         absTransObj.checkpoint("test");
         assertEquals("nameTest", ((TimeTaken)absTransObj.trail.get(0)).name);
     }
-    
+
     @Test
     public void testCheckpintAddFlag() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
         absTransObj.checkpoint("test",1);
         assertEquals("nameTest", ((TimeTaken)absTransObj.trail.get(0)).name);
     }
-    
+
     @Test
     public void testAuditTrailWithEmptyTrail() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -215,7 +215,7 @@ public class JU_AbsTrans {
         absTransObj.auditTrail(1, new StringBuilder(), 1);
         //assertEquals("nameTest", ((TimeTaken)absTransObj.trail.get(0)).name);
     }
-    
+
     @Test
     public void testAuditTrail() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -228,7 +228,7 @@ public class JU_AbsTrans {
         absTransObj.auditTrail(1, new StringBuilder(), 2);
         //assertEquals("nameTest", ((TimeTaken)absTransObj.trail.get(0)).name);
     }
-    
+
     @Test
     public void testAuditTrailLoggableFalse() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -241,7 +241,7 @@ public class JU_AbsTrans {
         absTransObj.auditTrail(1, new StringBuilder(), 1);
         //assertEquals("nameTest", ((TimeTaken)absTransObj.trail.get(0)).name);
     }
-    
+
     @Test
     public void testAuditTrailNullSB() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -254,7 +254,7 @@ public class JU_AbsTrans {
         absTransObj.auditTrail(1, null, 1);
         //assertEquals("nameTest", ((TimeTaken)absTransObj.trail.get(0)).name);
     }
-    
+
     @Test
     public void testAuditTrailEmpptyFlag() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate);
@@ -267,7 +267,7 @@ public class JU_AbsTrans {
         absTransObj.auditTrail(1, null, new int[] {});
         //assertEquals("nameTest", ((TimeTaken)absTransObj.trail.get(0)).name);
     }
-    
+
     @Test
     public void testPut() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate1);
@@ -277,7 +277,7 @@ public class JU_AbsTrans {
             assertTrue(e instanceof NullPointerException);
         }
     }
-    
+
     @Test
     public void testGet() {
         AbsTransImpl absTransObj = new AbsTransImpl(delegate1);
index f8b3245..727673f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,15 +44,15 @@ public class JU_AbsTransJaxb {
 
     @Mock
     EnvJAXB delegate;
-    
+
     @Mock
     LogTarget lt;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
     }
-    
+
     class AbsTransJAXBImpl extends AbsTransJAXB{
 
         public AbsTransJAXBImpl(EnvJAXB env) {
@@ -108,10 +108,10 @@ public class JU_AbsTransJaxb {
             return null;
         }
 
-        
+
     }
-    
-    
+
+
     @Test
     public void testNewDataFactory() {
         AbsTransJAXB absTransObj = new AbsTransJAXBImpl(delegate);
@@ -126,7 +126,7 @@ public class JU_AbsTransJaxb {
         }
         //assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testNewDataFactorySchema() {
         AbsTransJAXB absTransObj = new AbsTransJAXBImpl(delegate);
@@ -141,7 +141,7 @@ public class JU_AbsTransJaxb {
         }
         //assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testNewDataFactoryQname() {
         AbsTransJAXB absTransObj = new AbsTransJAXBImpl(delegate);
@@ -156,7 +156,7 @@ public class JU_AbsTransJaxb {
         }
         //assertTrue(lt instanceof LogTarget);
     }
-    
+
     @Test
     public void testNewDataFactorySchemaQname() {
         AbsTransJAXB absTransObj = new AbsTransJAXBImpl(delegate);
@@ -172,6 +172,6 @@ public class JU_AbsTransJaxb {
         }
         //assertTrue(lt instanceof LogTarget);
     }
-    
-    
+
+
 }
\ No newline at end of file
index b510115..4c4db5c 100644 (file)
@@ -47,8 +47,8 @@ public class JU_Log4JLogTargetTest {
     \r
     @Test\r
     public void testLoggable() {\r
-       Logger l4jLogger = Logger.getLogger("testLogger");\r
-       l4jLogger.setLevel(Level.DEBUG);\r
+        Logger l4jLogger = Logger.getLogger("testLogger");\r
+        l4jLogger.setLevel(Level.DEBUG);\r
         Log4JLogTarget logObj = null;\r
         try {\r
             logObj = new Log4JLogTarget( "testLogger", Level.DEBUG);\r
index 7952740..30f4256 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,16 +50,16 @@ public class JU_JAXBDF {
 
     @Mock
     EnvJAXB primaryEnv;
-    
+
     @Mock
     JAXBumar jumar;
-    
+
     @Mock
     JAXBmar jmar;
-    
+
     @Mock
     Env env;
-    
+
     TimeTaken tt,ttObjectify;
 
     @Before
@@ -89,9 +89,9 @@ public class JU_JAXBDF {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
     }
-    
+
     @Test
     public void testNewInstanceNoException() {
         JAXBDF<?> bdfObj = null;
@@ -101,10 +101,10 @@ public class JU_JAXBDF {
             assertTrue(retVal instanceof JU_JAXBDF);
         } catch (APIException e) {
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testPrettyNoException() {
         JAXBDF<?> bdfObj = null;
@@ -114,7 +114,7 @@ public class JU_JAXBDF {
             assertTrue(retVal instanceof JAXBDF);
         } catch (APIException e) {
             e.printStackTrace();
-        } 
+        }
     }
 
     @Test
@@ -131,10 +131,10 @@ public class JU_JAXBDF {
             bdfObj.serviceDestroy(null);
         } catch (APIException e) {
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testNewData() {
         JAXBDF<?> bdfObj = null;
@@ -144,9 +144,9 @@ public class JU_JAXBDF {
             assertTrue(retVal instanceof JAXBData);
         } catch (APIException e) {
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testNewDataENV() {
         JAXBDF<?> bdfObj = null;
@@ -156,9 +156,9 @@ public class JU_JAXBDF {
             assertTrue(retVal instanceof JAXBData);
         } catch (APIException e) {
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testNewDataType() {
         JAXBDF<JAXBumar> bdfObj = null;
@@ -171,9 +171,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testNewDataStream() {
         JAXBDF<?> bdfObj = null;
@@ -191,9 +191,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testNewDataStreamException() {
         JAXBDF<?> bdfObj = null;
@@ -210,9 +210,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             assertTrue(e.getMessage().contains("test"));
-        } 
+        }
     }
-    
+
     @Test
     public void testNewDataFromString() {
         JAXBDF<?> bdfObj = null;
@@ -222,9 +222,9 @@ public class JU_JAXBDF {
             assertTrue(retVal instanceof JAXBData);
         } catch (APIException e) {
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testStringify() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -243,9 +243,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifyException() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -263,9 +263,9 @@ public class JU_JAXBDF {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifyWriter() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -283,9 +283,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifyWriterException() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -303,9 +303,9 @@ public class JU_JAXBDF {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifyOS() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -323,9 +323,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifyOsException() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -343,9 +343,9 @@ public class JU_JAXBDF {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifyOptions() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -363,9 +363,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifyOSOptions() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -383,9 +383,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifyOsOptionsException() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -403,7 +403,7 @@ public class JU_JAXBDF {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
+        }
     }
     @Test
     public void testStringifySWOptions() {
@@ -422,9 +422,9 @@ public class JU_JAXBDF {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
+        }
     }
-    
+
     @Test
     public void testStringifySWOptionsException() {
         JAXBDF<JAXBmar> bdfObj = null;
@@ -442,9 +442,9 @@ public class JU_JAXBDF {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
+        }
     }
+
     @Test
     public void testObjectifyEnv() {
         JAXBDF<JAXBumar> bdfObj = null;
@@ -456,14 +456,14 @@ public class JU_JAXBDF {
             LogTarget logT = Mockito.mock(LogTarget.class);
             Mockito.doReturn(logT).when(env).debug();
             Mockito.doReturn(this.getClass()).when(bdfObj.jumar).unmarshal(logT, Mockito.mock(StringReader.class));
-            
+
             bdfObj.objectify(env, Mockito.mock(StringReader.class));
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
     @Test
     public void testObjectifyEnvException() {
@@ -477,16 +477,16 @@ public class JU_JAXBDF {
             Mockito.doReturn(logT).when(env).debug();
             StringReader sr = Mockito.mock(StringReader.class);
             Mockito.doThrow(new JAXBException("test")).when(bdfObj.jumar).unmarshal(logT, sr);
-            
+
             bdfObj.objectify(env, sr);
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyRdr() {
         JAXBDF<JAXBumar> bdfObj = null;
@@ -498,14 +498,14 @@ public class JU_JAXBDF {
             LogTarget logT = Mockito.mock(LogTarget.class);
             Mockito.doReturn(logT).when(env).debug();
             Mockito.doReturn(this.getClass()).when(bdfObj.jumar).unmarshal(logT, Mockito.mock(StringReader.class));
-            
+
             bdfObj.objectify( Mockito.mock(StringReader.class));
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
     @Test
     public void testObjectifyRdrException() {
@@ -519,16 +519,16 @@ public class JU_JAXBDF {
             Mockito.doReturn(logT).when(envJaxb).debug();
             StringReader sr = Mockito.mock(StringReader.class);
             Mockito.doThrow(new JAXBException("test")).when(bdfObj.jumar).unmarshal(logT, sr);
-            
+
             bdfObj.objectify(sr);
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyEnvIS() {
         JAXBDF<JAXBumar> bdfObj = null;
@@ -540,14 +540,14 @@ public class JU_JAXBDF {
             LogTarget logT = Mockito.mock(LogTarget.class);
             Mockito.doReturn(logT).when(env).debug();
             Mockito.doReturn(this.getClass()).when(bdfObj.jumar).unmarshal(logT, Mockito.mock(InputStream.class));
-            
+
             bdfObj.objectify(env, Mockito.mock(InputStream.class));
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
     @Test
     public void testObjectifyEnvISException() {
@@ -561,16 +561,16 @@ public class JU_JAXBDF {
             Mockito.doReturn(logT).when(env).debug();
             InputStream sr = Mockito.mock(InputStream.class);
             Mockito.doThrow(new JAXBException("test")).when(bdfObj.jumar).unmarshal(logT, sr);
-            
+
             bdfObj.objectify(env, sr);
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyIs() {
         JAXBDF<JAXBumar> bdfObj = null;
@@ -582,14 +582,14 @@ public class JU_JAXBDF {
             LogTarget logT = Mockito.mock(LogTarget.class);
             Mockito.doReturn(logT).when(env).debug();
             Mockito.doReturn(this.getClass()).when(bdfObj.jumar).unmarshal(logT, Mockito.mock(InputStream.class));
-            
+
             bdfObj.objectify( Mockito.mock(InputStream.class));
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
     @Test
     public void testObjectifyIsException() {
@@ -603,16 +603,16 @@ public class JU_JAXBDF {
             Mockito.doReturn(logT).when(envJaxb).debug();
             InputStream sr = Mockito.mock(InputStream.class);
             Mockito.doThrow(new JAXBException("test")).when(bdfObj.jumar).unmarshal(logT, sr);
-            
+
             bdfObj.objectify(sr);
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyEnvStr() {
         JAXBDF<JAXBumar> bdfObj = null;
@@ -624,14 +624,14 @@ public class JU_JAXBDF {
             LogTarget logT = Mockito.mock(LogTarget.class);
             Mockito.doReturn(logT).when(env).debug();
             Mockito.doReturn(this.getClass()).when(bdfObj.jumar).unmarshal(logT, "test");
-            
+
             bdfObj.objectify(env, "test");
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
     @Test
     public void testObjectifyEnvStrException() {
@@ -645,16 +645,16 @@ public class JU_JAXBDF {
             Mockito.doReturn(logT).when(env).debug();
             InputStream sr = Mockito.mock(InputStream.class);
             Mockito.doThrow(new JAXBException("test")).when(bdfObj.jumar).unmarshal(logT, "test");
-            
+
             bdfObj.objectify(env, "test");
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyStr() {
         JAXBDF<JAXBumar> bdfObj = null;
@@ -666,14 +666,14 @@ public class JU_JAXBDF {
             LogTarget logT = Mockito.mock(LogTarget.class);
             Mockito.doReturn(logT).when(env).debug();
             Mockito.doReturn(this.getClass()).when(bdfObj.jumar).unmarshal(logT, "test");
-            
+
             bdfObj.objectify( "test");
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
     @Test
     public void testObjectifyStrException() {
@@ -687,28 +687,28 @@ public class JU_JAXBDF {
             Mockito.doReturn(logT).when(envJaxb).debug();
             InputStream sr = Mockito.mock(InputStream.class);
             Mockito.doThrow(new JAXBException("test")).when(bdfObj.jumar).unmarshal(logT, "test");
-            
+
             bdfObj.objectify("test");
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
         } catch (JAXBException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testTypeClass() {
         JAXBDF<JAXBumar> bdfObj = null;
         try {
             EnvJAXB envJaxb = Mockito.mock(EnvJAXB.class);
             bdfObj = new JAXBDF<JAXBumar>( envJaxb, new Class[] {this.getClass()});
-            
+
             Object obj = bdfObj.getTypeClass();
             assertFalse(obj instanceof JU_JAXBDF);
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("test"));
-        } 
-        
+        }
+
     }
 }
index 9330f18..2c082c7 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,17 +43,17 @@ public class JU_JAXBObjectifierTest {
 
     @Mock
     JAXBumar jumar;
-    
+
     @Mock
     Schema schema;
-    
+
     @Mock
     Env env;
-    
+
     TimeTaken tt,ttObjectify;
-    
+
     LogTarget logT;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
@@ -77,10 +77,10 @@ public class JU_JAXBObjectifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyException() {
         JAXBObjectifier<?> bdfObj = null;
@@ -93,10 +93,10 @@ public class JU_JAXBObjectifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyRdr() {
         JAXBObjectifier<?> bdfObj = null;
@@ -110,10 +110,10 @@ public class JU_JAXBObjectifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyRdrException() {
         JAXBObjectifier<?> bdfObj = null;
@@ -127,10 +127,10 @@ public class JU_JAXBObjectifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyIs() {
         JAXBObjectifier<?> bdfObj = null;
@@ -143,10 +143,10 @@ public class JU_JAXBObjectifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testObjectifyIsException() {
         JAXBObjectifier<?> bdfObj = null;
@@ -160,10 +160,10 @@ public class JU_JAXBObjectifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testEmptyMethods() {
         JAXBObjectifier<?> bdfObj = null;
@@ -176,10 +176,10 @@ public class JU_JAXBObjectifierTest {
             bdfObj.refresh(env);
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("Test Exception"));
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testNewInstance() {
         JAXBObjectifier<?> bdfObj = null;
@@ -187,7 +187,7 @@ public class JU_JAXBObjectifierTest {
             bdfObj = new JAXBObjectifier(jumar);
             Object retVal = bdfObj.newInstance();
             Mockito.doThrow(new IllegalAccessException("Test Exception")).when(jumar).newInstance();
-            
+
         } catch (IllegalAccessException e) {
             assertEquals("Test Exception", e.getLocalizedMessage());
         } catch (APIException e) {
@@ -197,7 +197,7 @@ public class JU_JAXBObjectifierTest {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testNewInstanceException() {
         JAXBObjectifier<?> bdfObj = null;
@@ -213,6 +213,6 @@ public class JU_JAXBObjectifierTest {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
     }
 }
index 84415fd..86ef59b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -18,6 +18,7 @@
  * ============LICENSE_END====================================================
  *
  */
+
 package org.onap.aaf.misc.env.jaxb;
 
 import static org.junit.Assert.assertEquals;
@@ -44,17 +45,17 @@ public class JU_JAXBStringifierTest {
 
     @Mock
     JAXBmar jumar;
-    
+
     @Mock
     QName qname;
-    
+
     @Mock
     Env env;
-    
+
     TimeTaken tt,ttstringify;
-    
+
     LogTarget logT;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
@@ -78,10 +79,10 @@ public class JU_JAXBStringifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void teststringifyWriter() {
         JAXBStringifier<JAXBmar> bdfObj = null;
@@ -95,10 +96,10 @@ public class JU_JAXBStringifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void teststringifyWriterException() {
         JAXBStringifier<JAXBmar> bdfObj = null;
@@ -112,10 +113,10 @@ public class JU_JAXBStringifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void teststringifyOs() {
         JAXBStringifier<JAXBmar> bdfObj = null;
@@ -128,10 +129,10 @@ public class JU_JAXBStringifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void teststringifyOsException() {
         JAXBStringifier<JAXBmar> bdfObj = null;
@@ -145,10 +146,10 @@ public class JU_JAXBStringifierTest {
         } catch (JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testEmptyMethods() {
         JAXBStringifier<JAXBmar> bdfObj = null;
@@ -161,10 +162,10 @@ public class JU_JAXBStringifierTest {
             bdfObj.refresh(env);
         } catch (APIException e) {
             assertTrue(e.getMessage().contains("Test Exception"));
-        } 
-        
+        }
+
     }
-    
+
     @Test
     public void testPretty() {
         JAXBStringifier<JAXBmar> bdfObj = null;
@@ -173,7 +174,7 @@ public class JU_JAXBStringifierTest {
         Object retVal = bdfObj.pretty(true);
         assertTrue(retVal instanceof JAXBStringifier);
     }
-    
+
     @Test
     public void testNewInstanceException() {
         JAXBStringifier<JAXBmar> bdfObj = null;
@@ -181,6 +182,6 @@ public class JU_JAXBStringifierTest {
         Mockito.doReturn(jumar).when(jumar).asFragment(true);
         Object retVal = bdfObj.asFragment(true);
         assertTrue(retVal instanceof JAXBStringifier);
-        
+
     }
 }
index 22c209c..3623625 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,19 +43,19 @@ import org.onap.aaf.misc.env.StaticSlot;
 import org.onap.aaf.misc.env.StoreImpl;
 import org.onap.aaf.misc.env.TimeTaken;
 
-@RunWith(MockitoJUnitRunner.class) 
+@RunWith(MockitoJUnitRunner.class)
 public class JU_StoreImplTest {
-    
+
     @Mock
     QName qname;
-    
+
     @Mock
     Env env;
-    
+
     TimeTaken tt,ttstringify;
-    
+
     LogTarget logT;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
@@ -72,36 +72,36 @@ public class JU_StoreImplTest {
         bdfObj = new StoreImpl("");
         bdfObj.propsFromArgs(null, new String[] {"test"});
         bdfObj.propsFromArgs("test", new String[] {"test","te=st","test=1"});
-        
+
     }
-    
+
     @Test
     public void testMorePropsConstructor() {
         Properties props = Mockito.mock(Properties.class);
         new StoreImpl(null,props);
         StoreImpl bdfObj = new StoreImpl("test",props);
     }
-    
+
     @Test
     public void testMorePropsFileNOtExists() {
         Properties props = Mockito.mock(Properties.class);
         Mockito.doReturn("test").when(props).getProperty("test");
         StoreImpl bdfObj = new StoreImpl("test",props);
     }
-    
+
     @Test
     public void testMorePropsExists() {
         Properties props = Mockito.mock(Properties.class);
         Mockito.doReturn(System.getProperty("user.dir")+"/src/test/java/org/onap/aaf/misc/env/JU_StoreImplTest.java").when(props).getProperty("test");
         StoreImpl bdfObj = new StoreImpl("test",props);
     }
-    
+
     @Test
     public void testNewTransState() {
         StoreImpl bdfObj = new StoreImpl(null, new String[] {});
         bdfObj.newTransState();
     }
-    
+
     @Test
     public void testSlot() {
         StoreImpl bdfObj = new StoreImpl("test", new String[] {});
@@ -110,35 +110,35 @@ public class JU_StoreImplTest {
         slot = bdfObj.slot("test");
         assertEquals(slot.toString(),"test=1");
     }
-    
+
     @Test
     public void testExistingSlot() {
         StoreImpl bdfObj = new StoreImpl("test", new String[] {"test","test=1"});
         Slot retVal = bdfObj.existingSlot("test");
         assertNull(retVal);
     }
-    
+
     @Test
     public void testExistingSlotNames() {
         StoreImpl bdfObj = new StoreImpl("test", new String[] {"test","test=1"});
         List<String> retVal = bdfObj.existingSlotNames();
         assertTrue(retVal.size()==0);
     }
-    
+
     @Test
     public void testGet() {
         StoreImpl bdfObj = new StoreImpl("test", new String[] {"test","test=1"});
         Object retVal = bdfObj.get(new StaticSlot(1,"test"),qname);
         assertTrue(retVal instanceof QName);
     }
-    
+
     @Test
     public void testGetSlot() {
         StoreImpl bdfObj = new StoreImpl("test", new String[] {"test","test=1"});
         Object retVal = bdfObj.get(new StaticSlot(1,"test"));
         assertNull(retVal);
     }
-    
+
     @Test
     public void testExistingStaticSlotNames() {
         StoreImpl bdfObj = new StoreImpl("test", new String[] {"test","test=1"});
index 1aaeb7f..1aca545 100644 (file)
@@ -57,11 +57,11 @@ public class JU_LogFileNamerTest {
         try {
             LogFileNamer logFileNamer = new LogFileNamer(dir.getCanonicalPath(), "log");
             assertEquals(logFileNamer, logFileNamer.noPID());
-    
+
             logFileNamer.setAppender(name);
             assertEquals(System.getProperty("LOG4J_FILENAME_Append"),
                 dir.getCanonicalFile() + File.separator + "log-" + name + ".log");
-    
+
             logFileNamer.setAppender(name);
             assertEquals(System.getProperty("LOG4J_FILENAME_Append"),
                 dir.getCanonicalFile() + File.separator + "log-" + name + ".0.log");
@@ -76,11 +76,11 @@ public class JU_LogFileNamerTest {
         try {
             LogFileNamer logFileNamer = new LogFileNamer(dir.getCanonicalPath(), "");
             assertEquals(logFileNamer, logFileNamer.noPID());
-    
+
             logFileNamer.setAppender(name);
             assertEquals(System.getProperty("LOG4J_FILENAME_Different"),
                 dir.getCanonicalPath() + File.separator + name + ".log");
-    
+
             logFileNamer.setAppender(name);
             assertEquals(System.getProperty("LOG4J_FILENAME_Different"),
                 dir.getCanonicalPath() + File.separator + name + ".0.log");
index 582c750..ab33c2a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ public class InJson implements Parse<Reader, State> {
             state.unsent = 0;
             return parsed;
         }
-        
+
         int ch;
         char c;
         StringBuilder sb = parsed.sb;
@@ -48,7 +48,7 @@ public class InJson implements Parse<Reader, State> {
             while (go && (ch=r.read())>=0) {
                 if (state.braces>=0 || ch==Parse.START_OBJ) { // ignore garbage/whitespace before content
                     c=(char)ch;
-                    // Character is a quote.  
+                    // Character is a quote.
                     if (c=='"') {
                         if (inQuotes) {
                             if (escaped) {  // if escaped Quote, add to data.
@@ -112,7 +112,7 @@ public class InJson implements Parse<Reader, State> {
                                     parsed.event = c;
                                     go = false;
                                     break;
-                                        
+
                                 // The Escape Sequence, for Quote marks within Quotes
                                 case '\\':
                                 // Ignore these, unless within quotes, at which point data-gather
@@ -141,7 +141,7 @@ public class InJson implements Parse<Reader, State> {
         public int braces = 0;
         public char unsent = 0;
     }
-    
+
 //    @Override
     public Parsed<State> newParsed() {
         return new Parsed<State>(new State()); // no State needed
index 175a2aa..5cd2b1a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -40,7 +40,7 @@ public class InXML implements Parse<Reader, State> {
     public InXML(JaxInfo jaxInfo) {
         this.jaxInfo = jaxInfo;
     }
-    
+
     public InXML(Class<?> cls, String ... rootNs) throws SecurityException, NoSuchFieldException, ClassNotFoundException, ParseException {
         jaxInfo = JaxInfo.build(cls,rootNs);
     }
@@ -49,7 +49,7 @@ public class InXML implements Parse<Reader, State> {
     // @Override
     public Parsed<State> parse(Reader r, Parsed<State> parsed) throws ParseException {
         State state = parsed.state;
-        
+
         // OK, before anything else, see if there is leftover processing, if so, do it!
         if (state.unevaluated!=null) {
             DerTag dt = state.unevaluated;
@@ -71,7 +71,7 @@ public class InXML implements Parse<Reader, State> {
 
         StringBuilder sb = parsed.sb, tempSB = new StringBuilder();
         boolean go = true;
-        
+
         try {
             while (go && (ch=r.read())>=0) {
                 c = (char)ch;
@@ -108,7 +108,7 @@ public class InXML implements Parse<Reader, State> {
                             // don't add Whitespace to start of SB... saves removing later
                             if (sb.length()>0) {
                                 sb.append(c);
-                            } else if (!Character.isWhitespace(c)) { 
+                            } else if (!Character.isWhitespace(c)) {
                                 sb.append(c);
                             }
                         }
@@ -119,28 +119,28 @@ public class InXML implements Parse<Reader, State> {
             throw new ParseException(e);
         }
     }
-    
+
     public static final class DerTag {
         public String name;
         public boolean isEndTag;
         public List<Prop> props;
         private boolean isXmlInfo;
-        //private String ns; 
-        
+        //private String ns;
+
         public DerTag() {
             name=null;
             isEndTag = false;
             props = null;
             isXmlInfo = false;
         }
-        
+
         public DerTag parse(Reader r, StringBuilder sb) throws ParseException {
             int ch;
             char c;
             boolean inQuotes = false, escaped = false;
             boolean go = true;
             String tag = null;
-            
+
             try {
                 if ((ch = r.read())<0) throw new ParseException("Reader content ended before complete");
                 if (ch=='?') {
@@ -210,7 +210,7 @@ public class InXML implements Parse<Reader, State> {
                 }
             }
         }
-        
+
         public String toString() {
             StringBuilder sb = new StringBuilder();
             sb.append(isEndTag?"End":"Start");
@@ -227,7 +227,7 @@ public class InXML implements Parse<Reader, State> {
             return sb.toString();
         }
     }
-    
+
     private static class ArrayState {
         public boolean firstObj = true;
         public boolean didNext = false;
@@ -244,7 +244,7 @@ public class InXML implements Parse<Reader, State> {
             unevaluated = null;
             attribs = null;;
         }
-        
+
         public boolean hasAttributes() {
             return attribs!=null && idx<attribs.size();
         }
@@ -256,7 +256,7 @@ public class InXML implements Parse<Reader, State> {
             }
             attribs.add(prop);
         }
-        
+
         public Prop pop() {
             Prop rv = null;
             if (attribs!=null) {
@@ -266,18 +266,18 @@ public class InXML implements Parse<Reader, State> {
             return rv;
         }
     }
-    
+
     private static abstract class GreatExpectations {
         protected JaxInfo ji;
         protected GreatExpectations prev;
         private Map<String,String> ns;
-        
+
         public GreatExpectations(State state, JaxInfo curr, GreatExpectations prev, DerTag derTag) throws ParseException {
             this.prev = prev;
             ns = null;
             ji = getDerived(state, curr,derTag);
         }
-        
+
         public abstract boolean eval(Parsed<State> parsed, DerTag derTag) throws ParseException;
 
         // Recursively look back for any namespaces
@@ -301,9 +301,9 @@ public class InXML implements Parse<Reader, State> {
 
         private JaxInfo getDerived(State state, JaxInfo ji, DerTag derTag) throws ParseException {
             if (derTag==null)return ji;
-            
+
             List<Prop> props = derTag.props;
-            
+
             Prop derived = null;
             if (props!=null) {
                 // Load Namespaces (if any)
@@ -339,13 +339,13 @@ public class InXML implements Parse<Reader, State> {
             return derived==null?ji:ji.getDerived(derived.value);
         }
     }
-    
+
     private static class RootExpectations extends GreatExpectations {
-        
+
         public RootExpectations(State state, JaxInfo curr, GreatExpectations prev) throws ParseException {
             super(state,curr,prev, null);
         }
-        
+
         // @Override
         public boolean eval(Parsed<State> parsed, DerTag derTag) throws ParseException {
             if (derTag.isXmlInfo) {
@@ -357,13 +357,13 @@ public class InXML implements Parse<Reader, State> {
                 } else {
                     //parsed.name = derTag.name;
                     parsed.event = START_OBJ;
-                    parsed.state.greatExp = new ObjectExpectations(parsed.state,ji, this, false, derTag);    
+                    parsed.state.greatExp = new ObjectExpectations(parsed.state,ji, this, false, derTag);
                 }
             }
             return false;
         }
     }
-    
+
     private static class ObjectExpectations extends GreatExpectations {
         private boolean printName;
 
@@ -413,7 +413,7 @@ public class InXML implements Parse<Reader, State> {
             return false;
         }
     }
-    
+
     private static class LeafExpectations extends GreatExpectations {
         public LeafExpectations(State state, JaxInfo curr, GreatExpectations prev) throws ParseException {
             super(state, curr, prev, null);
@@ -429,7 +429,7 @@ public class InXML implements Parse<Reader, State> {
                 throw new ParseException("Expected </" + ji.name + '>');
             }
             return false;
-        }        
+        }
     }
 
     private static class ArrayExpectations extends GreatExpectations {
@@ -445,7 +445,7 @@ public class InXML implements Parse<Reader, State> {
                     if (derTag.isEndTag) {
                         throw new ParseException("Unexpected End Tag </" + derTag.name + '>');
                     } else {
-                        ArrayState ai = parsed.state.arrayInfo.peek();  
+                        ArrayState ai = parsed.state.arrayInfo.peek();
                         if (ai.firstObj || ai.didNext) {
                             ai.firstObj = false;
                             ai.didNext = false;
@@ -473,7 +473,7 @@ public class InXML implements Parse<Reader, State> {
                 parsed.state.arrayInfo.pop();
             }
             return false;
-        }        
+        }
     }
     // @Override
     public Parsed<State> newParsed() throws ParseException {
@@ -484,5 +484,5 @@ public class InXML implements Parse<Reader, State> {
     public TimeTaken start(Env env) {
         return env.start("Rosetta XML In", Env.XML);
     }
-    
+
 }
index cb6d2f8..7e4617b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index d209f02..b4d5782 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,7 +39,7 @@ public class JaxInfo {
     public static final int DATA = 0;
     public static final int ARRAY = 1;
     public static final int OBJECT = 2;
-    
+
     public final String name;
     public final Class<?> clss;
     public Map<String, JaxInfo> extensions; // Classes, which might be found at runtime, that extend this class.  Lazy Instantiation
@@ -50,7 +50,7 @@ public class JaxInfo {
     public final boolean nillable;
     public String ns;
     public boolean isObject() {return members!=null;}
-    
+
     private JaxInfo(String n, String ns, Class<?> c, JaxInfo[] members, boolean string, boolean array, boolean required, boolean nillable) {
         name = n;
         this.ns = ns;
@@ -62,14 +62,14 @@ public class JaxInfo {
         this.nillable = nillable;
         extensions = null;
     }
-    
+
 
     public int getType() {
         if (isArray)return ARRAY;
         else if (members!=null)return OBJECT;
         return DATA;
     }
-    
+
     public JaxInfo getDerived(String derivedName) {
         JaxInfo derived;
         // Lazy Instantiation
@@ -79,7 +79,7 @@ public class JaxInfo {
         } else {
             derived = extensions.get(derivedName);
         }
-        
+
         if (derived == null) {
             //TODO for the moment, Classes are in same package
             Package pkg = clss.getPackage();
@@ -103,7 +103,7 @@ public class JaxInfo {
 
     /**
      * Build up JAXB Information (recursively)
-     * 
+     *
      * @param cls
      * @param rootNns
      * @return
@@ -117,7 +117,7 @@ public class JaxInfo {
     }
     /**
      * Build up JAXB Information (recursively)
-     * 
+     *
      * @param cls
      * @param rootNns
      * @return
@@ -151,10 +151,10 @@ public class JaxInfo {
                 }
             }
         }
-        
+
         return new JaxInfo(name,defaultNS, cls,buildFields(cls,defaultNS),false,false,false,false);
     }
-    
+
     // Build up the name and members of this particular class
     // This is recursive, if a member is a JAXB Object as well.
     private static JaxInfo[] buildFields(Class<?> clazz, String defaultNS) throws SecurityException, NoSuchFieldException, ClassNotFoundException {
@@ -168,12 +168,12 @@ public class JaxInfo {
                 if ("".equals(field)) break; // odd bug.  "" returned when no fields exist, rather than empty array
                 Field rf = cls.getDeclaredField(field);
                 Class<?> ft = rf.getType();
-                
+
                 boolean required = false;
                 boolean nillable = false;
                 String xmlName = field;
                 String namespace = defaultNS;
-                
+
                 XmlElement xe = rf.getAnnotation(XmlElement.class);
                 if (xe!=null) {
                     xmlName=xe.name();
index 2d7af05..e480b79 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -30,9 +30,9 @@ import javax.xml.bind.annotation.XmlType;
 
 /**
  * For specific XML class, quickly find a Setter Method which will load the object
- * 
+ *
  * Object type of Setter must match String at this time.
- * 
+ *
  * @author Jonathan
  *
  * @param <T>
@@ -65,7 +65,7 @@ public class JaxSet<T> {
             }
         }
     }
-    
+
     public static abstract class Setter<O> {
         protected final Method meth;
         public Setter(Method meth) {
index 6ff627b..6a0a725 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -25,9 +25,9 @@ package org.onap.aaf.misc.rosetta;
 /**
  * A Ladder is a Stack like Storage Class, but where you can ascend and descend while
  * the elements exists.
- * 
+ *
  * Like an extension ladder, you can make taller as you go
- * 
+ *
  * @author Jonathan
  *
  */
@@ -52,16 +52,16 @@ public class Ladder<T> {
     public void bottom() {
         rung = 0;
     }
-    
+
     public void top() {
         rung = struts.length-1;
         while (rung>0 && struts[rung]==null)--rung;
     }
-    
+
     public int howHigh() {
         return rung;
     }
-    
+
     public void jumpTo(int rung) {
         if (rung>=struts.length) {
             Object[] temp = new Object[init_size*((rung/init_size)+1)];
@@ -70,17 +70,17 @@ public class Ladder<T> {
         }
         this.rung = rung;
     }
-    
+
     public int height() {
         return struts.length;
     }
-    
+
     public void cutTo(int rungs) {
         Object[] temp = new Object[rungs];
         System.arraycopy(struts, 0, temp, 0, Math.min(rungs, struts.length));
         struts = temp;
     }
-    
+
     public void ascend() {
         ++rung;
         if (rung>=struts.length) {
@@ -89,20 +89,20 @@ public class Ladder<T> {
             struts = temp;
         }
     }
-    
+
     public void descend() {
         --rung;
     }
-    
+
     @SuppressWarnings("unchecked")
     public T peek() {
         return (T)struts[rung];
     }
-    
+
     public void push(T t) {
         struts[rung]=t;
     }
-    
+
     @SuppressWarnings("unchecked")
     public T pop() {
         T t = (T)struts[rung];
index 3729d1e..933df4a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -72,9 +72,9 @@ public abstract class Marshal<T> implements Parse<T, Marshal.State> {
 
     /**
      * Typical definition of Done is when Iterator in Ladder is "DONE_ITERATOR"
-     * 
+     *
      * It is important, however, that the "Ladder Rung" is set to the right level.
-     * 
+     *
      * @param state
      * @return
      */
index d36c07e..51221bc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,9 +48,9 @@ public class Nulls {
         public TimeTaken start(Env env) {
             return env.start("IN", Env.SUB);
         }
-        
+
     };
-    
+
     public static final Out OUT = new Out() {
 
         // @Override
index aa2b299..660af00 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,7 +28,7 @@ import java.io.Writer;
 
 public abstract class Out {
     public abstract<IN,S> void extract(IN in, Writer writer, Parse<IN, S> parse, boolean ... options) throws IOException, ParseException;
-    
+
     public<IN,S> void extract(IN in, OutputStream os, Parse<IN, S> parse, boolean ... options) throws IOException, ParseException {
         Writer w = new OutputStreamWriter(os);
         try {
@@ -37,7 +37,7 @@ public abstract class Out {
             w.flush();
         }
     }
-    
+
     public abstract String logName();
-    
+
 }
index 4fb52d8..9f78c2c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -39,9 +39,9 @@ public class OutJax extends Out {
             if (je==null)throw new ParseException("Incomplete content");
             je = je.eval(p);
         }
-        
+
     }
-    
+
     @Override
     public String logName() {
         return "Rosetta JAX";
index 2d93bb4..e2f45d1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -50,7 +50,7 @@ public class OutJson extends Out {
         while ((p = prs.parse(in,p.reuse())).valid()) {
             ++count;
             switch(p.event) {
-                case 1: 
+                case 1:
                     continue;
                 case 2:
                     if (count==2) { // it's empty, write open/close on it's own
@@ -64,7 +64,7 @@ public class OutJson extends Out {
                     if (jsonLevel.peek().printObjectName) {
                         print = true;
                     } else { // don't print names on first
-                        print=false; 
+                        print=false;
                     }
                     maybe=jsonLevel.peek().listItem();
                     jsonLevel.push(new LevelStack(true));
@@ -72,9 +72,9 @@ public class OutJson extends Out {
                 case '}':
                     if (p.hasData()) { // if we have data, we print that, so may need to prepend a comma.
                         maybe = jsonLevel.peek().listItem();
-                    } else { // No data means just print, 
+                    } else { // No data means just print,
                         p.name = ""; // XML tags come through with names, but no data
-                    } 
+                    }
                     print = true;
                     jsonLevel.pop();
                     afterName = p.event;
@@ -94,7 +94,7 @@ public class OutJson extends Out {
                         else maybe = jsonLevel.peek().listItem();
                     } else {
                         p.name = ""; // XML tags come through with names, but no data
-                    } 
+                    }
                     jsonLevel.pop();
 
                     print = true;
@@ -114,7 +114,7 @@ public class OutJson extends Out {
             }
 
             if (maybe!=0) {
-                if (ipw==null)writer.append(maybe); 
+                if (ipw==null)writer.append(maybe);
                 else ipw.println(maybe);
                 maybe = 0;
             }
@@ -132,7 +132,7 @@ public class OutJson extends Out {
                     if (p.event==3)writer.append("__");
                     writer.append(p.name);
                     writer.append("\":");
-                } 
+                }
                 if (p.hasData()) {
                     if (p.isString) {
                         writer.append('"');
@@ -171,7 +171,7 @@ public class OutJson extends Out {
                 }
                 afterName = 0;
             }
-            
+
             if (ipw!=null) {
                 switch(p.event) {
                     case '[':
@@ -206,7 +206,7 @@ public class OutJson extends Out {
             }
         }
 
-        
+
     }
 
     @Override
@@ -217,11 +217,11 @@ public class OutJson extends Out {
     private static class LevelStack {
         public boolean printObjectName=false;
         private boolean first_n_List=true;
-        
+
         public LevelStack(boolean printObjectName) {
             this.printObjectName = printObjectName;
         }
-        
+
         public char listItem() {
             if (first_n_List) {
                 first_n_List=false;
index f07498b..fbdf631 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -29,13 +29,13 @@ public class OutRaw extends Out{
     @Override
     public<IN,S> void extract(IN in, Writer writer, Parse<IN,S> prs, boolean ... options) throws IOException, ParseException {
         Parsed<S> p = prs.newParsed();
-        
-        while ((p = prs.parse(in,p.reuse())).valid()) { 
+
+        while ((p = prs.parse(in,p.reuse())).valid()) {
             writer.append(p.toString());
             writer.append('\n');
         }
     }
-    
+
     @Override
     public String logName() {
         return "Rosetta RAW";
index 6472c88..1004da6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -34,9 +34,9 @@ import org.onap.aaf.misc.env.util.StringBuilderWriter;
 
 public class OutXML extends Out{
     private static final String XMLNS_XSI = "xmlns:xsi";
-    public static final String XML_INFO = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"; 
+    public static final String XML_INFO = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>";
     public static final String XML_SCHEMA_INSTANCE = "http://www.w3.org/2001/XMLSchema-instance";
-    
+
     private String root;
     private List<Prop> props;
 
@@ -49,27 +49,27 @@ public class OutXML extends Out{
                 props.add(new Prop(tv[0],tv[1]));
         }
     }
-    
+
     public OutXML(JaxInfo jaxInfo) {
         this(jaxInfo.name,genNS(jaxInfo));
     }
-    
+
     public OutXML(InXML inXML) {
         this(inXML.jaxInfo.name,genNS(inXML.jaxInfo));
     }
-    
+
     private static String[] genNS(JaxInfo jaxInfo) {
         return new String[] {"xmlns=" + jaxInfo.ns};
     }
-    
-    
+
+
     @Override
     public<IN,S> void extract(IN in, Writer writer, Parse<IN,S> prs, boolean ... options) throws IOException, ParseException {
         Parsed<S> p = prs.newParsed();
         Stack<Level> stack = new Stack<Level>();
         // If it's an IndentPrintWriter, it is pretty printing.
         boolean pretty = (options.length>0&&options[0]);
-    
+
         IndentPrintWriter ipw;
         if (pretty) {
             if (writer instanceof IndentPrintWriter) {
@@ -114,22 +114,22 @@ public class OutXML extends Out{
                     if (pretty)ipw.inc();
                     break;
                 case Parse.END_OBJ:
-                    if (p.hasData())  
+                    if (p.hasData())
                         closeTag = tag(writer,writer,pretty,false,p.name, XmlEscape.convert(p.sb));
                     if (pretty)ipw.dec();
                     writer.append(level.sbw.getBuffer());
                     level = stack.pop();
                     break;
-                case Parse.START_ARRAY: 
+                case Parse.START_ARRAY:
                     level.multi = p.name;
                     break;
                 case Parse.END_ARRAY:
-                    if (p.hasData()) 
+                    if (p.hasData())
                         closeTag = tag(writer,writer,pretty,false, p.name, XmlEscape.convert(p.sb));
                     level.multi=null;
                     break;
                 case Parse.ATTRIB:
-                    if (p.hasData()) 
+                    if (p.hasData())
                         attrib(writer,pretty,p.name, XmlEscape.convert(p.sb), level);
                     break;
                 case Parse.NEXT:
@@ -141,13 +141,13 @@ public class OutXML extends Out{
         writer.append(level.sbw.getBuffer());
         writer.flush();
     }
-    
+
     private class Level {
         public final StringBuilderWriter sbw;
         public String multi;
         private Level prev;
         private Map<String,String> nses;
-        
+
         public Level(Level level) {
             sbw = new StringBuilderWriter();
             multi = null;
@@ -162,18 +162,18 @@ public class OutXML extends Out{
                 String v = nses.get(ns);
                 return value.equals(v); // note: accomodates not finding NS as well
             }
-            
+
             if (create && !rv) {
                 if (nses == null) nses = new HashMap<>();
                 nses.put(ns, value);
             }
             return rv;
         }
-        
-        
-        
+
+
+
     }
-    
+
     private boolean tag(Writer fore, Writer aft, boolean pretty, boolean returns, String tag, String data) throws IOException {
         fore.append('<');
         fore.append(tag);
@@ -188,7 +188,7 @@ public class OutXML extends Out{
         if (pretty)aft.append('\n');
         return data==null;
     }
-    
+
     private void attrib(Writer fore, boolean pretty, String tag, String value, Level level) throws IOException {
         String realTag = tag.startsWith("__")?tag.substring(2):tag; // remove __
         if (realTag.equals(Parsed.EXTENSION_TAG)) { // Convert Derived name into XML defined Inheritance
@@ -209,7 +209,7 @@ public class OutXML extends Out{
                 }
             }
             fore.append(' ');
-            fore.append(realTag);  
+            fore.append(realTag);
             fore.append("=\"");
             fore.append(value);
             fore.append('"');
index d068530..fe2dd3e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,20 +26,20 @@ import org.onap.aaf.misc.env.TimeTaken;
 
 public interface Parse<IN, S> {
     public Parsed<S> parse(IN in, Parsed<S> parsed) throws ParseException;
-    
+
     // EVENTS
     public static final char NONE = 0;
     public static final char START_DOC = 1;
     public static final char END_DOC = 2;
     public static final char ATTRIB = 3;
-    
+
     public static final char NEXT = ',';
     public static final char START_OBJ = '{';
     public static final char END_OBJ = '}';
     public static final char START_ARRAY = '[';
     public static final char END_ARRAY = ']';
-    
+
     public Parsed<S> newParsed() throws ParseException;
-    public TimeTaken start(Env env); 
-    
+    public TimeTaken start(Env env);
+
 }
index 38ea956..8b1dd8f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index 29a86de..739d8e5 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -24,9 +24,9 @@ package org.onap.aaf.misc.rosetta;
 
 public class Parsed<S> {
     public static final String EXTENSION_TAG="extension";
-    
+
     public boolean isString;
-    
+
     public StringBuilder sb;
     public char event;
     public String name;
@@ -48,7 +48,7 @@ public class Parsed<S> {
     public boolean valid() {
         return event!=Parse.NONE;
     }
-    
+
     public Parsed<S> reuse() {
         isString=false;
         sb.setLength(0);
@@ -70,7 +70,7 @@ public class Parsed<S> {
     public boolean hasData() {
         return sb.length()>0;
     }
-    
+
     public String toString() {
         StringBuilder sb2 = new StringBuilder();
         if (event<40)sb2.append((int)event);
index d46fc8b..4d414c3 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,13 +28,13 @@ class Prop {
         tag = t;
         value =v;
     }
-    
+
     public Prop(String t_equals_v) {
         String[] tv = t_equals_v.split("=");
         if (tv.length>1) {
             tag = tv[0];
             value = tv[1];
-        }                
+        }
     }
 
     public String toString() {
index efb4ce4..5e88e3a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,9 +31,9 @@ import org.onap.aaf.misc.env.TimeTaken;
 import org.onap.aaf.misc.rosetta.Saved.State;
 
 /**
- * An Out Object that will save off produced Parsed Stream and 
+ * An Out Object that will save off produced Parsed Stream and
  * a Parse (In) Object that will reproduce Parsed Stream on demand
- *  
+ *
  * @author Jonathan
  *
  */
@@ -43,7 +43,7 @@ public class Saved extends Out implements Parse<Reader, State>{
     private Content content[];
     private int idx;
     private boolean append = false;
-    
+
     /**
      * Read from Parsed Stream and save
      */
@@ -59,7 +59,7 @@ public class Saved extends Out implements Parse<Reader, State>{
                 content[idx]=null;
             } while (--idx>=0);
         }
-        
+
         // Note: idx needs to be -1 on initialization and no appendages
         while ((p = parser.parse(in,p.reuse())).valid()) {
             if (!(append && (p.event==START_DOC || p.event==END_DOC))) { // skip any start/end of document in appendages
@@ -72,14 +72,14 @@ public class Saved extends Out implements Parse<Reader, State>{
             }
         }
     }
-    
+
     // @Override
     public Parsed<State> parse(Reader ignore, Parsed<State> parsed) throws ParseException {
         int i;
-        if ((i=parsed.state.count++)<=idx) 
+        if ((i=parsed.state.count++)<=idx)
             content[i].load(parsed);
-        else 
-            parsed.event = Parse.NONE; 
+        else
+            parsed.event = Parse.NONE;
         return parsed;
     }
 
@@ -113,14 +113,14 @@ public class Saved extends Out implements Parse<Reader, State>{
     public static class State {
         public int count = 0;
     }
-    
+
     public static class Content {
         private boolean isString;
         private char event;
         private String name;
         private List<Prop> props;
         private String str;
-        
+
         public Content(Parsed<?> p) {
             isString = p.isString;
             event = p.event;
@@ -137,7 +137,7 @@ public class Saved extends Out implements Parse<Reader, State>{
             if (str!=null)
                 p.sb.append(str);
         }
-        
+
         public String toString() {
             StringBuilder sb = new StringBuilder();
             sb.append(event);
@@ -161,7 +161,7 @@ public class Saved extends Out implements Parse<Reader, State>{
             return sb.toString();
         }
     }
-    
+
     //// @Override
     public Parsed<State> newParsed() {
         Parsed<State> ps = new Parsed<State>(new State());
@@ -184,7 +184,7 @@ public class Saved extends Out implements Parse<Reader, State>{
     public TimeTaken start(Env env) {
         return env.start(ROSETTA_SAVED, 0);
     }
-    
+
     @Override
     public String logName() {
         return ROSETTA_SAVED;
index 3007ea9..15f4205 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -28,7 +28,7 @@ import java.util.TreeMap;
 
 public class XmlEscape {
     private XmlEscape() {}
-    
+
     private static final TreeMap<String,Integer> charMap; // see initialization at end
     private static final TreeMap<Integer,String> intMap; // see initialization at end
 
@@ -38,7 +38,7 @@ public class XmlEscape {
             StringBuilder esc = new StringBuilder();
             for (int cnt = 0;cnt<9 /*max*/; ++cnt) {
                 if ((c=r.read())<0)throw new ParseException("Invalid Data: Unfinished Escape Sequence");
-                if (c!=';') { 
+                if (c!=';') {
                     esc.append((char)c);
                 } else { // evaluate
                     Integer i = charMap.get(esc.toString());
@@ -53,19 +53,19 @@ public class XmlEscape {
                     break;
                 }
             }
-            
-            
+
+
         } catch (IOException e) {
             throw new ParseException(e);
         }
     }
-    
+
     public static void xmlEscape(StringBuilder sb, int chr) {
         sb.append('&');
         sb.append(intMap.get(chr));
         sb.append(';');
     }
-    
+
     public static String convert(StringBuilder insb) {
         int idx, ch;
         StringBuilder sb=null;
@@ -77,9 +77,9 @@ public class XmlEscape {
                 break;
             }
         }
-        
+
         if (sb==null)return insb.toString();
-            
+
         for (int i=idx;i<insb.length();++i) {
             ch = insb.charAt(i);
             if (ch<160) {
@@ -361,7 +361,7 @@ public class XmlEscape {
         charMap.put("clubs",9827);
         charMap.put("hearts",9829);
         charMap.put("diams",9830);
-        
+
         for ( Entry<String, Integer> es: charMap.entrySet()) {
             if (es.getValue()>=160); // save small space... note that no longer has amp, etc.
             intMap.put(es.getValue(), es.getKey());
index a95da8e..b12cce0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -56,18 +56,18 @@ import org.onap.aaf.misc.rosetta.ParseException;
 import org.onap.aaf.misc.rosetta.marshal.DocMarshal;
 
 public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
-    
+
     static InJson inJSON = new InJson();
     InXML  inXML;
 
     static OutJson outJSON = new OutJson();
     OutXML outXML;
     static OutRaw outRAW = new OutRaw();
-    
+
     // Temporary until we write JAXB impl...
     JAXBmar jaxMar;
     JAXBumar jaxUmar;
-    
+
     private Parse<Reader,?> defaultIn;
     private Out defaultOut;
     private RosettaEnv env;
@@ -75,7 +75,7 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
     private TYPE outType;
     private int defOption;
     Marshal<T> marshal = null;
-    
+
 
     /**
      * Private constructor to setup Type specific data manipulators
@@ -92,13 +92,13 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
     RosettaDF(RosettaEnv env, Schema schema, String rootNs, Class<T> cls) throws APIException {
         this.env = env;
         try {
-        // Note: rootNs can be null, in order to derive content from Class.  
+        // Note: rootNs can be null, in order to derive content from Class.
         JaxInfo ji = rootNs==null?JaxInfo.build(cls):JaxInfo.build(cls,rootNs);
         // Note: JAXBmar sets qname to null if not exists
         jaxMar = new JAXBmar(rootNs==null?null:new QName("xmlns",rootNs),cls);
         // Note: JAXBumar sets schema to null if not exists
         jaxUmar = new JAXBumar(schema, cls);
-        
+
         defaultIn = inXML = new InXML(ji);
         defaultOut = outXML = new OutXML(ji);
         inType=outType=Data.TYPE.XML;
@@ -107,11 +107,11 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
             throw new APIException(e);
         }
     }
-    
+
 
     // @Override
     public RosettaData<T> newData() {
-        RosettaData<T> data = new RosettaData<T>(env, this)            
+        RosettaData<T> data = new RosettaData<T>(env, this)
             .in(inType)
             .out(outType)
             .option(defOption);
@@ -141,7 +141,7 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
 
     /**
      * If exists, first option is "Pretty", second is "Fragment"
-     * 
+     *
      * @param options
      * @return
      */
@@ -150,7 +150,7 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
         defaultOut = getOut(type==Data.TYPE.DEFAULT?Data.TYPE.JSON:type);
         return this;
     }
-    
+
     public Parse<Reader,?> getIn(Data.TYPE type) {
         switch(type) {
             case DEFAULT:
@@ -163,7 +163,7 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
                 return defaultIn;
         }
     }
-    
+
     public Out getOut(Data.TYPE type) {
         switch(type) {
             case DEFAULT:
@@ -178,7 +178,7 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
                 return defaultOut;
         }
     }
-    
+
     public int logType(org.onap.aaf.misc.env.Data.TYPE ot) {
         switch(ot) {
             case JSON:
@@ -204,15 +204,15 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
 
     public RosettaDF<T> option(int option) {
         defOption = option;
-        
+
         return this;
     }
 
     /**
      * Assigning Root Marshal Object
-     * 
+     *
      * Will wrap with DocMarshal Object if not already
-     * 
+     *
      * @param marshal
      * @return
      */
@@ -224,7 +224,7 @@ public class RosettaDF<T> extends BaseDataFactory implements DataFactory<T>  {
         }
         return this;
     }
-    
+
     public void direct(Trans trans, T t, OutputStream os, boolean ... options) throws APIException, IOException {
         Out out = getOut(outType);
         TimeTaken tt = trans.start(out.logName(),logType(outType)); // determine from Out.. without dependency on Env?
index 36ebde6..006e813 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -48,7 +48,7 @@ public class RosettaData<T> implements Data<T>{
     private boolean options[] = new boolean[] {false, false};
     // Temp Storage of XML.  Only when we must use JAXB to read in Objects
     private String xml,json;
-    
+
     // package on purpose
     RosettaData(Env env, RosettaDF<T> rosettaDF) {
         df = rosettaDF;
@@ -57,7 +57,7 @@ public class RosettaData<T> implements Data<T>{
         inType = df.getInType();
         outType = df.getOutType(); // take defaults
     }
-    
+
     //Added for junits
     void setSaved(Saved saved) {
         this.saved = saved;
@@ -68,7 +68,7 @@ public class RosettaData<T> implements Data<T>{
         inType = rosettaType;
         return this;
     }
-    
+
 //    // @Override
     public RosettaData<T> out(TYPE rosettaType) {
         outType = rosettaType;
@@ -89,7 +89,7 @@ public class RosettaData<T> implements Data<T>{
         }
         return this;
     }
-    
+
     // @Override
     public RosettaData<T> load(InputStream is) throws APIException {
         Parse<Reader,?> in = df.getIn(inType);
@@ -119,7 +119,7 @@ public class RosettaData<T> implements Data<T>{
                     json = str;
                     break;
                 default:
-                    
+
                 }
         } catch (Exception e) {
             throw new APIException(e);
@@ -152,7 +152,7 @@ public class RosettaData<T> implements Data<T>{
     public Saved getEvents() {
         return saved;
     }
-    
+
     // @Override
     public T asObject() throws APIException {
         Out out = df.getOut(TYPE.XML);
@@ -206,7 +206,7 @@ public class RosettaData<T> implements Data<T>{
                 os.write(xml.getBytes());
             } else if (outType==TYPE.JSON && json!=null) {
                 os.write(json.getBytes());
-            } else { 
+            } else {
                 out.extract(null, os, saved, options);
             }
         } catch (Exception e) {
@@ -226,7 +226,7 @@ public class RosettaData<T> implements Data<T>{
                 writer.append(xml);
             } else if (outType==TYPE.JSON && json!=null) {
                 writer.append(json);
-            } else { 
+            } else {
                 out.extract(null, writer, saved, options);
             }
         } catch (Exception e) {
@@ -236,18 +236,18 @@ public class RosettaData<T> implements Data<T>{
         }
         return this;
     }
-    
+
     // @Override
     public Class<T> getTypeClass() {
         return df.getTypeClass();
     }
 
     private static final boolean[] emptyOption = new boolean[0];
-    
+
     public void direct(InputStream is, OutputStream os) throws APIException, IOException {
         direct(is,os,emptyOption);
     }
-    
+
     public void direct(Reader reader, Writer writer, boolean ... options) throws APIException, IOException {
         Parse<Reader,?> in = df.getIn(inType);
         Out out = df.getOut(outType);
@@ -302,7 +302,7 @@ public class RosettaData<T> implements Data<T>{
         }
     }
 
-    
+
     public void direct(InputStream is, OutputStream os, boolean ... options) throws APIException, IOException {
         direct(new InputStreamReader(is),new OutputStreamWriter(os), options);
     }
index 43855d6..62d7bc1 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,7 +32,7 @@ import org.onap.aaf.misc.env.APIException;
 /**
  * An essential Implementation of Env, which will fully function, without any sort
  * of configuration.
- * 
+ *
  * Use as a basis for Group level Env, just overriding where needed.
  * @author Jonathan
  *
@@ -62,7 +62,7 @@ public class RosettaEnv extends org.onap.aaf.misc.env.impl.BasicEnv {
     public RosettaEnv(Properties props) {
         super(props);
     }
-    
+
     @SuppressWarnings("unchecked")
     @Override
     public <T> RosettaDF<T> newDataFactory(Class<?>... classes) throws APIException {
index 0617e01..e546d6d 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,38 +26,38 @@ import javax.xml.datatype.XMLGregorianCalendar;
 import org.onap.aaf.misc.env.util.Chrono;
 
 /**
- * We make these objects instead of static functions so they can be passed into 
+ * We make these objects instead of static functions so they can be passed into
  * FieldArray.
- * 
+ *
  * @author Jonathan
  *
  * @param <T>
  */
 public abstract class DataWriter<T> {
     public abstract boolean write(T t, StringBuilder sb);
-    
+
     public final static DataWriter<String> STRING = new DataWriter<String>() {
         @Override
         public boolean write(String s, StringBuilder sb) {
             sb.append(s);
             return true;
-        }        
+        }
     };
-    
+
     public final static DataWriter<Integer> INTEGER = new DataWriter<Integer>() {
         @Override
         public boolean write(Integer i, StringBuilder sb) {
             sb.append(i);
             return false;
-        }        
+        }
     };
-    
+
     public final static DataWriter<Long> LONG = new DataWriter<Long>() {
         @Override
         public boolean write(Long t, StringBuilder sb) {
             sb.append(t);
             return false;
-        }        
+        }
     };
 
     public final static DataWriter<Byte> BYTE = new DataWriter<Byte>() {
@@ -65,7 +65,7 @@ public abstract class DataWriter<T> {
         public boolean write(Byte t, StringBuilder sb) {
             sb.append(t);
             return false;
-        }        
+        }
     };
 
     public final static DataWriter<Character> CHAR = new DataWriter<Character>() {
@@ -73,7 +73,7 @@ public abstract class DataWriter<T> {
         public boolean write(Character t, StringBuilder sb) {
             sb.append(t);
             return true;
-        }        
+        }
     };
 
     public final static DataWriter<Boolean> BOOL = new DataWriter<Boolean>() {
@@ -81,7 +81,7 @@ public abstract class DataWriter<T> {
         public boolean write(Boolean t, StringBuilder sb) {
             sb.append(t);
             return true;
-        }        
+        }
     };
 
 
@@ -99,7 +99,7 @@ public abstract class DataWriter<T> {
 //            }
             return true;
         }
-        
+
     };
     */
 
@@ -110,7 +110,7 @@ public abstract class DataWriter<T> {
             return true;
         }
     };
-    
+
     public final static DataWriter<XMLGregorianCalendar> DATE_TIME = new DataWriter<XMLGregorianCalendar>() {
         @Override
         public boolean write(XMLGregorianCalendar t, StringBuilder sb) {
@@ -123,7 +123,7 @@ public abstract class DataWriter<T> {
     public final static DataWriter<byte[]> HEX_BINARY = new DataWriter<byte[]>() {
         @Override
         public boolean write(byte[] ba, StringBuilder sb) {
-            // FYI, doing this because don't want intermediate 
+            // FYI, doing this because don't want intermediate
             // String in "HexString" or the processing in
             // "String.format"
             //sb.append("0x");
index 1fa1701..1a7ec97 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,11 +31,11 @@ import org.onap.aaf.misc.rosetta.Parsed;
 
 public class DocMarshal<T> extends Marshal<T> {
     private Marshal<T> root;
-    
+
     public DocMarshal(Marshal<T> root) {
         this.root = root;
     }
-    
+
     @Override
     public Parsed<State> parse(T t, Parsed<State> parsed) throws ParseException {
         Ladder<Iterator<?>> ladder = parsed.state.ladder;
index abc19b2..d91286a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,7 +38,7 @@ public abstract class FieldArray<T,S> extends Marshal<T> {
         this.name = name;
         dataWriter = dw;
     }
-    
+
     @SuppressWarnings("unchecked")
     @Override
     public Parsed<State> parse(T t, Parsed<State> parsed) throws ParseException {
@@ -69,7 +69,7 @@ public abstract class FieldArray<T,S> extends Marshal<T> {
                 } else {
                     mem=null;
                 }
-                
+
                 if (mem!=null) {
                     parsed.isString=dataWriter.write(mem, parsed.sb);
                     parsed.event = NEXT;
index 34fa5dd..9849bf4 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,12 +26,12 @@ public abstract class FieldBlob<T> extends FieldMarshal<T>{
         super(name);
     }
 
-    protected abstract byte[] data(T t); 
+    protected abstract byte[] data(T t);
 
     @Override
     protected boolean data(T t, StringBuilder sb) {
         return false;
-        // unimplemented 
+        // unimplemented
         //return DataWriter.BYTE_ARRAY.write(data(t),sb);
     }
 
index 2418d7a..e0f837a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,5 +33,5 @@ public abstract class FieldDate<T> extends FieldMarshal<T> {
         return DataWriter.DATE.write(data(t), sb);
     }
 
-    protected abstract XMLGregorianCalendar data(T t); 
+    protected abstract XMLGregorianCalendar data(T t);
 }
index ae12561..aa7623c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,5 +33,5 @@ public abstract class FieldDateTime<T> extends FieldMarshal<T> {
         return DataWriter.DATE_TIME.write(data(t), sb);
     }
 
-    protected abstract XMLGregorianCalendar data(T t); 
+    protected abstract XMLGregorianCalendar data(T t);
 }
index fa9e632..668aede 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,7 +26,7 @@ public abstract class FieldHexBinary<T> extends FieldMarshal<T>{
         super(name);
     }
 
-    protected abstract byte[] data(T t); 
+    protected abstract byte[] data(T t);
 
     @Override
     protected boolean data(T t, StringBuilder sb) {
index 2e77618..d76c65a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,11 +32,11 @@ public abstract class FieldMarshal<T> extends Marshal<T> {
     public FieldMarshal(String name) {
         this.name = name;
     }
-    
+
     public String getName() {
         return name;
     }
-    
+
     @Override
     public Parsed<State> parse(T t, Parsed<State> parsed) {
         parsed.state.ladder.push(DONE_ITERATOR);
@@ -55,5 +55,5 @@ public abstract class FieldMarshal<T> extends Marshal<T> {
      * @return
      */
     protected abstract boolean data(T t, StringBuilder sb);
-    
+
 }
\ No newline at end of file
index 0a5c28a..072775b 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -32,5 +32,5 @@ public abstract class FieldNumeric<N,T> extends FieldMarshal<T> {
         return false;
     }
 
-    protected abstract N data(T t); 
+    protected abstract N data(T t);
 }
index e96b696..d0b1e48 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -26,7 +26,7 @@ public abstract class FieldString<T> extends FieldMarshal<T> {
         super(name);
     }
 
-    protected abstract String data(T t); 
+    protected abstract String data(T t);
 
     @Override
     final protected boolean data(T t, StringBuilder sb) {
index ed8b98c..4bc2344 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -35,7 +35,7 @@ final class ListIterator<T> implements Iterator<T> {
     private Iterator<T> delg;
     public ListIterator(List<T> list) {
         curr = null;
-        delg = list.iterator(); 
+        delg = list.iterator();
     }
     @Override
     public boolean hasNext() {
@@ -46,7 +46,7 @@ final class ListIterator<T> implements Iterator<T> {
     public T next() {
         return curr = delg.hasNext()?delg.next():null;
     }
-    
+
     public T peek() {
         return curr==null?next():curr;
     }
@@ -55,5 +55,5 @@ final class ListIterator<T> implements Iterator<T> {
     public void remove() {
         delg.remove();
     }
-    
+
 }
\ No newline at end of file
index 9c64e83..f668523 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index d96a44d..3f5d373 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -41,23 +41,23 @@ public abstract class ObjMarshal<T> extends Marshal<T> {
     // Note: Not Using List or ArrayList, because there is no "Peek" concept in their iterator.
     private Marshal<T>[] pml;
     private int end=0;
-    
+
     /**
      * @param pm
      */
     @SuppressWarnings("unchecked")
     protected void add(Marshal<T> pm) {
         if (pml==null) {
-            pml = new Marshal[Ladder.DEFAULT_INIT_SIZE]; 
+            pml = new Marshal[Ladder.DEFAULT_INIT_SIZE];
         } else if (end>pml.length) {
-            Object temp[] = pml; 
+            Object temp[] = pml;
             pml = new Marshal[pml.length+Ladder.DEFAULT_INIT_SIZE];
             System.arraycopy(temp, 0, pml, 0, pml.length);
         }
         pml[end]=pm;
         ++end;
     }
-    
+
     /* (non-Javadoc)
      * @see org.onap.aaf.misc.rosetta.Parse#parse(java.lang.Object, org.onap.aaf.misc.rosetta.Parsed)
      */
@@ -120,12 +120,12 @@ public abstract class ObjMarshal<T> extends Marshal<T> {
         public Marshal<T> peek() {
             return idx<0?null:pml[idx];
         }
-        
+
         @Override
         public void remove() {
             pml[idx]=null;
         }
-        
+
     }
 
 }
index 1a31b0f..83972f9 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -43,7 +43,7 @@ public class JU_ParseException {
         ParseException pe = new ParseException("exception",new NullPointerException("exception"));
         }
 
-    
-    
+
+
 
 }
index 2074435..e7d0740 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
  *
  */
 //
-// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2 
-// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a> 
-// Any modifications to this file will be lost upon recompilation of the source schema. 
-// Generated on: 2018.12.09 at 10:14:23 PM IST 
+// This file was generated by the JavaTM Architecture for XML Binding(JAXB) Reference Implementation, v2.2.5-2
+// See <a href="http://java.sun.com/xml/jaxb">http://java.sun.com/xml/jaxb</a>
+// Any modifications to this file will be lost upon recompilation of the source schema.
+// Generated on: 2018.12.09 at 10:14:23 PM IST
 //
 
 
@@ -39,9 +39,9 @@ import javax.xml.bind.annotation.XmlType;
 
 /**
  * <p>Java class for anonymous complex type.
- * 
+ *
  * <p>The following schema fragment specifies the expected content contained within this class.
- * 
+ *
  * <pre>
  * &lt;complexType>
  *   &lt;complexContent>
@@ -70,8 +70,8 @@ import javax.xml.bind.annotation.XmlType;
  *   &lt;/complexContent>
  * &lt;/complexType>
  * </pre>
- * 
- * 
+ *
+ *
  */
 @XmlAccessorType(XmlAccessType.FIELD)
 @XmlType(name = "", propOrder = {
@@ -84,25 +84,25 @@ public class Api {
 
     /**
      * Gets the value of the route property.
-     * 
-     * <p>
+     *
+     *
      * This accessor method returns a reference to the live list,
      * not a snapshot. Therefore any modification you make to the
      * returned list will be present inside the JAXB object.
      * This is why there is not a <CODE>set</CODE> method for the route property.
-     * 
-     * <p>
+     *
+     *
      * For example, to add a new item, do as follows:
      * <pre>
      *    getRoute().add(newItem);
      * </pre>
-     * 
-     * 
-     * <p>
+     *
+     *
+     *
      * Objects of the following type(s) are allowed in the list
      * {@link Api.Route }
-     * 
-     * 
+     *
+     *
      */
     public List<Api.Route> getRoute() {
         if (route == null) {
@@ -114,9 +114,9 @@ public class Api {
 
     /**
      * <p>Java class for anonymous complex type.
-     * 
+     *
      * <p>The following schema fragment specifies the expected content contained within this class.
-     * 
+     *
      * <pre>
      * &lt;complexType>
      *   &lt;complexContent>
@@ -135,8 +135,8 @@ public class Api {
      *   &lt;/complexContent>
      * &lt;/complexType>
      * </pre>
-     * 
-     * 
+     *
+     *
      */
     @XmlAccessorType(XmlAccessType.FIELD)
     @XmlType(name = "", propOrder = {
@@ -166,11 +166,11 @@ public class Api {
 
         /**
          * Gets the value of the meth property.
-         * 
+         *
          * @return
          *     possible object is
          *     {@link String }
-         *     
+         *
          */
         public String getMeth() {
             return meth;
@@ -178,11 +178,11 @@ public class Api {
 
         /**
          * Sets the value of the meth property.
-         * 
+         *
          * @param value
          *     allowed object is
          *     {@link String }
-         *     
+         *
          */
         public void setMeth(String value) {
             this.meth = value;
@@ -190,11 +190,11 @@ public class Api {
 
         /**
          * Gets the value of the path property.
-         * 
+         *
          * @return
          *     possible object is
          *     {@link String }
-         *     
+         *
          */
         public String getPath() {
             return path;
@@ -202,11 +202,11 @@ public class Api {
 
         /**
          * Sets the value of the path property.
-         * 
+         *
          * @param value
          *     allowed object is
          *     {@link String }
-         *     
+         *
          */
         public void setPath(String value) {
             this.path = value;
@@ -214,25 +214,25 @@ public class Api {
 
         /**
          * Gets the value of the param property.
-         * 
-         * <p>
+         *
+         *
          * This accessor method returns a reference to the live list,
          * not a snapshot. Therefore any modification you make to the
          * returned list will be present inside the JAXB object.
          * This is why there is not a <CODE>set</CODE> method for the param property.
-         * 
-         * <p>
+         *
+         *
          * For example, to add a new item, do as follows:
          * <pre>
          *    getParam().add(newItem);
          * </pre>
-         * 
-         * 
-         * <p>
+         *
+         *
+         *
          * Objects of the following type(s) are allowed in the list
          * {@link String }
-         * 
-         * 
+         *
+         *
          */
         public List<String> getParam() {
             if (param == null) {
@@ -243,11 +243,11 @@ public class Api {
 
         /**
          * Gets the value of the desc property.
-         * 
+         *
          * @return
          *     possible object is
          *     {@link String }
-         *     
+         *
          */
         public String getDesc() {
             return desc;
@@ -255,11 +255,11 @@ public class Api {
 
         /**
          * Sets the value of the desc property.
-         * 
+         *
          * @param value
          *     allowed object is
          *     {@link String }
-         *     
+         *
          */
         public void setDesc(String value) {
             this.desc = value;
@@ -267,25 +267,25 @@ public class Api {
 
         /**
          * Gets the value of the comments property.
-         * 
-         * <p>
+         *
+         *
          * This accessor method returns a reference to the live list,
          * not a snapshot. Therefore any modification you make to the
          * returned list will be present inside the JAXB object.
          * This is why there is not a <CODE>set</CODE> method for the comments property.
-         * 
-         * <p>
+         *
+         *
          * For example, to add a new item, do as follows:
          * <pre>
          *    getComments().add(newItem);
          * </pre>
-         * 
-         * 
-         * <p>
+         *
+         *
+         *
          * Objects of the following type(s) are allowed in the list
          * {@link String }
-         * 
-         * 
+         *
+         *
          */
         public List<String> getComments() {
             if (comments == null) {
@@ -296,25 +296,25 @@ public class Api {
 
         /**
          * Gets the value of the contentType property.
-         * 
-         * <p>
+         *
+         *
          * This accessor method returns a reference to the live list,
          * not a snapshot. Therefore any modification you make to the
          * returned list will be present inside the JAXB object.
          * This is why there is not a <CODE>set</CODE> method for the contentType property.
-         * 
-         * <p>
+         *
+         *
          * For example, to add a new item, do as follows:
          * <pre>
          *    getContentType().add(newItem);
          * </pre>
-         * 
-         * 
-         * <p>
+         *
+         *
+         *
          * Objects of the following type(s) are allowed in the list
          * {@link String }
-         * 
-         * 
+         *
+         *
          */
         public List<String> getContentType() {
             if (contentType == null) {
@@ -325,7 +325,7 @@ public class Api {
 
         /**
          * Gets the value of the expected property.
-         * 
+         *
          */
         public int getExpected() {
             return expected;
@@ -333,7 +333,7 @@ public class Api {
 
         /**
          * Sets the value of the expected property.
-         * 
+         *
          */
         public void setExpected(int value) {
             this.expected = value;
@@ -341,25 +341,25 @@ public class Api {
 
         /**
          * Gets the value of the explicitErr property.
-         * 
-         * <p>
+         *
+         *
          * This accessor method returns a reference to the live list,
          * not a snapshot. Therefore any modification you make to the
          * returned list will be present inside the JAXB object.
          * This is why there is not a <CODE>set</CODE> method for the explicitErr property.
-         * 
-         * <p>
+         *
+         *
          * For example, to add a new item, do as follows:
          * <pre>
          *    getExplicitErr().add(newItem);
          * </pre>
-         * 
-         * 
-         * <p>
+         *
+         *
+         *
          * Objects of the following type(s) are allowed in the list
          * {@link Integer }
-         * 
-         * 
+         *
+         *
          */
         public List<Integer> getExplicitErr() {
             if (explicitErr == null) {
index 9ab3b25..0d942e0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,21 +58,21 @@ public class JU_RosettaData {
 
     @Mock
     Env env;
-    
+
     @Mock
     RosettaDF df;
-    
+
     @Mock
     JAXBmar bmar;
-    
+
     @Mock
     Saved saved;
-    
+
     @Before
     public void setUp() {
         initMocks(this);
     }
-    
+
     @Test
     public void testLoad() {
         RosettaData rosettaObj = new RosettaData(env, df);
@@ -84,14 +84,14 @@ public class JU_RosettaData {
             Mockito.doReturn(inxml).when(df).getIn(Data.TYPE.XML);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(sr,(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load(sr);
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testLoadException() {
         RosettaData rosettaObj = new RosettaData(env, df);
@@ -105,7 +105,7 @@ public class JU_RosettaData {
             assertTrue(e.getMessage().contains("NullPointerException"));
         }
     }
-    
+
     @Test
     public void testLoadIs() {
         RosettaData rosettaObj = new RosettaData(env, df);
@@ -117,14 +117,14 @@ public class JU_RosettaData {
             Mockito.doReturn(inxml).when(df).getIn(Data.TYPE.XML);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(new InputStreamReader(sr),(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load(sr);
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testLoadIsException() {
         RosettaData rosettaObj = new RosettaData(env, df);
@@ -138,7 +138,7 @@ public class JU_RosettaData {
             assertTrue(e.getMessage().contains("NullPointerException"));
         }
     }
-    
+
     @Test
     public void testLoadStr() {
         RosettaData rosettaObj = new RosettaData(env, df);
@@ -149,7 +149,7 @@ public class JU_RosettaData {
             Mockito.doReturn(inxml).when(df).getIn(Data.TYPE.XML);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(new StringReader("test"),(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load("test");
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
@@ -166,7 +166,7 @@ public class JU_RosettaData {
             Mockito.doReturn(inxml).when(df).getIn(Data.TYPE.JSON);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(new StringReader("test"),(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load("test");
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
@@ -186,7 +186,7 @@ public class JU_RosettaData {
             assertTrue(e.getMessage().contains("NullPointerException"));
         }
     }
-    
+
     @Test
     public void testLoadT() {
         RosettaData rosettaObj = new RosettaData(env, df);
@@ -198,7 +198,7 @@ public class JU_RosettaData {
             df.jaxMar = Mockito.mock(JAXBmar.class);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(new StringReader("test"),(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load(bmar);
             df.marshal = null;
             rosettaObj = rosettaObj.load(bmar);
@@ -207,7 +207,7 @@ public class JU_RosettaData {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testLoadTMarshalNull() {
         RosettaData rosettaObj = new RosettaData(env, df);
@@ -226,7 +226,7 @@ public class JU_RosettaData {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testLoadTException() {
         RosettaData rosettaObj = new RosettaData(env, df);
@@ -240,14 +240,14 @@ public class JU_RosettaData {
             assertTrue(e.getMessage().contains("NullPointerException"));
         }
     }
-    
+
     @Test
     public void testGetEvents() {
         RosettaData rosettaObj = new RosettaData(env, df);
         Saved saved = rosettaObj.getEvents();
         assertEquals("Rosetta Saved", saved.logName());
     }
-    
+
     @Test
     public void testAsObject() {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
@@ -265,15 +265,15 @@ public class JU_RosettaData {
             Mockito.doReturn( lt).when(env).debug();
             Mockito.doNothing().when(saved).extract(null,new StringWriter(),saved);
             Mockito.doReturn(bmar).when(df.jaxUmar).unmarshal(lt,"");
-            
+
             bmar = rosettaObj.asObject();
-            
+
         } catch (APIException | IOException | ParseException | JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testAsObjectException() {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
@@ -291,9 +291,9 @@ public class JU_RosettaData {
             Mockito.doReturn( lt).when(env).debug();
             Mockito.doThrow(new IOException("test Exception")).when(saved).extract(null,new StringWriter(),saved);
             Mockito.doThrow(new JAXBException("test Exception")).when(df.jaxUmar).unmarshal(lt,"");
-            
+
             bmar = rosettaObj.asObject();
-            
+
         } catch (APIException | IOException | ParseException | JAXBException e) {
             assertTrue(e.getMessage().contains("test Exception"));
         }
@@ -308,12 +308,12 @@ public class JU_RosettaData {
         rosettaObj.setSaved(saved);
         try {
             Out outxml = Mockito.mock(OutXML.class);
-            
+
             Mockito.doReturn(outxml).when(df).getOut(type);
             Mockito.doReturn(Env.XML).when(df).logType(Data.TYPE.XML);
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",2);
-            
+
             String retVal = rosettaObj.asString();
             assertTrue("".equals(retVal));
         } catch (APIException  e) {
@@ -321,7 +321,7 @@ public class JU_RosettaData {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testAsStringJson() {
         TYPE type = TYPE.JSON;
@@ -331,12 +331,12 @@ public class JU_RosettaData {
         rosettaObj.setSaved(saved);
         try {
             Out outxml = Mockito.mock(OutXML.class);
-            
+
             Mockito.doReturn(outxml).when(df).getOut(type);
             Mockito.doReturn(Env.JSON).when(df).logType(Data.TYPE.JSON);
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",4);
-            
+
             String retVal = rosettaObj.asString();
             assertTrue("".equals(retVal));
         } catch (APIException  e) {
@@ -351,34 +351,34 @@ public class JU_RosettaData {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
         rosettaObj = rosettaObj.in(Data.TYPE.XML);
         rosettaObj.setSaved(saved);
-        
+
         try {
             InXML inxml = Mockito.mock(InXML.class);
             Mockito.doReturn(inxml).when(df).getIn(Data.TYPE.XML);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(new StringReader("test"),(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load("test");
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         try {
             Out outxml = Mockito.mock(OutXML.class);
-            
+
             Mockito.doReturn(outxml).when(df).getOut(type);
             Mockito.doReturn(Env.XML).when(df).logType(Data.TYPE.XML);
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",2);
             RosettaData<JAXBmar> retVal = rosettaObj.to(Mockito.mock(OutputStream.class));
-            
+
         } catch (APIException | IOException  e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testToJson() {
         TYPE type = TYPE.JSON;
@@ -386,34 +386,34 @@ public class JU_RosettaData {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
         rosettaObj = rosettaObj.in(Data.TYPE.JSON);
         rosettaObj.setSaved(saved);
-        
+
         try {
             InXML inxml = Mockito.mock(InXML.class);
             Mockito.doReturn(inxml).when(df).getIn(Data.TYPE.JSON);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(new StringReader("test"),(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load("test");
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         try {
             Out outxml = Mockito.mock(OutXML.class);
-            
+
             Mockito.doReturn(outxml).when(df).getOut(type);
             Mockito.doReturn(Env.JSON).when(df).logType(Data.TYPE.JSON);
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",4);
             RosettaData<JAXBmar> retVal = rosettaObj.to(Mockito.mock(OutputStream.class));
-            
+
         } catch (APIException | IOException  e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testTo() {
         TYPE type = TYPE.XML;
@@ -421,22 +421,22 @@ public class JU_RosettaData {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
         rosettaObj = rosettaObj.in(Data.TYPE.XML);
         rosettaObj.setSaved(saved);
-        
+
         try {
             Out outxml = Mockito.mock(OutXML.class);
-            
+
             Mockito.doReturn(outxml).when(df).getOut(type);
             Mockito.doReturn(Env.XML).when(df).logType(Data.TYPE.XML);
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",2);
             RosettaData<JAXBmar> retVal = rosettaObj.to(Mockito.mock(OutputStream.class));
-            
+
         } catch (APIException | IOException  e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testToWriterXml() {
         TYPE type = TYPE.XML;
@@ -444,34 +444,34 @@ public class JU_RosettaData {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
         rosettaObj = rosettaObj.in(Data.TYPE.XML);
         rosettaObj.setSaved(saved);
-        
+
         try {
             InXML inxml = Mockito.mock(InXML.class);
             Mockito.doReturn(inxml).when(df).getIn(Data.TYPE.XML);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(new StringReader("test"),(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load("test");
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         try {
             Out outxml = Mockito.mock(OutXML.class);
-            
+
             Mockito.doReturn(outxml).when(df).getOut(type);
             Mockito.doReturn(Env.XML).when(df).logType(Data.TYPE.XML);
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",2);
             RosettaData<JAXBmar> retVal = rosettaObj.to(Mockito.mock(StringWriter.class));
-            
+
         } catch (APIException | IOException  e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testToWriterJson() {
         TYPE type = TYPE.JSON;
@@ -479,34 +479,34 @@ public class JU_RosettaData {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
         rosettaObj = rosettaObj.in(Data.TYPE.JSON);
         rosettaObj.setSaved(saved);
-        
+
         try {
             InXML inxml = Mockito.mock(InXML.class);
             Mockito.doReturn(inxml).when(df).getIn(Data.TYPE.JSON);
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(inxml).start(env);
             Mockito.doNothing().when(saved).extract(new StringReader("test"),(Writer)null,inxml);
-            
+
             rosettaObj = rosettaObj.load("test");
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
         try {
             Out outxml = Mockito.mock(OutXML.class);
-            
+
             Mockito.doReturn(outxml).when(df).getOut(type);
             Mockito.doReturn(Env.JSON).when(df).logType(Data.TYPE.JSON);
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",4);
             RosettaData<JAXBmar> retVal = rosettaObj.to(Mockito.mock(StringWriter.class));
-            
+
         } catch (APIException | IOException  e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testToWriter() {
         TYPE type = TYPE.XML;
@@ -514,28 +514,28 @@ public class JU_RosettaData {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
         rosettaObj = rosettaObj.in(Data.TYPE.XML);
         rosettaObj.setSaved(saved);
-        
+
         try {
             Out outxml = Mockito.mock(OutXML.class);
-            
+
             Mockito.doReturn(outxml).when(df).getOut(type);
             Mockito.doReturn(Env.XML).when(df).logType(Data.TYPE.XML);
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",2);
             RosettaData<JAXBmar> retVal = rosettaObj.to(Mockito.mock(StringWriter.class));
-            
+
         } catch (APIException | IOException  e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testGetTypeClass() {
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
         rosettaObj.getTypeClass();
     }
-    
+
     @Test
     public void testDirect() {
         TYPE type = TYPE.XML;
@@ -553,7 +553,7 @@ public class JU_RosettaData {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testDirectException() {
         TYPE type = TYPE.XML;
@@ -561,11 +561,11 @@ public class JU_RosettaData {
         Mockito.doReturn(type).when(df).getInType();
         RosettaData<JAXBmar> rosettaObj = new RosettaData<JAXBmar>(env, df);
         InXML inxml = null;
-        
+
         inxml = Mockito.mock(InXML.class);
         Mockito.doReturn(inxml).when(df).getIn(type);
-            
-        
+
+
         StringReader is = Mockito.mock(StringReader.class);
         StringWriter os= Mockito.mock(StringWriter.class);
         try {
@@ -575,14 +575,14 @@ public class JU_RosettaData {
             Mockito.doReturn("test").when(outxml).logName();
             Mockito.doReturn( Mockito.mock(TimeTaken.class)).when(env).start("test",2);
             Mockito.doThrow( new IOException("testException")).when(outxml).extract(is, os, inxml, true);
-            
+
             rosettaObj.direct(is,os, true);
         } catch (APIException | IOException | ParseException e) {
             // TODO Auto-generated catch block
             assertTrue(e.getMessage().contains("testException"));
         }
     }
-    
+
     @Test
     public void testDirectT() {
         TYPE type = TYPE.XML;
@@ -599,7 +599,7 @@ public class JU_RosettaData {
             LogTarget lt = Mockito.mock(LogTarget.class);
             Mockito.doReturn( lt).when(env).debug();
             Mockito.doReturn(bmar).when(df.jaxMar).marshal(lt,bmar, new StringWriter(),true);
-            
+
             rosettaObj.direct(bmar, Mockito.mock(StringWriter.class), true);
             df.marshal =Mockito.mock(Marshal.class);;
             rosettaObj.direct(bmar, Mockito.mock(StringWriter.class), true);
@@ -608,7 +608,7 @@ public class JU_RosettaData {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testDirectTOS() {
         TYPE type = TYPE.XML;
@@ -625,7 +625,7 @@ public class JU_RosettaData {
             LogTarget lt = Mockito.mock(LogTarget.class);
             Mockito.doReturn( lt).when(env).debug();
             Mockito.doReturn(bmar).when(df.jaxMar).marshal(lt,bmar, new StringWriter(),true);
-            
+
             rosettaObj.direct(bmar, Mockito.mock(OutputStream.class), true);
             df.marshal =Mockito.mock(Marshal.class);;
             rosettaObj.direct(bmar, Mockito.mock(OutputStream.class), true);
@@ -634,7 +634,7 @@ public class JU_RosettaData {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testDirectTOSJson() {
         TYPE type = TYPE.JSON;
@@ -651,13 +651,13 @@ public class JU_RosettaData {
             LogTarget lt = Mockito.mock(LogTarget.class);
             Mockito.doReturn( lt).when(env).debug();
             Mockito.doReturn(bmar).when(df.jaxMar).marshal(lt,bmar, new StringWriter(),true);
-            
+
             rosettaObj.direct(bmar, Mockito.mock(OutputStream.class), true);
         } catch (APIException | IOException | JAXBException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
-    
+
 
 }
index c877151..631abc0 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,7 +45,7 @@ public class JU_RosettaEnv {
     public void setUp() {
         initMocks(this);
     }
-    
+
     @Test
     public void testNewDataFactoryClass() {
         RosettaEnv rosettaObj = new RosettaEnv();
@@ -57,7 +57,7 @@ public class JU_RosettaEnv {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testNewDataFactorySchema() {
         RosettaEnv rosettaObj = new RosettaEnv(Mockito.mock(Applet.class),"test");
@@ -69,7 +69,7 @@ public class JU_RosettaEnv {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testNewDataFactoryQname() {
         RosettaEnv rosettaObj = new RosettaEnv(new String[] {"test"});
@@ -82,7 +82,7 @@ public class JU_RosettaEnv {
             e.printStackTrace();
         }
     }
-    
+
     @Test
     public void testNewDataFactoryQnameSchema() {
         RosettaEnv rosettaObj = new RosettaEnv("test", new String[] {"test"});
index 5b7875f..a7f8f11 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -38,7 +38,7 @@ public class JU_FieldBlob {
             // TODO Auto-generated method stub
             return null;
         }
-        
+
     }
     @Test
     public void testData() {
index 6756512..d36862e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,18 +58,18 @@ public class JU_FromJSON {
         new OutRaw().extract(new StringReader(str),sbw,inJSON);
         System.out.println(sbw.getBuffer());
     }
-    
+
     @Test
     public void parseJSON2Dump() throws Exception {
         System.out.println("*** PARSE JSON -> Dump ***");
         System.out.println(str);
         StringBuilderWriter sbw = new StringBuilderWriter(1024);
-        
+
         new OutDump().extract(new StringReader(str), sbw, inJSON);
-        
+
         System.out.println(sbw.getBuffer());
     }
-    
+
     @Test
     public void nonprettyJSON() throws Exception {
         System.out.println("*** JSON -> (Intermediate Stream) -> Non-pretty JSON ***");
@@ -91,21 +91,21 @@ public class JU_FromJSON {
             }
             report.glean(trans,Env.JSON);
         } while (report.go());
-        
+
         String result = sbw.toString();
         System.out.println(result);
         Assert.assertEquals(result, str);
         report.report(sbw);
         System.out.println(sbw.toString());
     }
-    
+
     @Test
     public void parseJSON2JSON() throws Exception {
         System.out.println("*** JSON -> (Intermediate Stream) -> Pretty JSON ***");
         System.out.println(str);
 
         StringBuilderWriter sbw = new StringBuilderWriter(1024);
-        
+
         Out jout = new OutJson();
         Trans trans;
         Report report = new Report(ITERATIONS,"JSON");
@@ -121,7 +121,7 @@ public class JU_FromJSON {
             }
             report.glean(trans,Env.JSON);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw.toString());
     }
@@ -132,7 +132,7 @@ public class JU_FromJSON {
         System.out.println(str);
 
         StringBuilderWriter sbw = new StringBuilderWriter(1024);
-        
+
         Out xout = new OutXML("LargerData","xmlns=urn:s:xsd");
         Trans trans;
         Report report = new Report(ITERATIONS,"JSON");
@@ -148,7 +148,7 @@ public class JU_FromJSON {
             }
             report.glean(trans,Env.JSON);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw.toString());
     }
@@ -160,7 +160,7 @@ public class JU_FromJSON {
 
         StringBuilderWriter sbw = new StringBuilderWriter(1024);
         IndentPrintWriter ipw = new IndentPrintWriter(sbw);
-        
+
         Out xout = new OutXML("LargerData","xmlns=urn:s:xsd");
         Trans trans;
         Report report = new Report(ITERATIONS,"JSON");
@@ -176,12 +176,12 @@ public class JU_FromJSON {
             }
             report.glean(trans,Env.JSON);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw.toString());
     }
-    
-        
+
+
     @Test
     public void jaxbObj2XML() throws Exception {
         System.out.println("*** JAXB Object -> XML ***");
@@ -200,7 +200,7 @@ public class JU_FromJSON {
         sd.getItem().add("Item 2.2");
         ld.getSampleData().add(sd);
         ld.setFluff("MyFluff");
-        
+
         JAXBmar jaxBmar = new JAXBmar(LargerData.class);
         //jaxBmar.asFragment(true);
         //jaxBmar.pretty(true);
@@ -219,7 +219,7 @@ public class JU_FromJSON {
             }
             report.glean(trans,Env.XML);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw.toString());
     }
@@ -242,7 +242,7 @@ public class JU_FromJSON {
         sd.getItem().add("Item 2.2");
         ld.getSampleData().add(sd);
         ld.setFluff("MyFluff");
-        
+
         JAXBmar jaxBmar = new JAXBmar(LargerData.class);
         //jaxBmar.asFragment(true);
         jaxBmar.pretty(true);
index 4fefe62..1a10779 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -45,8 +45,8 @@ import s.xsd.LargerData;
 public class JU_FromXML {
     private static int ITERATIONS = 1;
         ;
-    
-    private final static String xml = 
+
+    private final static String xml =
     "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n" +
     "<LargerData xmlns=\"urn:s:xsd\">\n" +
     "   <SampleData>\n" +
@@ -63,21 +63,21 @@ public class JU_FromXML {
     "   </SampleData>\n" +
     "   <fluff>MyFluff</fluff>\n" +
     "</LargerData>\n";
-    
-    
+
+
     @Test
     public void test() throws Exception {
         InXML inXML = new InXML(LargerData.class);
-        
+
         System.out.println(xml);
         StringBuilderWriter sbw = new StringBuilderWriter(1024);
-        
+
         Reader rdr = new StringReader(xml);
-        
+
         new OutRaw().extract(rdr, sbw, inXML);
         System.out.println(sbw.getBuffer());
     }
-    
+
 
     @Test
     public void xml2JSON() throws Exception {
@@ -86,7 +86,7 @@ public class JU_FromXML {
         InXML inXML = new InXML(LargerData.class);
 
         StringBuilderWriter sbw = new StringBuilderWriter(1024);
-        
+
         Trans trans;
         Report report = new Report(ITERATIONS,"XML");
         do {
@@ -101,7 +101,7 @@ public class JU_FromXML {
             }
             report.glean(trans,Env.XML);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw.toString());
     }
@@ -113,7 +113,7 @@ public class JU_FromXML {
         InXML inXML = new InXML(LargerData.class);
 
         StringBuilderWriter sbw = new StringBuilderWriter(1024);
-        
+
         Trans trans;
         Report report = new Report(ITERATIONS,"XML");
         do {
@@ -128,23 +128,23 @@ public class JU_FromXML {
             }
             report.glean(trans,Env.XML);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw.toString());
     }
-    
-    
+
+
     @Test
     public void warmup() throws Exception {
         if (ITERATIONS>20) {
             System.out.println("*** Warmup JAXB ***");
-            
+
             JAXBumar jaxbUmar = new JAXBumar(LargerData.class);
             JAXBmar jaxBmar = new JAXBmar(LargerData.class);
             //jaxBmar.asFragment(true);
             //jaxBmar.pretty(true);
             StringBuilderWriter sbw = new StringBuilderWriter(1024);
-    
+
 
             LargerData ld;
             Trans trans;
@@ -171,7 +171,7 @@ public class JU_FromXML {
                 }
                 report.glean(trans,Env.XML);
             } while (report.go());
-            
+
             report.report(sbw);
             System.out.println(sbw.toString());
         }
@@ -210,7 +210,7 @@ public class JU_FromXML {
             }
             report.glean(trans,Env.XML);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw.toString());    }
 
index af58ea5..4e9bfdc 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,7 +44,7 @@ public class JU_JSON {
         Out jout = new OutJson();
 
         go(jin, jout, "{\"id\":\"Me, Myself\",\"date\":1353094689100}");
-        
+
         go(jin, jout, "{\"id\":\"My ID 1\",\"desc\":\"My Description 1\",\"comment\":[\"My Comment 1\"],\"utc\":1360418381310}");
         go(jin, jout, "{\"id\":\"My ID 1\",\"desc\":\"My Description 1\",\"comment\":[\"My Comment 1\",\"My Comment 2\"],\"utc\":1360418381310}");
 
@@ -52,16 +52,16 @@ public class JU_JSON {
                    "{\"id\":\"sd object \\\"1\\\"\",\"date\":1316084944213,\"item\":[\"Item 1.1\",\"Item 1.2\"]}," +
                    "{\"id\":\"sd object \\\"2\\\"\",\"date\":1316084945343,\"item\":[\"Item 2.1\",\"Item 2.2\"]}],\"fluff\":\"MyFluff\"}"
                    );
-        
+
         go(jin, jout, "{\"SampleData\":[{\"date\":1316084945343}],\"fluff\":\"MyFluff\"}");
-        
+
         go(jin, jout, "{\"id\":\"Me,[}[eg[)(:x,\\\" Myself\",\"date\":1353094689100}");
-        
+
         // TODO: Clean out AT&T specific data
         go(jin,jout, "{\"userid\":\"xk3233\",\"timestamp\":1353097388531,\"item\":[{\"tag\":\"color\",\"value\":\"Mauve\"},{\"tag\":\"shirtsize\",\"value\":\"Xtra Large\"}]}");
         //go()
         //"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><vote xmlns=\"urn:poll.att.com\"><userid>xk3233</userid><timestamp>1353082669667</timestamp></vote>");
-        
+
         // 3/11/2015 Jonathan found a case with missing comma
         go(jin,jout, "{\"start\":\"2015-03-11T18:18:05.580-05:00\",\"end\":\"2015-09-11-05:00\",\"force\":\"false\",\"perm\":{\"type\":\"org.osaaf.myns.mytype\",\"instance\":\"myInstance\",\"action\":\"myAction\"}"
                 + ",\"role\":\"org.osaaf.myns.myrole\"}");
@@ -74,8 +74,8 @@ public class JU_JSON {
         go(jin,jout, "{\"meth\":\"GET\",\"path\":\"/authz/perms/:type\",\"desc\":\"GetPermsByType\",\"comments\":[\"List All Permissions that match :type listed\"],"
                 + "\"contentType\":[\"application/Permissions+json;q=1.0;charset=utf-8;version=1.1,application/json;q=1.0;version=1.1\""
                 + ",\"application/Perms+xml;q=1.0;charset=utf-8;version=2.0,text/xml;q=1.0;version=2.0\",\"application/Perms+json;q=1.0;charset=utf-8;version=2.0,application/json;q=1.0;version=2.0,*/*;q=1.0\""
-                + ",\"application/Permissions+xml;q=1.0;charset=utf-8;version=1.1,text/xml;q=1.0;version=1.1\"]}"); 
-        
+                + ",\"application/Permissions+xml;q=1.0;charset=utf-8;version=1.1,text/xml;q=1.0;version=1.1\"]}");
+
 
         // Test a Windoze "Pretty Print", validate skipping of Windoze characters as well as other odd control characters listed
         // in json.org
@@ -87,8 +87,8 @@ public class JU_JSON {
                 ),sw,jin);
         Assert.assertEquals("{\"id\":\"Me, \b\f\n\r\tMyself\",\"date\":1353094689100}",sw.toString());
         System.out.println(sw.toString());
-        
-        // 10/01/2015 Jonathan AAF-703 Ron Gallagher, this response is ok    
+
+        // 10/01/2015 Jonathan AAF-703 Ron Gallagher, this response is ok
         go(jin,jout, "{\"perm\":[{\"type\":\"org.osaaf.myns.myPerm\",\"action\":\"myAction\",\"description\":\"something\"}]}");
         // but when description:"" causes extra comma at end
         go(jin,jout, "{\"perm\":[{\"type\":\"org.osaaf.myns.myPerm\",\"action\":\"myAction\",\"description\":\"\"}]}","{\"perm\":[{\"type\":\"org.osaaf.myns.myPerm\",\"action\":\"myAction\"}]}");
@@ -96,33 +96,33 @@ public class JU_JSON {
          go(jin,jout, "{\"perm\":[{\"type\":\"\",\"action\":\"\",\"description\":\"\"}]}","{\"perm\":[{}]}");
          go(jin,jout, "{\"perm\":[{\"type\":\"\",\"action\":\"\",\"description\":\"hi\"}]}","{\"perm\":[{\"description\":\"hi\"}]}");
         go(jin,jout, "{\"perm\":[{\"type\":\"\",\"action\":\"myAction\",\"description\":\"\"}]}","{\"perm\":[{\"action\":\"myAction\"}]}");
-        
-        
+
+
         go(jin,jout, "{\"perm\":[{\"type\":\"org.osaaf.myns.myPerm\",\"action\":,\"description\":\"something\"}]}","{\"perm\":[{\"type\":\"org.osaaf.myns.myPerm\",\"description\":\"something\"}]}");
-        
+
         go(jin, jout, "{\"name\":\"\\\"hello\\\"\"}");
-        
+
         go(jin, jout, "{\"name\":\"\\\\\"}");
 
         go(jin, jout, "{\"role\":\"org.osaaf.scamper.UserStory0152 7_IT-00323-a-admin\",\"perm\":{\"type\":\"org.osaaf.scamper.application\",\"instance\":\"_()`!@#\\\\$%^=+][{}<>/.-valid.app.name-is_good\",\"action\":\"Administrator\"}}");
-        
-    
+
+
     }
-    
-    
+
+
     private void go(Parse<Reader,?> in, Out out, String str) throws IOException, ParseException {
         go(in,out,str,str);
     }
 
 
     private void go(Parse<Reader, ?> in, Out out, String str, String cmp) throws IOException, ParseException {
-        
+
         System.out.println(str);
         StringWriter sw = new StringWriter(1024);
         out.extract(new StringReader(str), sw, in);
         System.out.println(sw);
         String result = sw.toString();
-        
+
         if (!result.equals(cmp)) {
             sw.getBuffer().setLength(0);
             new OutRaw().extract(new StringReader(str), sw, in);
index fd6142b..335d87a 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -31,7 +31,7 @@ public class JU_Ladder {
     @Test
     public void test() {
         Ladder<String> ladder = new Ladder<String>();
-        
+
         for (int i=0;i<30;++i) {
             for (int j=0;j<i;++j)ladder.ascend();
             String str = "Rung " + i;
@@ -43,10 +43,10 @@ public class JU_Ladder {
             for (int j=0;j<i;++j)ladder.descend();
         }
         assertEquals(ladder.height(),32); // Sizing, when naturally created is by 8
-        
+
         ladder.cutTo(8);
-        assertEquals(ladder.height(),8); 
-        
+        assertEquals(ladder.height(),8);
+
         for (int i=0;i<30;++i) {
             ladder.jumpTo(i);
             String str = "Rung " + i;
@@ -56,16 +56,16 @@ public class JU_Ladder {
         }
 
         ladder.bottom();
-        
+
         for (int i=0;i<30;++i) {
             assertEquals("Rung " + i,ladder.peek());
             ladder.ascend();
         }
-        
+
         ladder.bottom();
         ladder.top();
         assertEquals("Rung 29",ladder.peek());
-        
+
         for (int i=0;i<30;++i) {
             ladder.jumpTo(i);
             assertEquals("Rung " + i,ladder.peek());
index a1e94c5..2cb8a17 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -58,13 +58,13 @@ public class JU_Nulls {
             data.load(urr);
             System.out.println(data.asString());
             Assert.assertEquals("{\"SampleData\":[{\"date\":1444125487798}]}", data.asString());
-            
+
             System.out.println(data.out(Data.TYPE.RAW).asString());
         } catch (Exception e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
         }
-        
+
     }
 
 }
index ccc2931..287c256 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -78,16 +78,16 @@ public class JU_RosettaDF {
                 tt.done();
             }
             sbw.append('\n');
-            
+
             tt = trans.start("To XML from Cache",4);
             try {
                 data.out(Data.TYPE.XML).to(sbw);
             } finally {
                 tt.done();
             }
-            
+
             sbw.append('\n');
-            
+
             tt = trans.start("To JSON from Cache",5);
             try {
                 data.out(Data.TYPE.JSON).to(sbw);
@@ -96,10 +96,10 @@ public class JU_RosettaDF {
             }
             report.glean(trans, 1,2,3,4,5);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw);
-        
+
     }
 
     @Test
@@ -118,12 +118,12 @@ public class JU_RosettaDF {
             data.direct(new StringReader(JU_FromJSON.str), sbw);
             report.glean(trans);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw);
-        
+
     }
-    
+
     @Test
     public void testMulti() throws Exception {
         RosettaEnv env = new RosettaEnv();
@@ -135,10 +135,10 @@ public class JU_RosettaDF {
         Multi m = new Multi();
         m.getF1().add("String1");
         m.getF2().add("String2");
-        
+
         System.out.println(df.newData().load(m).out(TYPE.RAW).asString());
         System.out.println(df.newData().load(m).out(TYPE.JSON).asString());
-        
+
     }
 
     @Test
@@ -154,7 +154,7 @@ public class JU_RosettaDF {
         Assert.assertEquals(
                 "{\"id\":\"\\\"AT&T Services, Inc.\\\"\",\"date\":0}",
                 out);
-        
+
         SampleData sd2 = df.newData().in(TYPE.JSON).load(out).asObject();
         System.out.println(sd2.getId());
         Assert.assertEquals(sd.getId(),sd2.getId());
index a0847f4..43a202f 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -47,11 +47,11 @@ public class JU_Saved<b> {
         JaxInfo ji = JaxInfo.build(LargerData.class);
         OutXML xml = new OutXML(ji);;
         OutJson json = new OutJson();
-        
+
         Saved saved = new Saved();
-        
+
         StringBuilderWriter sbw = new StringBuilderWriter(1024);
-        
+
         Trans trans;
         Report report = new Report(ITERATIONS,"Save","Dump","XML ","JSON");
         do {
@@ -67,7 +67,7 @@ public class JU_Saved<b> {
 
 //            sbw.append("==== Start Direct Raw =====\n");
 //            new OutRaw().extract(new StringReader(JU_FromJSON.str), sbw, inJSON);
-//            
+//
 //            sbw.append("==== Start Raw from Saved =====\n");
 //            new OutRaw().extract(null,sbw,saved);
 
@@ -78,7 +78,7 @@ public class JU_Saved<b> {
             } finally {
                 tt.done();
             }
-            
+
             sbw.append("\n==== Start XML =====\n");
             tt = trans.start("XML", 3);
             try {
@@ -86,7 +86,7 @@ public class JU_Saved<b> {
             } finally {
                 tt.done();
             }
-            
+
             sbw.append("\n==== Start JSON =====\n");
             tt = trans.start("JSON", 4);
             try {
@@ -96,7 +96,7 @@ public class JU_Saved<b> {
             }
             report.glean(trans,1,2,3,4);
         } while (report.go());
-        
+
         report.report(sbw);
         System.out.println(sbw.toString());
 
index b0fc29a..a3c4f18 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -57,7 +57,7 @@ public class JU_Stream2Obj {
         <value>value_2</value>
       </base>
     </root>
-    
+
     {"base":[{"__extension":"derivedA","name":"myDerivedA_1","num":1432,"shortName":"mda_1","value":["value_1","value_2"]}]}
     */
 
@@ -69,7 +69,7 @@ public class JU_Stream2Obj {
         da.setShortName("mda_1");
         da.getValue().add("value_1");
         da.getValue().add("value_2");
-        
+
         Root root = new Root();
         root.getBase().add(da);
 
@@ -80,10 +80,10 @@ public class JU_Stream2Obj {
         da.getValue().add("value_2.1");
         da.getValue().add("value_2.2");
         root.getBase().add(da);
-        
+
         EnvJAXB env = new BasicEnv();
         DataFactory<Root> rootDF = env.newDataFactory(Root.class);
-        
+
         String xml = rootDF.newData(env).out(Data.TYPE.XML).load(root).option(Data.PRETTY).asString();
         System.out.println(xml);
 
@@ -95,21 +95,21 @@ public class JU_Stream2Obj {
         out.extract(new StringReader(xml), sw, in);
         System.out.println(sw.toString());
 
-        
+
         out = new OutJson();
 
         sw = new StringWriter();
         out.extract(new StringReader(xml), sw, in);
         String json;
         System.out.println(json = sw.toString());
-        
+
         in = new InJson();
         out = new OutRaw();
 
         sw = new StringWriter();
         out.extract(new StringReader(json), sw, in);
         System.out.println(sw.toString());
-        
+
         out = new OutXML(inXML);
 
         sw = new StringWriter();
index 40c4159..1a366fa 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -42,7 +42,7 @@ public class JU_Struct {
                                         "</SampleData>\n" +
                                         "<fluff>MyFluff</fluff>\n" +
                                     "</LargerData>\n";
-    
+
 //    @Test
 //    public void test2() throws Exception  {
 //
@@ -50,20 +50,20 @@ public class JU_Struct {
 //        sd.setDate(new Date().getTime());
 //        sd.setId("myId");
 //        sd.getItem().add("Item 1.1");
-//        
+//
 //        InObj<SampleData> inObj = new InObj<SampleData>(SampleData.class);
 //
 //        JaxSet<SampleData> jaxSet = JaxSet.get(SampleData.class);
 //         Setter<SampleData> setter = jaxSet.setter("id");
 //         setter.set(sd, "Your ID");
-//         
+//
 //         for (Entry<String, Getter<SampleData>> es : jaxSet.getters()) {
 //             System.out.print(es.getKey());
 //             System.out.print(' ');
 //             System.out.println(es.getValue().get(sd));
 //         }
 //    }
-    
+
     @Test
     public void test() throws Exception  {
         JaxInfo ji = JaxInfo.build(LargerData.class);
index 2aca5f5..550e256 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -55,18 +55,18 @@ public class JU_Types {
     public void single() throws Exception {
         Single single = setSData();
         SingleMarshal psingle = new SingleMarshal();
-        
+
         OutRaw raw = new OutRaw();
         OutJson json = new OutJson();
         OutXML xml = new OutXML("Single","xmlns=urn:types:xsd");
-        
-        
+
+
         System.out.println("===== RAW =====");
         raw.extract(single, System.out, psingle);
 
         System.out.println("\n===== JSON =====");
         json.extract(single, System.out, psingle);
-        
+
         System.out.println("\n\n===== Pretty JSON =====");
         json.extract(single, System.out, psingle, true);
 
@@ -92,7 +92,7 @@ public class JU_Types {
 //        xml.extract(single, sw, psingle, true);
         news = jumar.unmarshal(env.info(), sw.toString());
         System.out.println(sw.toString());
-        
+
         String sample = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>"
                 + "\n<ns2:urn.types.xsd xmlns:ns2=\"Single\" xmlns=\"urn:types:xsd\">"
                 + "\n<str>MyString</str>"
@@ -110,7 +110,7 @@ public class JU_Types {
         System.out.println(news.getDatetime());
 
     }
-    
+
     @Test
     public void multi() throws Exception {
         OutRaw raw = new OutRaw();
@@ -119,7 +119,7 @@ public class JU_Types {
 
         Multi multi = new Multi();
         MultiMarshal pmulti = new MultiMarshal();
-    
+
         for (int i=0;i<10;++i) {
             System.out.println("===== Multi Iteration " + i + " =====");
             if (i>0) {
@@ -127,16 +127,16 @@ public class JU_Types {
             }
             System.out.println("  ===== RAW =====");
             raw.extract(multi, System.out, pmulti);
-            
+
             System.out.println("\n  ===== JSON =====");
             json.extract(multi, System.out, pmulti);
-            
+
             System.out.println("\n\n  ===== Pretty JSON =====");
             json.extract(multi, System.out, pmulti, true);
-    
+
             System.out.println("\n\n  ===== XML =====");
             xml.extract(multi, System.out, pmulti,false);
-    
+
             System.out.println("\n\n  ===== Pretty XML =====");
             xml.extract(multi, System.out, pmulti, true);
         }
@@ -150,7 +150,7 @@ public class JU_Types {
 
         Multi multi = new Multi();
         DocMarshal<Multi> doc = DocMarshal.root(new MultiMarshal());
-    
+
         for (int i=0;i<3;++i) {
             System.out.println("===== Multi Iteration " + i + " =====");
             if (i>0) {
@@ -158,16 +158,16 @@ public class JU_Types {
             }
             System.out.println("  ===== RAW =====");
             raw.extract(multi, System.out, doc);
-            
+
             System.out.println("\n  ===== JSON =====");
             json.extract(multi, System.out, doc);
-            
+
             System.out.println("\n\n  ===== Pretty JSON =====");
             json.extract(multi, System.out, doc, true);
-    
+
             System.out.println("\n\n  ===== XML =====");
             xml.extract(multi, System.out, doc,false);
-    
+
             System.out.println("\n\n  ===== Pretty XML =====");
             xml.extract(multi, System.out, doc, true);
         }
@@ -179,16 +179,16 @@ public class JU_Types {
 //        Saved saved = new Saved();
 //        saved.extract(in, ignore, parser, options);
 //    }
-    
+
     @Test
     public void df() throws Exception {
         RosettaEnv env = new RosettaEnv();
         RosettaDF<Multi> df = env.newDataFactory(Multi.class);
         df.out(TYPE.JSON).option(Data.PRETTY);
-        
+
         Multi multi = new Multi();
         multi.getSingle().add(setSData());
-        
+
 
         System.out.println("========== Original loading");
         Trans trans = env.newTrans();
@@ -199,7 +199,7 @@ public class JU_Types {
         }
         trans = env.newTrans();
         data = df.newData(trans);
-        
+
         int iters = 10000;
         for (int i=0;i<iters;++i) {
             data.load(multi);
@@ -220,14 +220,14 @@ public class JU_Types {
         }
         trans = env.newTrans();
         data = df.newData(trans);
-        
+
         for (int i=0;i<iters;++i) {
             data.load(multi);
         }
         metrics = trans.auditTrail(0, null,Env.JSON,Env.XML);
         System.out.println(data.asString());
         System.out.println(metrics.total/iters + "ms avg");
-        
+
         // Assert.assertEquals(first, second);
 
         System.out.println("========== Direct Object to JSON String");
@@ -246,13 +246,13 @@ public class JU_Types {
             sbw.reset();
             data.direct(multi, sbw, true);
         }
-        
+
         metrics = trans.auditTrail(0, null,Env.JSON,Env.XML);
         System.out.println(sbw.toString());
         System.out.println(metrics.total/iters + "ms avg");
-        
+
     }
-    
+
     private Single setSData() {
         Single s = new Single();
         s.setStr("MyString");
@@ -274,19 +274,19 @@ public class JU_Types {
 //        Out jout = new OutJson();
 //
 ////        go(jin, jout, "{\"id\":\"Me, Myself\",\"date\":1353094689100}");
-//            
+//
 //    }
-    
-    
+
+
     /*
     private void go(Parse<Reader,?> in, Out out, String str) throws IOException, ParseException {
-        
+
         System.out.println(str);
         StringWriter sw = new StringWriter(1024);
         out.extract(new StringReader(str), sw, in);
         System.out.println(sw);
         String result = sw.toString();
-        
+
         if (!result.equals(str)) {
             sw.getBuffer().setLength(0);
             new OutRaw().extract(new StringReader(str), sw, in);
index 7e23082..e5035db 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -37,7 +37,7 @@ public class OutDump extends Out{
         IndentPrintWriter ipw = writer instanceof IndentPrintWriter?(IndentPrintWriter)writer:new IndentPrintWriter(writer);
 
         Parsed<S> p = prs.newParsed();
-        
+
         while ((p = prs.parse(in,p.reuse())).valid()) {
             switch(p.event) {
                 case Parse.START_OBJ:
@@ -45,7 +45,7 @@ public class OutDump extends Out{
                     ipw.append(p.name);
                     ipw.inc();
                     break;
-                case Parse.END_OBJ: 
+                case Parse.END_OBJ:
                     printData(ipw,p);
                     ipw.dec();
                     ipw.append("End Object ");
@@ -57,7 +57,7 @@ public class OutDump extends Out{
                     ipw.append(p.name);
                     ipw.append('\n');
                     break;
-                case Parse.END_ARRAY: 
+                case Parse.END_ARRAY:
                     printData(ipw,p);
                     ipw.dec();
                     ipw.append("End Array ");
@@ -69,13 +69,13 @@ public class OutDump extends Out{
             }
         }
     }
-    
+
     private void printData(IndentPrintWriter ipw, Parsed<?> parsed) {
         if (parsed.hasData()) {
             ipw.append("Data:[");
             if (parsed.hasName()) {
                 ipw.append(parsed.name);
-                ipw.append(" : "); 
+                ipw.append(" : ");
             }
             ipw.append(parsed.sb);
             ipw.append("]");
index acb3301..dc07ae6 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -33,7 +33,7 @@ public class Report {
     String[] names;
     private int iterations;
     private int count;
-    
+
     public Report(int iters, String ... names) {
         iterations = iters;
         buckets = new float[names.length];
@@ -41,7 +41,7 @@ public class Report {
         total=0;
         count = 0;
     }
-    
+
     public void glean(Trans trans, int ... type) {
         Metric m = trans.auditTrail(0, null, type);
         total+=m.total;
@@ -50,12 +50,12 @@ public class Report {
             buckets[b]+=m.buckets[b];
         }
     }
-    
+
     public boolean go() {
         return ++count<iterations;
     }
-    
-    
+
+
     public void report(Writer sbw) throws IOException {
         sbw.append("\n"+count + " entries, Total Time: " + total + "ms, Avg Time: " + total/count + "ms\n");
         int min = Math.min(buckets.length, names.length);
index b28ca76..3c8433e 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
index bde91c9..ddbeb6c 100644 (file)
@@ -7,9 +7,9 @@
  * 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.
@@ -44,14 +44,14 @@ public class SingleMarshal extends ObjMarshal<Single> {
                 return t.getStr();
             }
         });
-        
+
         add(new FieldNumeric<Integer, Single>("int") {
             @Override
             protected Integer data(Single t) {
                 return t.getInt();
             }
         });
-        
+
         add(new FieldNumeric<Long,Single>("long") {
             @Override
             protected Long data(Single t) {
@@ -72,14 +72,14 @@ public class SingleMarshal extends ObjMarshal<Single> {
                 return t.getDate();
             }
         });
-        
+
         add(new FieldHexBinary<Single>("binary") {
             @Override
             protected byte[] data(Single t) {
                 return t.getBinary();
             }
         });
-        
+
         add(new FieldArray<Single,String>("array", DataWriter.STRING) {
             @Override
             protected List<String> data(Single t) {