diff options
-rw-r--r-- | pom.xml | 20 | ||||
-rwxr-xr-x | src/main/script/checkLibIndex.sh | 122 | ||||
-rw-r--r-- | ui-react-lib/libExportExclusions.dat | 4 | ||||
-rwxr-xr-x | ui-react-lib/libIndex.js | 11 |
4 files changed, 152 insertions, 5 deletions
@@ -1264,6 +1264,26 @@ <artifactId>sonar-maven-plugin</artifactId> <version>3.7.0.1746</version> </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>exec-maven-plugin</artifactId> + <version>1.3.2</version> + <executions> + <execution> + <id>libIndexCheck</id> + <phase>validate</phase> + <goals> + <goal>exec</goal> + </goals> + </execution> + </executions> + <configuration> + <executable>bash</executable> + <arguments> + <argument>${project.basedir}/src/main/script/checkLibIndex.sh</argument> + </arguments> + </configuration> + </plugin> </plugins> </build> </project> diff --git a/src/main/script/checkLibIndex.sh b/src/main/script/checkLibIndex.sh new file mode 100755 index 000000000..9a28e7df9 --- /dev/null +++ b/src/main/script/checkLibIndex.sh @@ -0,0 +1,122 @@ +#!/bin/bash +### +# ============LICENSE_START======================================================= +# ONAP CLAMP +# ================================================================================ +# Copyright (C) 2020 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END============================================ +# =================================================================== +# +### + +baseDir=$(git rev-parse --show-toplevel) + +if [[ ! -d $baseDir ]] +then + echo "[ERROR] failed to determine git base directory" + exit 1 +fi + +tmpSrcFileList=/tmp/upldateLibIndex.$$.list +reactUiBaseDir="${baseDir}/ui-react" +reactLibIndexFile="ui-react-lib/libIndex.js" +exclusionList="ui-react-lib/libExportExclusions.dat" + + +if [[ ! -d "$reactUiBaseDir" ]] +then + echo "[ERROR] reacUiBaseDir=$reacUiBaseDir is not accessible" + exit 1 +fi + +if [[ ! -d "$baseDir/$reactLibBaseDir" ]] +then + echo "[ERROR] reactLibBaseDir=$baseDir/$reactLibBaseDir is not accessible" + exit 1 +fi + +if [[ ! -r "$baseDir/$reactLibIndexFile" ]] +then + echo "[ERROR] file reactLibIndexFile=$baseDir/$reactLibIndexFile is not accessible" + exit 1 +fi + + +if ! cd $reactUiBaseDir +then + echo "[ERROR] could not cd to reactUiBaseDir=$reactUiBaseDir" + exit 1 +fi + +find ./src -name \*.js | egrep -v "__snapshot|\.test\." 2>/dev/null | sed 's/.js$//' > $tmpSrcFileList + +if [[ ! -s $tmpSrcFileList ]] +then + echo "[ERROR] no source files found in reactUiBaseDir=$reactUiBaseDir" + rm -f $tmpSrcFileList + exit 1 +fi + +export nErrors=0 + +# Verify that any .js file found within ui-react/src other than test related files +# is also referenced in ui-react-lib/libIndex.js + +for srcFileName in `<$tmpSrcFileList` +do + if [[ -r "$baseDir/$exclusionList" ]] + then + if grep $srcFileName $baseDir/$exclusionList >/dev/null 2>&1 + then + continue + fi + fi + + if ! grep $srcFileName "$baseDir/$reactLibIndexFile" > /dev/null 2>&1 + then + echo "[ERROR] file=${srcFileName}.js is not declared in $reactLibIndexFile" + echo "[ERROR] and not found in exclsionList=${exclusionList}." + echo "[ERROR] Please either add it to $reactLibIndexFile" + echo "[ERROR] or to the exclusion list in ${exclusionList}." + echo "" + (( nErrors++ )) + fi +done + +# Verify for each entry in ui-react-lib/libIndex.js, that the referenced source file exists +# in ui-react/src; if not, developer probably forgot to remove it from libIndex.js. + +egrep '^export ' $baseDir/$reactLibIndexFile |\ +sed -e "s+.*\./src+./src+" -e "s+'.*+.js+" > $tmpSrcFileList + +for srcFileName in `<$tmpSrcFileList` +do + if [[ ! -r "$srcFileName" ]] + then + echo "[ERROR] source file=$srcFileName in libIndex.js is not accessible" + (( nErrors++ )) + fi +done + +rm -f $tmpSrcFileList + +if (( nErrors == 0 )) +then + echo "[INFO] $reactLibIndexFile passes sanity check" + exit 0 +fi + +exit $nErrors diff --git a/ui-react-lib/libExportExclusions.dat b/ui-react-lib/libExportExclusions.dat new file mode 100644 index 000000000..7194fc2ad --- /dev/null +++ b/ui-react-lib/libExportExclusions.dat @@ -0,0 +1,4 @@ +./src/theme/globalStyle.js +./src/index.js +./src/setupTests.js +./src/OnapClamp.js diff --git a/ui-react-lib/libIndex.js b/ui-react-lib/libIndex.js index da98df43c..9653fb013 100755 --- a/ui-react-lib/libIndex.js +++ b/ui-react-lib/libIndex.js @@ -22,30 +22,31 @@ */ export { default as ConfigurationPolicyModal } from './src/components/dialogs/ConfigurationPolicy/ConfigurationPolicyModal'; -export { default as PolicyModal } from './src/components/dialogs/Policy/PolicyModal'; +export { default as CreateLoopModal } from './src/components/dialogs/Loop/CreateLoopModal'; +export { default as CreateLoopModal } from './src/components/dialogs/Loop/CreateLoopModal'; export { default as DeployLoopModal } from './src/components/dialogs/Loop/DeployLoopModal'; export { default as LoopActionService } from './src/api/LoopActionService'; export { default as LoopCache } from './src/api/LoopCache'; -export { default as LoopComponentConverter } from './src/components/loop_viewer/svg/LoopComponentConverter'; export { default as LoopLogs } from './src/components/loop_viewer/logs/LoopLogs'; export { default as LoopPropertiesModal } from './src/components/dialogs/Loop/LoopPropertiesModal'; export { default as LoopService } from './src/api/LoopService'; export { default as LoopStatus } from './src/components/loop_viewer/status/LoopStatus'; -export { default as LoopSvg } from './src/components/loop_viewer/svg/LoopSvg'; export { default as LoopUI } from './src/LoopUI'; export { default as ManageDictionaries } from './src/components/dialogs/ManageDictionaries/ManageDictionaries'; export { default as MenuBar } from './src/components/menu/MenuBar'; export { default as ModifyLoopModal } from './src/components/dialogs/Loop/ModifyLoopModal'; export { default as NotFound } from './src/NotFound'; +export { default as OnapConstants } from './src/utils/OnapConstants'; export { default as OpenLoopModal } from './src/components/dialogs/Loop/OpenLoopModal'; -export { default as CreateLoopModal } from './src/components/dialogs/Loop/CreateLoopModal'; export { default as OperationalPolicyModal } from './src/components/dialogs/OperationalPolicy/OperationalPolicyModal'; export { default as PerformActions } from './src/components/dialogs/PerformActions'; +export { default as PolicyModal } from './src/components/dialogs/Policy/PolicyModal'; export { default as PolicyToscaService } from './src/api/PolicyToscaService'; export { default as RefreshStatus } from './src/components/dialogs/RefreshStatus'; +export { default as SvgGenerator } from './src/components/loop_viewer/svg/SvgGenerator'; export { default as TemplateService } from './src/api/TemplateService'; +export { default as UploadToscaPolicyModal } from './src/components/dialogs/Tosca/UploadToscaPolicyModal'; export { default as UserInfoModal } from './src/components/dialogs/UserInfoModal'; export { default as UserService } from './src/api/UserService'; -export { default as UploadToscaPolicyModal } from './src/components/dialogs/Tosca/UploadToscaPolicyModal'; export { default as ViewLoopTemplatesModal } from './src/components/dialogs/Tosca/ViewLoopTemplatesModal'; export { default as ViewToscaPolicyModal } from './src/components/dialogs/Tosca/ViewToscaPolicyModal'; |