diff options
Diffstat (limited to 'docs/developer-guide.rst')
-rw-r--r-- | docs/developer-guide.rst | 228 |
1 files changed, 228 insertions, 0 deletions
diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst new file mode 100644 index 0000000..1d2b8ec --- /dev/null +++ b/docs/developer-guide.rst @@ -0,0 +1,228 @@ +=============== +Developer Guide +=============== + +This is the Data Movement as a Platform (DMaaP) Bus Controller web application for ONAP. + +Project Structure +----------------- + +The following maven projects comprise the web application: + +* dbca-common: project with Java code resources for both internal and external use +* dbca-overlay: project with CSS, HTML, Javascript and other web resources for both internal and external use +* dbca-os: master web app with Java code and web resources specific to the open-source + version of the application. + +Building the App +---------------- + +Run maven in the top-level folder: + +:: + + mvn package + + +Developing the App +------------------ + +The easiest way I know of developing and debugging this Java web app is to launch the application using Eclipse. +This requires some setup: + +- Create a local database with the expected table structure and content (see deployment guide) +- Prepare property files with the coordinates and credentials of the local database (see deployment guide), the critical file is src/main/webapp/WEB-INF/conf/system.properties +- Use the JEE version of Eclipse with the "Web Tools Platform" (WTP) plugin installed. +- Install a recent copy of Apache Tomcat; e.g., 8.5 or later +- Create a Tomcat server in the WTP "Servers" view +- In Eclipse, right click on the master web project "dmapp-bc-app-os", pick "Run As" then "Run on Server". This should apply the overlay files and gather everything into a bundle, then push it to the Tomcat server. +- The app should start and Eclipse will open a browser using the webapp context. However, the app very much wants users to login via ONAP Portal, which might not be configured. To work locally use this URL: + +:: + + http://localhost:8080/dmaap-bc-app-os/login_external.htm + +Upgrading the App +----------------- + +This section presents detail of upgrading the DMaaP BC web application for a new release of the ONAP Portal SDK. + +Basics +^^^^^^ + +Generate a list of differences with this command: + +:: + + diff -q -r ../quantum/sdk-app/src src + +Expected differences - verify but don't overwrite local changes: + +:: + + dcae_dmaapbc_webapp/db-scripts/EcompSdkDDLMySql.sql + dcae_dmaapbc_webapp/db-scripts/EcompSdkDMLMySql.sql + dcae_dmaapbc_webapp/src/main/java/com/att/fusionapp/conf/ExternalAppConfig.java + dcae_dmaapbc_webapp/src/main/java/com/att/fusionapp/conf/HibernateMappingLocations.java + dcae_dmaapbc_webapp/src/main/java/com/att/fusionapp/controller/WelcomeController.java + dcae_dmaapbc_webapp/src/main/resources/logback.xml + dcae_dmaapbc_webapp/src/main/resources/portal.properties + dcae_dmaapbc_webapp/src/main/webapp/index.jsp + dcae_dmaapbc_webapp/src/main/webapp/WEB-INF/conf/system.properties + dcae_dmaapbc_webapp/src/main/webapp/WEB-INF/jsp/login.jsp + dcae_dmaapbc_webapp/src/main/webapp/WEB-INF/web.xml + +Directories in webapp only: + +:: + + src/main/webapp/WEB-INF/dbcapp + +Directories in SDK, omitted from webapp: + +:: + + ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/raptor + ../quantum/sdk-app/src/main/webapp/app/fusion/notebook-integration + ../quantum/sdk-app/src/main/webapp/static/fusion/raptor + ../quantum/sdk-app/src/test/java/com/att/workflow + + +Details about the 1702 upgrade +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Ignore all Java changes - no relevant commits were made to epsdk-app for this release: + +:: + + Only in ../quantum/sdk-app/src/main/java: com + Only in src/main/java: org + +Ignore all only-in-DBC-app: + +:: + + Only in src/main/webapp/WEB-INF: dbcapp + Only in src/main/webapp/app: dbcapp + Only in src/test: resources + +Ignore all only-in-SDK-app: + +:: + + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/conf: quartz.properties + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/conf: raptor.properties + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/conf: raptor_app_fusion.properties + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/conf: raptor_db_fusion.properties + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/conf: raptor_pdf.properties + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp: broadcast.jsp + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp: broadcast_list.jsp + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp: collaborateList.jsp + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp: data_out.jsp + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp: es_suggest_demo.jsp + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp: webrtc + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion: raptor + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/jsp: leafletMap.jsp + Only in ../quantum/sdk-app/src/main/webapp/WEB-INF/jsp: net_map.jsp + Only in ../quantum/sdk-app/src/main/webapp/app/fusion: notebook-integration + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/angular_js: appDS2.js + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external/samples/html: busy_hour_traffic.html + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external/samples/html: traffic_distribution.html + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers: admin-closed-cloop.js + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers: admin-whitelist.js + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models: reportdashboard-page + Only in ../quantum/sdk-app/src/main/webapp/app/fusionapp/scripts: DS2-view-models + Only in ../quantum/sdk-app/src/main/webapp/static/fusion: raptor + Only in ../quantum/sdk-app/src/main/webapp/static/fusion: sample + Only in ../quantum/sdk-app/src/main/webapp/static/fusion/images: ecomp-login.jpg + Only in ../quantum/sdk-app/src/test/java/com/att: workflow + +Ignored these at some risk of breakage: + +:: + + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external: leaflet-0.7.3 + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external: lodash + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external: showdown + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external/angular-ui: ui-sortable + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/angular_js: angular-cookies-1.4.js + +Ignore these because I don't want DS2 yet: + +:: + + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/external: ds2 + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/scripts: DS2-controllers + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/scripts: DS2-directives + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/scripts: DS2-services + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/scripts: DS2-view-models + +Ignore these because I like my changes: + +:: + + Files ../quantum/sdk-app/src/main/resources/logback.xml and src/main/resources/logback.xml differ + Files ../quantum/sdk-app/src/main/resources/portal.properties and src/main/resources/portal.properties differ + Files ../quantum/sdk-app/src/main/webapp/WEB-INF/conf/system.properties and src/main/webapp/WEB-INF/conf/system.properties differ + Files ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/defs/definitions.xml and src/main/webapp/WEB-INF/fusion/defs/definitions.xml differ + Files ../quantum/sdk-app/src/main/webapp/WEB-INF/jsp/login.jsp and src/main/webapp/WEB-INF/jsp/login.jsp differ + Files ../quantum/sdk-app/src/main/webapp/WEB-INF/web.xml and src/main/webapp/WEB-INF/web.xml differ + Files ../quantum/sdk-app/src/main/webapp/index.jsp and src/main/webapp/index.jsp differ + +Copy these: + +:: + + Only in ../quantum/sdk-app/src/main/webapp/app/fusion/styles: global.css + Files ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_footer.jsp and src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_footer.jsp differ + Files ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp/ebz_template.jsp and src/main/webapp/WEB-INF/fusion/jsp/ebz_template.jsp differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/elementmap/scripts/element_map.js and src/main/webapp/app/fusion/elementmap/scripts/element_map.js differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/ebz_header/footer.css and src/main/webapp/app/fusion/external/ebz/ebz_header/footer.css differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/ebz_header/header.css and src/main/webapp/app/fusion/external/ebz/ebz_header/header.css differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/ebz_header/portal_ebz_header.css and src/main/webapp/app/fusion/external/ebz/ebz_header/portal_ebz_header.css differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/fn-ebz.css and src/main/webapp/app/fusion/external/ebz/fn-ebz.css differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers/adminController.js and src/main/webapp/app/fusion/scripts/controllers/adminController.js differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers/post-search-controller.js and src/main/webapp/app/fusion/scripts/controllers/post-search-controller.js differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers/role-controller.js and src/main/webapp/app/fusion/scripts/controllers/role-controller.js differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers/rolepopupmodelController.js and src/main/webapp/app/fusion/scripts/controllers/rolepopupmodelController.js differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/directives/header.js and src/main/webapp/app/fusion/scripts/directives/header.js differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/directives/leftMenu.js and src/main/webapp/app/fusion/scripts/directives/leftMenu.js differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/services/userInfoService.js and src/main/webapp/app/fusion/scripts/services/userInfoService.js differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/admin-page/admin.html and src/main/webapp/app/fusion/scripts/view-models/admin-page/admin.html differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/footer.html and src/main/webapp/app/fusion/scripts/view-models/footer.html differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/header.html and src/main/webapp/app/fusion/scripts/view-models/header.html differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/admin_closed_loop.html and src/main/webapp/app/fusion/scripts/view-models/profile-page/admin_closed_loop.html differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/admin_menu_edit.html and src/main/webapp/app/fusion/scripts/view-models/profile-page/admin_menu_edit.html differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/popup_modal_role.html and src/main/webapp/app/fusion/scripts/view-models/profile-page/popup_modal_role.html differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/role.html and src/main/webapp/app/fusion/scripts/view-models/profile-page/role.html differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/role_list.html and src/main/webapp/app/fusion/scripts/view-models/profile-page/role_list.html differ + Files ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/self_profile.html and src/main/webapp/app/fusion/scripts/view-models/profile-page/self_profile.html differ + +Using these commands: + +:: + + cp ../quantum/sdk-app/src/main/webapp/app/fusion/styles/global.css src/main/webapp/app/fusion/styles + cp ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_footer.jsp src/main/webapp/WEB-INF/fusion/jsp/ebz/ebz_footer.jsp + cp ../quantum/sdk-app/src/main/webapp/WEB-INF/fusion/jsp/ebz_template.jsp src/main/webapp/WEB-INF/fusion/jsp/ebz_template.jsp + cp ../quantum/sdk-app/src/main/webapp/app/fusion/elementmap/scripts/element_map.js src/main/webapp/app/fusion/elementmap/scripts/element_map.js + cp ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/ebz_header/footer.css src/main/webapp/app/fusion/external/ebz/ebz_header/footer.css + cp ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/ebz_header/header.css src/main/webapp/app/fusion/external/ebz/ebz_header/header.css + cp ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/ebz_header/portal_ebz_header.css src/main/webapp/app/fusion/external/ebz/ebz_header/portal_ebz_header.css + cp ../quantum/sdk-app/src/main/webapp/app/fusion/external/ebz/fn-ebz.css src/main/webapp/app/fusion/external/ebz/fn-ebz.css + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers/adminController.js src/main/webapp/app/fusion/scripts/controllers/adminController.js + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers/post-search-controller.js src/main/webapp/app/fusion/scripts/controllers/post-search-controller.js + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers/role-controller.js src/main/webapp/app/fusion/scripts/controllers/role-controller.js + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/controllers/rolepopupmodelController.js src/main/webapp/app/fusion/scripts/controllers/rolepopupmodelController.js + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/directives/header.js src/main/webapp/app/fusion/scripts/directives/header.js + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/directives/leftMenu.js src/main/webapp/app/fusion/scripts/directives/leftMenu.js + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/services/userInfoService.js src/main/webapp/app/fusion/scripts/services/userInfoService.js + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/admin-page/admin.html src/main/webapp/app/fusion/scripts/view-models/admin-page/admin.html + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/footer.html src/main/webapp/app/fusion/scripts/view-models/footer.html + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/header.html src/main/webapp/app/fusion/scripts/view-models/header.html + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/admin_closed_loop.html src/main/webapp/app/fusion/scripts/view-models/profile-page/admin_closed_loop.html + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/admin_menu_edit.html src/main/webapp/app/fusion/scripts/view-models/profile-page/admin_menu_edit.html + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/popup_modal_role.html src/main/webapp/app/fusion/scripts/view-models/profile-page/popup_modal_role.html + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/role.html src/main/webapp/app/fusion/scripts/view-models/profile-page/role.html + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/role_list.html src/main/webapp/app/fusion/scripts/view-models/profile-page/role_list.html + cp ../quantum/sdk-app/src/main/webapp/app/fusion/scripts/view-models/profile-page/self_profile.html src/main/webapp/app/fusion/scripts/view-models/profile-page/self_profile.html |