1021. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 10/3/2017 11:16:08 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

1021.1 Files compared

# Location File Last Modified
1 ehmp.zip\ehmp\ehmp\product build.gradle Mon Aug 28 20:41:42 2017 UTC
2 ehmp.zip\ehmp\ehmp\product build.gradle Mon Oct 2 19:25:08 2017 UTC

1021.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 694
Changed 1 4
Inserted 0 0
Removed 0 0

1021.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

1021.4 Active regular expressions

No regular expressions were active.

1021.5 Comparison detail

  1   ext {
  2       vendor  = 'Depart ment of Ve terans Aff airs - Hea lth Inform atics Init iative'
  3  
  4       versio ns = [
  5                commonsB eanutilsVe rsion: '1. 8.3',
  6                commonsL angVersion : '3.4',
  7                commonsP oolVersion : '1.6',
  8                commonsH ttpClientV ersion: '3 .1',
  9                commonsC ollections Version: ' 3.2.1',
  10                commonsC odecVersio n: '1.4',
  11                commonsI oVersion:  '2.4',
  12                easymock Version: ' 3.1',
  13                jodaTime Version: ' 2.9.7',
  14                healthTi meVersion:  '2.1.3',
  15                vistaSup portVersio n: '0.14.1 ',
  16                groovyVe rsion: '2. 1.5',
  17                springVe rsion: '3. 2.8.RELEAS E',
  18                springSe curityVers ion: '3.2. 3.RELEASE' ,
  19                jacksonV ersion: '2 .7.9',
  20                metricsV ersion: '3 .0.2',
  21                slf4jVer sion: '1.7 .6',
  22                logbackV ersion: '1 .1.1',
  23                activeMQ Version: ' 5.8.0',
  24                h2Versio n: '1.3.17 5',
  25                solrLuce neVersion:  '4.10.4',
  26  
  27                droolsVe rsion: '5. 4.0.Final' ,
  28                servletV ersion: '3 .0.1',
  29                hibernat eCoreVersi on: '3.3.1 .GA',
  30  
  31                httpmime Version: ' 4.2',
  32                httpcore Version: ' 4.2',
  33                httpclie ntVersion:  '4.2',
  34                xbeanSpr ingVersion : '3.7',
  35  
  36                // osgi
  37                osgiVers ion: '5.0. 0',
  38                felixHtt pVersion:  '2.2.1',
  39                paxLoggi ngVersion:  '1.7.1',
  40                ariesVer sion: '1.1 .0',
  41  
  42                // testi ng libs
  43                junitVer sion: '4.1 1',
  44                xmlunitV ersion: '1 .5',
  45                mockitoV ersion: '1 .9.5',
  46                hamcrest Version: ' 1.3',
  47  
  48                tomcatVe rsion: '7. 0.47',
  49  
  50                // termd b
  51                termdbVe rsion: '1. UMLS2013AA .20131017' ,
  52                termdbJL VVersion:  '1.0'
  53           ]
  54   }
  55  
  56   apply from  : '../inf rastructur e/gradle/d eploy.grad le'
  57   apply from  : '../inf rastructur e/gradle/s ecurity.gr adle'
  58  
  59   if( !Syste m.getenv() .keySet(). contains(' WORKSPACE' ) ){
  60     throw ne w GradleEx ception('W ORKSPACE e nvironment  variable  not set. D id you "so urce infra structure/ set.env.sh "?')
  61   }
  62  
  63   apply plug in: "sonar -runner"
  64  
  65   sonarRunne r {
  66       sonarP roperties  {
  67             property " sonar.host .url", "ht tp:// IP               "
  68             property " sonar.jdbc .url", "jd bc:mysql:/ / IP               /sonar?use Unicode=tr ue&cha racterEnco ding=utf8"
  69       }
  70   }
  71  
  72   allproject s  {
  73       apply  plugin: 'e clipse'
  74       apply  plugin: 'm aven'
  75  
  76       if (pr oject.hasP roperty("v erbose"))  {
  77           ta sks.withTy pe(Test) {
  78                testLogg ing.showSt andardStre ams = true
  79  
  80                // liste n to event s in the t est execut ion lifecy cle
  81                beforeTe st { descr iptor ->
  82                    logg er.lifecyc le(":" + d escriptor)
  83                }
  84           }
  85       }
  86       if (pr oject.hasP roperty("s ourceCompa tibility") ) {
  87           so urceCompat ibility =  '1.7'
  88           [c ompileJava , compileT estJava]*. options*.e ncoding =  'UTF-8'
  89       }
  90  
  91       ext.se t('coverag eThreshold Linerate',  80)
  92       ext.se t('coverag eThreshold Branchrate ', 80)
  93  
  94       // TOD O find out  which one  is correc t. groupId  or group?  version?
  95       ext.se t('groupId ', 'us.vis tacore.ehm p')
  96       group  = 'gov.va. ehmp'
  97       // how  to set pr oject vers ion?
  98       versio n = '0.7-S 51-SNAPSHO T'
  99  
  100       ext.se t('repoCom mitCount',  '0.0.0.0' )
  101       ext.se t('commitC ountDir',  projectDir )
  102  
  103       def re poCommitCo untClosure  = {
  104           if  (System.p roperties[ 'os.name'] .toLowerCa se().conta ins('windo ws')) {
  105                return " cmd /C git  rev-list  --count -- first-pare nt HEAD ${ ->commitCo untDir}".e xecute().t ext.trim()
  106           }
  107              else {
  108                def proc  = ['sh',  '-c', "git  rev-list  --count -- first-pare nt HEAD ${ ->commitCo untDir}"]. execute()
  109                return p roc.text.t rim()
  110           }
  111       }
  112  
  113       repoCo mmitCount  = "${->rep oCommitCou ntClosure( )}"
  114  
  115       // set up
  116       ext.se t('repoVer sion', get RepoVersio n())
  117       ext.se t('branchN ame', getC urrentBran chName())
  118       ext.se t('current CommitHash ', getCurr entCommitH ash())
  119       ext.se t('nexusUR L', getNex usURL())
  120       ext.se t('uploadR epo', getN exusUpload Repository ())
  121       versio n = "${->r epoVersion  + '.' + r epoCommitC ount}"
  122  
  123       // def ine a base  manifest  that inclu des the gi t info whi ch can be  pulled in
  124       // by  the child  projects
  125       if (pr oject.hasP roperty("m anifest"))  {
  126           ex t.baseMani fest = man ifest {
  127                attribut es('Build- Version':  version,
  128                            'Build- Repo-Branc hName': br anchName,
  129                            'Build- Repo-Curre ntCommitHa sh': curre ntCommitHa sh)
  130           }
  131       }
  132  
  133       reposi tories {
  134           ma ven { url  "https://s tore.vista core.us/ne xus/conten t/groups/p ublic" }
  135           ma ven { url  "https://s tore.vista core.us/ne xus/conten t/reposito ries/filer epo/" }
  136           ma ven { url  "http://os s.sonatype .org/conte nt/reposit ories/snap shots" }
  137           ma ven { url  "http://re pository.s pringsourc e.com/mave n/bundles/ release" }
  138           ma ven { url  "http://re pository.s pringsourc e.com/mave n/bundles/ external"  }
  139           ma ven { url  "http://re pository.j boss.org/m aven2/" }
  140           ma ven { url  "http://do wnload.jav a.net/mave n/2/" }
  141           ma ven { url  "https://r epository. jboss.org/ nexus/cont ent/groups /public" }
  142           ma ven { url  "http://dl .bintray.c om/robflet cher/gradl e-plugins"  }
  143           ma ven { url  "http://re po.phloc.c om/maven2"  }
  144           ma ven { url  "http://ve rsion99.qo s.ch" }
  145       }
  146  
  147        uploa dArchives  {
  148           re positories .mavenDepl oyer {
  149                pom.grou pId = "${- >groupId}"
  150                pom.vers ion = "${- >version}"
  151                reposito ry(url: "$ {->nexusUR L}/nexus/c ontent/rep ositories/ ${->upload Repo}/") {
  152                    auth entication (userName:  System.ge tenv()['NE XUS_USER_N AME'], pas sword: Sys tem.getenv ()['NEXUS_ PASSWORD'] )
  153                }
  154           }
  155       }
  156       tasks. withType(E xec) {
  157           do First {
  158                println  commandLin e
  159           }
  160       }
  161   }
  162  
  163   def getNex usURL() {
  164       System .env.OVERR IDE_NEXUS_ URL ?: 'ht tps://stor e.vistacor e.us'
  165   }
  166  
  167   def getNex usUploadRe pository()  {
  168       System .env.NEXUS _UPLOAD_RE PO ?: 'rel eases'
  169   }
  170  
  171   def getRep oVersion()  {
  172       def v
  173       if( Sy stem.geten v().keySet ().contain s('ARTIFAC T_VERSION_ PREFIX') ) {
  174           v  = System.g etenv()['A RTIFACT_VE RSION_PREF IX']
  175       } else  {
  176           v  = new File (rootDir,  "../infras tructure/p roperties/ applicatio nVersionPr efix").get Text()
  177       }
  178       if (v. endsWith(' .'))
  179           v  = v.substr ing(0, v.l ength()-1)
  180       return  v
  181   }
  182  
  183   def getCur rentBranch Name() {
  184       def br anchName
  185       if (Sy stem.prope rties['os. name'].toL owerCase() .contains( 'windows') ) {
  186           br anchName =  repoVersi on + '.' +  'cmd /C g it rev-par se --abbre v-ref HEAD '.execute( ).text.tri m()
  187       } else  {
  188           br anchName =  ['sh', '- c', 'git r ev-parse - -abbrev-re f HEAD'].e xecute().t ext.trim()
  189       }
  190       return  branchNam e
  191   }
  192  
  193   def getCur rentCommit Hash() {
  194       def co mmitHash
  195       if (Sy stem.prope rties['os. name'].toL owerCase() .contains( 'windows') ) {
  196           co mmitHash =  repoVersi on + '.' +  'cmd /C g it rev-par se HEAD'.e xecute().t ext.trim()
  197       } else  {
  198           co mmitHash =  ['sh', '- c', 'git r ev-parse H EAD'].exec ute().text .trim()
  199       }
  200       return  commitHas h
  201   }
  202  
  203   def local_ provision_ version()  {
  204     def text  = new Fil e("$rootDi r/provisio ner/provis ionerVersi on").text. trim()
  205     return t ext
  206   }
  207  
  208   // This fu nction is  used for g etting com mit count  for a proj ect
  209   // because  the allpr ojects rou tine hasn' t run yet  for any pr oject othe r than ROO T to
  210   // set the  project.v ersion pro perty corr ectly
  211   def getVer sionByComm itCountFor Project(pr ojectStrin g, subDir  = null){
  212       def co mmitCountD ir = proje ct("${proj ectString} ").project Dir
  213  
  214       if(sub Dir) {
  215           co mmitCountD ir = "${co mmitCountD ir}/${subD ir}"
  216       }
  217  
  218       def pr oc = ['sh' , '-c', "g it rev-lis t --count  --first-pa rent HEAD  ${->commit CountDir}" ].execute( )
  219       versio n = "${get RepoVersio n() + '.'  + proc.tex t.trim()}"
  220       return  version
  221   }
  222  
  223   task gener ateVersion Properties File() {
  224       doLast  {
  225           de f commitHa sh = getCu rrentCommi tHash()
  226           de f provisio nerVersion  = local_p rovision_v ersion()
  227           de f backendV ersion = p roject(':p roduction' ).version
  228           de f vxSyncVe rsion = ge tVersionBy CommitCoun tForProjec t(':produc tion:vx-sy nc')
  229           de f soapHand lerVersion  = getVers ionByCommi tCountForP roject(':p roduction: soap-handl er')
  230           de f healthTi meCoreJarV ersion = g etVersionB yCommitCou ntForProje ct(':produ ction:heal th-time:he alth-time- core')
  231           de f healthTi meSolrJarV ersion = g etVersionB yCommitCou ntForProje ct(':produ ction:heal th-time:he alth-time- solr')
  232           de f vprVersi on = getVe rsionByCom mitCountFo rProject(' :productio n:vpr')
  233           de f nodeMock ServicesVe rsion = ge tVersionBy CommitCoun tForProjec t(':produc tion:NodeM ockService s')
  234           de f asuVersi on = getVe rsionByCom mitCountFo rProject(' :productio n:asu')
  235           de f jdsVersi on = getVe rsionByCom mitCountFo rProject(' :productio n:jds')
  236           de f hmpVersi on = getVe rsionByCom mitCountFo rProject(' :productio n:hmp')
  237           de f jdsDataV ersion = g etVersionB yCommitCou ntForProje ct(':tests :jds_data' )
  238           de f cacheVer sion = new  File("$ro otDir/prod uction/cac he/cacheVe rsion").te xt
  239           de f correlat edIDsVersi on = getVe rsionByCom mitCountFo rProject(' :productio n:correlat ed_ids')
  240           de f crsVersi on = getVe rsionByCom mitCountFo rProject(' :productio n:crs')
  241  
  242           pr intln "COM MIT_HASH=' ${commitHa sh}'"
  243           pr intln "EHM P_PROVISIO N='${provi sionerVers ion}'"
  244           pr intln "BAC KEND_VERSI ON='${back endVersion }'"
  245           pr intln "VX_ SYNC_VERSI ON='${vxSy ncVersion} '"
  246           pr intln "SOA P_HANDLER_ VERSION='$ {soapHandl erVersion} '"
  247           pr intln "HEA LTH_TIME_C ORE_VERSIO N='${healt hTimeCoreJ arVersion} '"
  248           pr intln "HEA LTH_TIME_S OLR_VERSIO N='${healt hTimeSolrJ arVersion} '"
  249           pr intln "VPR _VERSION=' ${vprVersi on}'"
  250           pr intln "NOD EMOCKSERVI CES_VERSIO N='${nodeM ockService sVersion}' "
  251           pr intln "ASU _VERSION=' ${asuVersi on}'"
  252           pr intln "JDS _VERSION=' ${jdsVersi on}'"
  253           pr intln "HMP _VERSION=' ${hmpVersi on}'"
  254           pr intln "JDS _DATA_VERS ION='${jds DataVersio n}'"
  255           pr intln "CAC HE_VERSION ='${cacheV ersion}'"
  256           pr intln "COR RELATED_ID S_VERSION= '${correla tedIDsVers ion}'"
  257           pr intln "CRS _VERSION=' ${crsVersi on}'"
  258  
  259           pr oject.buil dDir.mkdir s()
  260           de lete "${pr oject.buil dDir}/vers ion.proper ties"
  261  
  262           ne w File("${ project.bu ildDir}/ve rsion.prop erties") < < """COMMI T_HASH=${c ommitHash}
  263   EHMP_PROVI SION=${pro visionerVe rsion}
  264   BACKEND_VE RSION=${ba ckendVersi on}
  265   VX_SYNC_VE RSION=${vx SyncVersio n}
  266   SOAP_HANDL ER_VERSION =${soapHan dlerVersio n}
  267   NODEMOCKSE RVICES_VER SION=${nod eMockServi cesVersion }
  268   VPR_VERSIO N=${vprVer sion}
  269   HEALTH_TIM E_SOLR_VER SION=${hea lthTimeSol rJarVersio n}
  270   HEALTH_TIM E_CORE_VER SION=${hea lthTimeCor eJarVersio n}
  271   ASU_VERSIO N=${asuVer sion}
  272   JDS_VERSIO N=${jdsVer sion}
  273   HMP_VERSIO N=${hmpVer sion}
  274   JDS_DATA_V ERSION=${j dsDataVers ion}
  275   CACHE_VERS ION=${cach eVersion}
  276   CORRELATED _IDS_VERSI ON=${corre latedIDsVe rsion}"""
  277       }
  278   }
  279  
  280   def unappl yForPatent Project()  {
  281       projec t.configur ations.eac h { Config uration co nfiguratio n ->
  282         def  jarArtifac t = config uration.ar tifacts.fi nd {
  283           it .file == j ar.archive Path
  284         }
  285         if ( jarArtifac t != null)  {
  286           co nfiguratio n.artifact s.remove(j arArtifact )
  287         }
  288       }
  289   }
  290  
  291   unapplyFor PatentProj ect()
  292  
  293  
  294   task unpac kRO{
  295     doLast{
  296       exec {
  297         work ingDir = " ${rootDir} /../infras tructure/c hef/cookbo oks/cache/ files/defa ult/jds"
  298         exec utable = " python"
  299         args  = ['unpac kRO.py', " ${rootDir} /../infras tructure/v agrant/vir tualbox/.f ilecache/c hef/jds.ro "]
  300       }
  301     }
  302   }
  303  
  304   // Fortify  stuff
  305   // Add a n ew configu ration
  306   configurat ions {
  307    fortify {  }
  308   }
  309  
  310   // pull in  the forti fy libs fo r the new  configurat ion
  311   dependenci es {
  312    fortify ' com.fortif y:sourcean alyzer:4.1 '
  313   }
  314  
  315   task forti fySetup <<  {
  316    ant.prope rties['bui ld.compile r']='com.f ortify.dev .ant.SCACo mpiler'
  317    ant.typed ef(name: ' sca', clas sname: 'co m.fortify. dev.ant.So urceanalyz erTask',
  318    classpath : configur ations.for tify.asPat h)
  319   }
  320  
  321   task forti fyReport < < {
  322  
  323       Map<St ring, Stri ng> fortif yProjects  = [
  324           'e hmp-pep':  'ehmp-pep/ **/*',
  325           'h ealth-time ': 'health -time/*/** /*',
  326           'V X-Sync': ' VX-Sync/** /*.js'
  327       ]
  328  
  329       for (e  in fortif yProjects)  {
  330           pr intln "Sca nning: ${e .key} => $ {e.value}"
  331           an t.sca(jdk: "1.7",
  332                debug:tr ue ,
  333                verbose: true ,
  334                failoner ror:true ,
  335                scan:tru e ,
  336                maxHeap: "4096M" ,
  337                logFile: file("$bui ldDir/repo rts/fortif y/Fortify- ${e.key}.l og"),
  338                resultsF ile:file(" $buildDir/ reports/fo rtify/${e. key}.fpr")
  339           ){
  340           fi leset(dir: 'productio n') {
  341                include( name:"${e. value}")
  342                exclude( name:'**/l ib/**')
  343                exclude( name:'**/t est/**')
  344                exclude( name:'**/* Test*')
  345                exclude( name:'**/b uild/**')
  346                }
  347           }
  348       }
  349   }