2022-04-08 20:25:20 +00:00
<!DOCTYPE html>
2022-05-26 20:17:08 +00:00
< html lang = "en" class = "no-js" >
2022-04-08 20:25:20 +00:00
< head >
< meta charset = "utf-8" >
< meta name = "viewport" content = "width=device-width,initial-scale=1" >
2022-05-26 20:17:08 +00:00
< meta http-equiv = "x-ua-compatible" content = "ie=edge" >
2022-04-08 20:25:20 +00:00
< meta name = "description" content = "Documentation for all things AWIPS." >
< link rel = "canonical" href = "http://unidata.github.io/awips2/dev/build-datadelivery/" >
< meta name = "author" content = "support-awips@unidata.ucar.edu" >
< link rel = "shortcut icon" href = "../../images/favicon.ico" >
2023-09-20 18:00:49 +00:00
< meta name = "generator" content = "mkdocs-1.5.3, mkdocs-unidata-2.0.3" >
2022-04-08 20:25:20 +00:00
< title > Build datadelivery - Unidata AWIPS User Manual< / title >
2022-05-26 20:17:08 +00:00
< script src = "../../assets/javascripts/modernizr-e826f8942a.js" > < / script >
2022-04-08 20:25:20 +00:00
2022-05-26 20:17:08 +00:00
< link rel = "stylesheet" href = "../../assets/stylesheets/application-37fa87ea8f.css" >
2022-04-08 20:25:20 +00:00
2022-05-26 20:17:08 +00:00
< link rel = "stylesheet" href = "../../assets/stylesheets/application-624922a329.palette.css" >
2022-04-08 20:25:20 +00:00
< link rel = "stylesheet" href = "https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono" >
< style > body , input { font-family : "Roboto" , "Helvetica Neue" , Helvetica , Arial , sans-serif } code , kbd , pre { font-family : "Roboto Mono" , "Courier New" , Courier , monospace } < / style >
< link rel = "stylesheet" href = "https://fonts.googleapis.com/icon?family=Material+Icons" >
< link rel = "stylesheet" href = "../../css/extra.css" >
< / head >
< body data-md-color-primary = "blue-grey" data-md-color-accent = "light-blue" >
< svg class = "md-svg" >
< defs >
< svg xmlns = "http://www.w3.org/2000/svg" width = "416" height = "448" viewBox = "0 0 416 448" id = "github" > < path fill = "currentColor" d = "M160 304q0 10-3.125 20.5t-10.75 19T128 352t-18.125-8.5-10.75-19T96 304t3.125-20.5 10.75-19T128 256t18.125 8.5 10.75 19T160 304zm160 0q0 10-3.125 20.5t-10.75 19T288 352t-18.125-8.5-10.75-19T256 304t3.125-20.5 10.75-19T288 256t18.125 8.5 10.75 19T320 304zm40 0q0-30-17.25-51T296 232q-10.25 0-48.75 5.25Q229.5 240 208 240t-39.25-2.75Q130.75 232 120 232q-29.5 0-46.75 21T56 304q0 22 8 38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0 37.25-1.75t35-7.375 30.5-15 20.25-25.75T360 304zm56-44q0 51.75-15.25 82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5T212 416q-19.5 0-35.5-.75t-36.875-3.125-38.125-7.5-34.25-12.875T37 371.5t-21.5-28.75Q0 312 0 260q0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25 30.875Q171.5 96 212 96q37 0 70 8 26.25-20.5 46.75-30.25T376 64q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34 99.5z" / > < / svg >
< / defs >
< / svg >
< input class = "md-toggle" data-md-toggle = "drawer" type = "checkbox" id = "drawer" >
< input class = "md-toggle" data-md-toggle = "search" type = "checkbox" id = "search" >
< label class = "md-overlay" data-md-component = "overlay" for = "drawer" > < / label >
< header class = "md-header" data-md-component = "header" >
2022-05-26 20:17:08 +00:00
< a href = "../.." >
< div class = "background-logo" style = "background-image:url('../../images/cave.png');background-repeat:no-repeat;height:107px" >
2022-04-08 20:25:20 +00:00
2022-05-26 20:17:08 +00:00
< nav class = "md-header-nav md-grid" >
2022-04-08 20:25:20 +00:00
< div class = "md-flex" >
< div class = "md-flex__cell md-flex__cell--shrink" >
2022-05-26 20:17:08 +00:00
< a href = "http://unidata.github.io/awips2/" title = "Unidata AWIPS User Manual" class = "md-header-nav__button md-logo" >
< img src = "../../images/home.png" width = "24" height = "24" >
< / a >
2022-04-08 20:25:20 +00:00
< / div >
< div class = "md-flex__cell md-flex__cell--shrink" >
< label class = "md-icon md-icon--menu md-header-nav__button" for = "drawer" > < / label >
< / div >
< div class = "md-flex__cell md-flex__cell--stretch" >
< span class = "md-flex__ellipsis md-header-nav__title" >
2022-05-26 20:17:08 +00:00
2022-04-08 20:25:20 +00:00
2022-05-26 20:17:08 +00:00
Build datadelivery
2022-04-08 20:25:20 +00:00
< / span >
< / div >
< div class = "md-flex__cell md-flex__cell--shrink" >
< label class = "md-icon md-icon--search md-header-nav__button" for = "search" > < / label >
< div class = "md-search" data-md-component = "search" role = "dialog" >
< label class = "md-search__overlay" for = "search" > < / label >
< div class = "md-search__inner" >
< form class = "md-search__form" name = "search" >
< input type = "text" class = "md-search__input" name = "query" required placeholder = "Search" autocapitalize = "off" autocorrect = "off" autocomplete = "off" spellcheck = "false" data-md-component = "query" >
< label class = "md-icon md-search__icon" for = "search" > < / label >
< button type = "reset" class = "md-icon md-search__icon" data-md-component = "reset" >  < / button >
< / form >
< div class = "md-search__output" >
< div class = "md-search__scrollwrap" data-md-scrollfix >
< div class = "md-search-result" data-md-component = "result" data-md-lang-search = "" data-md-lang-tokenizer = "[\s\-]+" >
< div class = "md-search-result__meta" data-md-lang-result-none = "No matching documents" data-md-lang-result-one = "1 matching document" data-md-lang-result-other = "# matching documents" >
Type to start searching
< / div >
< ol class = "md-search-result__list" > < / ol >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
2022-05-26 20:17:08 +00:00
< div class = "md-flex__cell md-flex__cell--shrink" >
< div class = "md-header-nav__source" >
2022-04-08 20:25:20 +00:00
< a href = "https://github.com/Unidata/awips2" title = "Go to repository" class = "md-source" data-md-source = "github" >
< div class = "md-source__icon" >
< svg viewBox = "0 0 24 24" width = "24" height = "24" >
< use xlink:href = "#github" width = "24" height = "24" > < / use >
< / svg >
< / div >
< div class = "md-source__repository" >
GitHub
< / div >
< / a >
2022-05-26 20:17:08 +00:00
< / div >
2022-04-08 20:25:20 +00:00
< / div >
2022-05-26 20:17:08 +00:00
2022-04-08 20:25:20 +00:00
< / div >
< / nav >
< / header >
< div class = "md-container" >
< main class = "md-main" >
< div class = "md-main__inner md-grid" data-md-component = "container" >
< div class = "md-sidebar md-sidebar--primary" data-md-component = "navigation" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--primary" data-md-level = "0" >
< label class = "md-nav__title md-nav__title--site" for = "drawer" >
< a href = "http://unidata.github.io/awips2/" title = "Unidata AWIPS User Manual" class = "md-nav__button md-logo" >
2022-05-26 20:17:08 +00:00
< img src = "../../images/home.png" >
2022-04-08 20:25:20 +00:00
< / a >
Unidata AWIPS User Manual
< / label >
< div class = "md-nav__source" >
< a href = "https://github.com/Unidata/awips2" title = "Go to repository" class = "md-source" data-md-source = "github" >
< div class = "md-source__icon" >
< svg viewBox = "0 0 24 24" width = "24" height = "24" >
< use xlink:href = "#github" width = "24" height = "24" > < / use >
< / svg >
< / div >
< div class = "md-source__repository" >
GitHub
< / div >
< / a >
< / div >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../.." title = "Home" class = "md-nav__link" >
Home
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../install/install-cave/" title = "Install CAVE" class = "md-nav__link" >
Install CAVE
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../install/install-edex/" title = "Install EDEX" class = "md-nav__link" >
Install EDEX
< / a >
< / li >
< li class = "md-nav__item" >
2022-05-19 16:37:07 +00:00
< a href = "../../appendix/common-problems/" title = "Common Problems" class = "md-nav__link" >
2022-04-08 20:25:20 +00:00
Common Problems
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-5" type = "checkbox" id = "nav-5" >
< label class = "md-nav__link" for = "nav-5" >
CAVE User Manual
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-5" >
CAVE User Manual
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-perspective/" title = "D2D Perspective" class = "md-nav__link" >
D2D Perspective
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/maps-views-projections/" title = "Maps, Views, Projections" class = "md-nav__link" >
Maps, Views, Projections
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/bundles-and-procedures/" title = "Displays and Procedures" class = "md-nav__link" >
Displays and Procedures
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/localization-perspective/" title = "Localization Perspective" class = "md-nav__link" >
Localization Perspective
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/nsharp/" title = "NSHARP" class = "md-nav__link" >
NSHARP
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/warngen/" title = "WarnGen Walkthrough" class = "md-nav__link" >
WarnGen Walkthrough
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-gis-shapefiles/" title = "GIS and Shapefiles" class = "md-nav__link" >
GIS and Shapefiles
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-gridded-models/" title = "Volume Browser" class = "md-nav__link" >
Volume Browser
< / a >
< / li >
< li class = "md-nav__item" >
2023-12-13 15:16:06 +00:00
< a href = "../../cave/d2d-all-tools/" title = "Tools" class = "md-nav__link" >
Tools
2022-04-08 20:25:20 +00:00
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/d2d-edit-menus/" title = "Editing Menus" class = "md-nav__link" >
Editing Menus
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/cave-localization/" title = "Change Localization" class = "md-nav__link" >
Change Localization
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/import-export/" title = "Import/Export" class = "md-nav__link" >
Import/Export
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-6" type = "checkbox" id = "nav-6" >
< label class = "md-nav__link" for = "nav-6" >
EDEX User Manual
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-6" >
EDEX User Manual
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../install/start-edex/" title = "EDEX Basic Commands" class = "md-nav__link" >
EDEX Basic Commands
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/settings/" title = "EDEX Settings" class = "md-nav__link" >
EDEX Settings
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/distributed-computing/" title = "Distributed EDEX" class = "md-nav__link" >
Distributed EDEX
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/edex-ingest-docker-container/" title = "Docker EDEX" class = "md-nav__link" >
Docker EDEX
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/ldm/" title = "LDM Feeds" class = "md-nav__link" >
LDM Feeds
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/data-distribution-files/" title = "Data Distribution Files" class = "md-nav__link" >
Data Distribution Files
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/new-grid/" title = "Ingest a New Grid" class = "md-nav__link" >
Ingest a New Grid
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/data-purge/" title = "Purging and Retention" class = "md-nav__link" >
Purging and Retention
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/edex-users/" title = "Monitor Users" class = "md-nav__link" >
Monitor Users
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/data-plugins/" title = "Data Plugins" class = "md-nav__link" >
Data Plugins
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../edex/case-studies/" title = "Archive Case Studies" class = "md-nav__link" >
Archive Case Studies
< / a >
< / li >
< / ul >
< / nav >
< / li >
< li class = "md-nav__item" >
< a href = "../../python/overview/" title = "Python-AWIPS" class = "md-nav__link" >
Python-AWIPS
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../appendix/educational-resources/" title = "Educational Resources" class = "md-nav__link" >
Educational Resources
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../awips-development-environment/" title = "Development" class = "md-nav__link" >
Development
< / a >
< / li >
< li class = "md-nav__item md-nav__item--nested" >
< input class = "md-toggle md-nav__toggle" data-md-toggle = "nav-10" type = "checkbox" id = "nav-10" >
< label class = "md-nav__link" for = "nav-10" >
Appendix
< / label >
< nav class = "md-nav" data-md-component = "collapsible" data-md-level = "1" >
< label class = "md-nav__title" for = "nav-10" >
Appendix
< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "../../appendix/appendix-grid-parameters/" title = "AWIPS Grid Parameters" class = "md-nav__link" >
AWIPS Grid Parameters
< / a >
< / li >
< li class = "md-nav__item" >
2023-12-13 15:16:06 +00:00
< a href = "../../appendix/maps-database/" title = "Maps Database" class = "md-nav__link" >
2022-04-08 20:25:20 +00:00
Maps Database
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../appendix/appendix-acronyms/" title = "Acronyms and Abbreviations" class = "md-nav__link" >
Acronyms and Abbreviations
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../appendix/appendix-wsr88d/" title = "WSR-88D Product Table" class = "md-nav__link" >
WSR-88D Product Table
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../cave/cave-keyboard-shortcuts/" title = "Keyboard Shortcuts" class = "md-nav__link" >
Keyboard Shortcuts
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../raytheon/cave_d2d/" title = "Raytheon: CAVE User's Manual" class = "md-nav__link" >
Raytheon: CAVE User's Manual
< / a >
< / li >
< li class = "md-nav__item" >
< a href = "../../raytheon/smm/" title = "Raytheon: AWIPS System Manager's Manual" class = "md-nav__link" >
Raytheon: AWIPS System Manager's Manual
< / a >
< / li >
< / ul >
< / nav >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-sidebar md-sidebar--secondary" data-md-component = "toc" >
< div class = "md-sidebar__scrollwrap" >
< div class = "md-sidebar__inner" >
< nav class = "md-nav md-nav--secondary" >
< label class = "md-nav__title" for = "toc" > Table of contents< / label >
< ul class = "md-nav__list" data-md-scrollfix >
< li class = "md-nav__item" >
< a href = "#wa-build" title = "wa-build" class = "md-nav__link" >
wa-build
< / a >
< / li >
< / ul >
< / nav >
< / div >
< / div >
< / div >
< div class = "md-content" >
< article class = "md-content__inner md-typeset" >
2022-05-26 20:17:08 +00:00
< a href = "https://github.com/Unidata/awips2/edit/unidata_18.2.1/docs/dev/build-datadelivery.md" title = "Edit this page" class = "md-icon md-content__icon" >  < / a >
2022-04-08 20:25:20 +00:00
< p > Data Delivery has been implemented into the AWIPS(II) baseline to provide access to data that is not resident locally at a Weather Forecast Office, River Forecast Center, or National Center. Data Delivery gives users the ability to create queries (One Time Requests) and
subscriptions to data sets (provided OGC / OpenDAP servers such as THREDDS).< / p >
< h1 id = "buildedexbuildxml" > build.edex/build.xml< a class = "headerlink" href = "#buildedexbuildxml" title = "Permanent link" > < / a > < / h1 >
< pre > < code > < target name="main-build" depends="clean">
< antcall target="build">
< param name="feature"
value="com.raytheon.uf.common.base.feature" />
< /antcall>
< antcall target="build">
< param name="feature"
value="com.raytheon.uf.edex.base.feature" />
< /antcall>
...
< antcall target="build">
< param name="feature"
value="gov.nasa.msfc.sport.edex.glmdecoder.feature" />
< /antcall>
< !--
< antcall target="build">
< param name="feature"
value="com.raytheon.uf.edex.datadelivery.feature" />
< /antcall>
< antcall target="build">
< param name="feature"
value="com.raytheon.uf.edex.ogc.feature" />
< /antcall>
-->
< /target>
< / code > < / pre >
< p > Notice the last two commented out, < code > com.raytheon.uf.edex.datadelivery.feature< / code > and < code > com.raytheon.uf.edex.ogc.feature< / code > . These feature sets < em > do not exist< / em > , but could easily be created in the same wat as other features (like < code > com.raytheon.uf.common.base.feature< / code > , < code > com.raytheon.uf.edex.base.feature< / code > , etc.< / p >
< h2 id = "wa-build" > wa-build< a class = "headerlink" href = "#wa-build" title = "Permanent link" > < / a > < / h2 >
< p > The source code comments provide the following guidance:< / p >
< blockquote >
< p > In the work assignment's edexOsgi/build.edex directory, create a file named similar to the following:
edexOsgi/build.edex/5-Data_Delivery-wa-build.properties In the file, there should be one line such as:
wa.features=feature1,feature2< / p >
< / blockquote >
< p > However, the < code > wa-build< / code > Ant target requires a file < code > features.txt< / code > exist. So if is < code > 5-Data_Delivery-wa-build.properties< / code > or < code > features.txt< / code > ? Because the delimiter being specified is a line separator (and not a comma "wa.features=feature1,feature2" as with versions proir to 16.2.2).< / p >
< p > So we can infer that a file should exist called features.txt should exist which has one WA feature per line. And what do you know, a similar file exist for the CAVE build in < code > awips2-builds/cave/build/features.txt< / code > :< / p >
< pre > < code > cat awips2-builds/cave/build/features.txt
com.raytheon.uf.common.base.feature
com.raytheon.uf.viz.dataplugin.obs.feature
...
< target name="wa-build" depends="main-build" description="Builds work assignment specific features after the main build">
< if>
< available file="${basedir}/features.txt" type="file" />
< then>
< loadfile property="wa.features"
srcfile="${basedir}/features.txt" />
< for param="line" list="${wa.features}"
delimiter="${line.separator}">
< sequential>
< antcall target="build">
< param name="feature" value="@{line}" />
< /antcall>
< /sequential>
< /for>
< /then>
< /if>
< antcall target="wa-cleanup" />
< antcall target="clean" />
< /target>
< / code > < / pre >
< / article >
< / div >
< / div >
< / main >
< footer class = "md-footer" >
< div class = "md-footer-meta md-typeset" >
< div class = "md-footer-meta__inner md-grid" >
< div class = "md-footer-copyright" >
< div class = "md-footer-copyright__highlight" >
2023-12-14 14:06:33 +00:00
Copyright © 2023 NSF Unidata Program Center.
2022-04-08 20:25:20 +00:00
< / div >
powered by
< a href = "http://www.mkdocs.org" title = "MkDocs" > MkDocs< / a >
and
< a href = "http://squidfunk.github.io/mkdocs-material/" title = "Material for MkDocs" >
Material for MkDocs< / a >
< / div >
< div class = "md-footer-social" >
< link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" >
< a href = "https://www.unidata.ucar.edu/software/awips2" class = "md-footer-social__link fa fa-globe" > < / a >
< a href = "https://github.com/Unidata/awips2" class = "md-footer-social__link fa fa-github-alt" > < / a >
< a href = "https://twitter.com/Unidata" class = "md-footer-social__link fa fa-twitter" > < / a >
< a href = "https://facebook.com/Unidata" class = "md-footer-social__link fa fa-facebook" > < / a >
< / div >
< / div >
< / div >
< / footer >
< / div >
2022-05-26 20:17:08 +00:00
< script src = "../../assets/javascripts/application-eaeb7b21e3.js" > < / script >
2022-04-08 20:25:20 +00:00
2022-05-26 20:17:08 +00:00
< script > app . initialize ( { url : { base : "../.." } } ) < / script >
2022-04-08 20:25:20 +00:00
< / body >
< / html >